自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (2)
  • 收藏
  • 关注

原创 确定hive的map和reduce的task的数量

Hive的底层查询原理,也是讲sql语句转化为map-reduce进行查询和计算的,所以设置正确的map和reduce的task的数量对查询效率有很重要的影响。1. 设置mapper的task数量 在分布式计算系统中,决定map数量的一个因素就是原始数据,在不加干预的情况下,原始数据有多少个块,就可能有多少个起始的task,因为每个task对应要去读取一个块的...

2020-04-28 11:42:32 1563

原创 Spark源码分析-takeSample源码分析

1.参数说明 withReplacement:是否是有放回的抽样,就是普通的抽样,我们都是抽过的数据就不能在抽样了,有放回抽样就是可以继续抽以前抽取过的。 num:数据抽样的个数2.执行源码流程 执行流程主要是调用了RDD的takeSample方法,下面先贴上这个方法的代码:def takeSample( withReplacement: Boole...

2020-04-21 18:27:58 280

原创 Spark源码-sample计算流程分析

1.参数说明 Sample构造函数有三个参数,每个参数的含义如下: withReplacement:元素可以多次抽样(在抽样时替换) fraction:期望样本的大小作为RDD大小的一部分, 当withReplacement=false时:选择每个元素的概率;分数一定是[0,1] ; 当 withReplacement=true时:选择每个元素的期望次数; 分数...

2020-04-21 15:28:33 808

原创 Spark计算流程分析(map-reduce)过程

本文只是结合源码对spark的map和reduce过程做简单的总结,不是特别深入。主要是《深入理解Spark__核心思想与源码分析》一书中的内容和自己的一些理解。1.Shuffle 不管是hadoop的MapReduce还是spark的map-reduce过程,核心过程都叫做shuffle,MapReduce的shuffle过程,要对每个分区的数据进行排序,然后merge,完...

2020-04-20 22:02:52 2541 2

原创 Spark源码分析-SortByKey源码

简单介绍SortByKey对<key, value>数据进行按照key进行排序,怎么个排法,我么先看一下spark源码中的一些注释: 两段注释的基本意思差不多:通过RDD的key进行排序,每一个分区包括在一个范围内排好序的元素,然后返回一个有序的list集合,或者按照该key以part-x的形式保存在文件系统上。大概的意思就是这样,就是按照partitio...

2020-04-19 22:19:41 599 1

原创 Spark源码分析-topN源码

介绍TopN算子是取RDD的前N个元素。取TopN元素,我们就一定要对其进行严格排序吗?非也,也正是如此,加大了此算子的效率。源码理解def top(num: Int): JList[T] = {val comp = com.google.common.collect.Ordering.natural().asInstanceOf[Comparator[T]]top(nu...

2020-04-19 12:01:27 237

转载 Spark数据倾斜的原因以及解决方案

转自:https://www.cnblogs.com/xiaodf/p/6055803.html数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能。数据倾斜发生时的现象绝大多数task执行得都非常快,但个别ta...

2020-03-03 11:52:57 476 1

原创 Spark中wordCount的常见写法

Spark的wordCount是入门级程序,下面我以Java为基础,分享3种基础的写法1.JavaRDD加reduceByKey写法SparkConf conf = new SparkConf();conf.setAppName("topN");conf.setMaster("local");JavaSparkContext jsc = new JavaSparkContext(c...

2020-01-31 12:46:43 353

转载 机器学习中数据预处理方法

在知乎上也看到了这个,不知道哪个是原创,这里粘上链接https://zhuanlan.zhihu.com/p/51131210前言数据预处理的重要性?熟悉数据挖掘和机器学习的小伙伴们都知道,数据处理相关的工作时间占据了整个项目的70%以上。数据的质量,直接决定了模型的预测和泛化能力的好坏。它涉及很多因素,包括:准确性、完整性、一致性、时效性、可信性和解释性。而在真实数据中,我们拿到...

2020-01-03 12:36:30 3095

转载 JVM类加载过程

1. JVM类加载过程1.概述从类的生命周期而言,一个类包括如下阶段:加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序进行,而解析阶段则不一定,它在某些情况下可能在初始化阶段后在开始,因为java支持运行时绑定。2. 类加载时机加载(loading)阶段,java虚拟机规范中没有进行约...

2019-12-31 10:43:36 136

转载 JVM内存结构及原理

https://blog.csdn.net/rongtaoup/article/details/89142396https://www.jianshu.com/p/381b50f8853dhttps://blog.csdn.net/ligh_sqh/article/details/79481040

2019-12-19 15:37:48 127

转载 AUC,ROC理解

本来对AUC和ROC的理解有点模糊,网上看了以下下两篇博文,感觉更清楚了。https://blog.csdn.net/u013385925/article/details/80385873https://blog.csdn.net/qq_24753293/article/details/80942650...

2019-12-17 17:26:28 122

原创 Ambari_主机更换硬盘恢复组件

1.问题描述最近一台线上的主机硬盘完全坏掉,也就是说机器需要重新装了,这台主机安装的还有standby name节点,以及其他的组件。主机挂掉之后,Ambari上该主机对应的组件状态全部都为未知状态,所以也无法对其操作,最后能作的就是在该主机重新安装完系统之后,把原来安装的组件都恢复过来。2.问题解决 (1)主机重装系统之后,基本准备工作要做好,jdk、免密登陆、防火墙、...

2019-11-25 11:46:31 440 1

转载 机器学习缺失值处理方法

机器学习中的模型训练只是其中的一个步骤,有好的的数据才能得到好的模型。但是在现实情况下,数据往往是存在一些缺失值的,怎么取处理这些缺失值,使数据表现更完美也是一个特别重要的步骤。缺失值处理方法综述缺失值是指粗糙数据中由于缺少信息而造成的数据的聚类、分组、删失或截断。它指的是现有数据集中某个或某些属性的值是不完全的。缺失值的产生的原因多种多样,主要分为机械原因和人为原因。...

2019-11-15 18:45:09 851

原创 随机森林

1.随机森林介绍 随机森林是在建立在决策树之上的。只要明白了决策树的概念以及算法,那么随机森林就特别简单了。随机森林就是用多个决策树的结果来决定最终的结果,所以在训练过程中,我们会利用训练数据生成多个决策树。其算法的基本步骤如下: (1)原始训练集为N,应用bootstrap法有放回地随机抽取k个新的自助样本集,并由此构建k棵分类树,每次未被抽到的样本组成了k个袋外数...

2019-11-12 14:48:05 924

原创 SVD算法来简化数据

1.SVD简介SVD(Singular Value Decomposition),奇异值分解,也就是将一个矩阵进行分解,然后从分解后的矩阵上对数据进行分析。矩阵分解可以将原始矩阵表示成新的易于处理的形式,这种新的形式是两个或者多个矩阵的乘积,如下形式: 如式1,将原始矩阵分解为三个矩阵相乘的形...

2019-11-08 17:46:47 635

原创 PCA算法来简化数据

1.降维技术 在日常处理数据的时候,数据往往是好多维的,也就是一条数据往往有好多个特征,导致数据处理和分析起来比较麻烦,但是这些特征绝大部分都是非主要的,对数据的处理分析过程起到的作用特别少,但是却大大增加了数据处理的复杂度,所以我们就需要对数据进行降维处理,将多维度的数据减低到适当的低维度,从而达到对数据进行简化的目的。对数据进行简化有如下好处:使得数据集更易于使用; 降...

2019-11-07 15:10:32 311

原创 FP-growth算法来高效发现频繁集

FP-growth算法是一种高效发现频繁集的算法,比Apriori算法高效,但是不能用于发现关联规则。FP-growth算法只需要对数据即信两次扫描,而Apriori算法对于每个潜在的频繁项集都会扫描数据集判定给定模式是否是频繁,所以FP-growth更快。FP-growth算法主要分为两个过程:构建FP树; 从FP树中挖掘频繁项集。1.FP树介绍 FP代...

2019-11-01 23:17:19 1218

原创 Apriori算法(频繁集发现以及关联分析)

我们在网上购物的时候都会收到一些相关产品的推荐,这些被推荐的东西是怎么来的呢?如果我们买了一个鱼竿,那么推荐鱼线,鱼饵什么的是很正常的,毕竟这些产品都是相关性比较大的,收到推荐也不足为奇;但是仅限于此吗?之前不是有个很出名的例子,啤酒和尿布的例子,在没被发现这个规律之前,谁能想到他们两个有一定的联系?所以除过去那些关联性特别明显的东西,还有许多隐藏的有相关性的关系被隐藏在大量的数据...

2019-11-01 23:12:06 1905

原创 K-均值聚类(K-means)算法

聚类算法,是一种无监督的学习方法,他将相似的对象归到统一簇中,簇内的对象越相似,聚类效果也就越好,我们用簇识别表示给出聚类结果的含义。他有点像全自动分类,假定有一些数据,现在将相似数据归到一起,簇识别会告诉我们这些簇到底都是什么;聚类和分类的最大不同在于,分类的目标事先已知,而聚类则不一样。因为其产生的结果与分类相同,而只是类别没有预先定义,聚类有时也被称为无监督学习。 ...

2019-10-25 18:32:24 2913

转载 count(*),count(1),count(列名)的介绍以及区别

小小的count也有大文章,针对不同的应用场景和效率,也有不同的用法,参考博文:https://blog.csdn.net/hollis_chuang/article/details/102657937讲的很详细。

2019-10-25 11:13:49 96

原创 Spark中RDD,DataFrame,DataSet简单介绍

Spark中三个主要的数据对象RDD, DataFrame和DataSet都是分布式弹性数据集,为我们处理大量数据提供了很方便的工具及其接口。下面我们对其简单介绍,并且介绍一下其中的联系。 注:一下介绍的过程都是通过Java语言的视角介绍的。RDD RDD是一个分布式的对象集合,本质上是一个不可修改的只读的对象集合。在java中我们申请RDD...

2019-10-24 19:38:44 418

原创 隐马尔科夫模型

1.隐马尔科夫模型介绍 隐马尔可夫模型是关于时序的概率模型,描述有一个隐藏的马尔科夫链随机生成不可观测的随机序列,在有各个状态生成一个观测而产生观测序列的过程。 ...

2019-10-24 19:28:47 440

原创 提升树算法,梯度提升(GBDT)

提升模型是提升树算法的前提。提升模型的基本思想就是多个简单的模型线性组合成一个最终的模型,提升树算法的实现当然也是这个思路。看过好多的介绍,基本上在提升树算法中,每个简单的模型都是一颗树高为1的二叉树模型,因为每次都是选择一个特征及特征值,然后将数据集分开为不同的集合,然后对其进行相应的线性组合。当然可以简单的这么理解,下面结合自己的理解介绍一下提升树算法。 当然理...

2019-10-21 16:13:45 924

原创 提升方法(AdaBoost算法)

提升算法的核心思想是:组合多个弱分类器,然后成为一个强分类器。我们知道求弱分类器比强分类器要容易的多,那么如何提升便成为了开发提升方法时所要解决的问题,其中最具代表性的是AdaBoost算法。 AdaBoost算法 对于提升方法有两个需要注意的问题:一是在每一轮如何改变训练数据的权值或者概率分布;而是如何将弱分类器组合成一个强分类器。AdaBoost的做法...

2019-10-21 16:05:31 330

原创 支持向量机(三)序列最小最优化算法(SMO)

在支持向量机(一)和支持向量机(二)两篇文章中,我们分别介绍了线性可分的支持向量机和线性向量机,从中可知,我们最终的目的是要计算得出支持向量对应的拉格朗日乘子α,但是我们并没有说怎么算。这篇文章主要介绍了序列化最小优化算法,用来计算α。在介绍之前我们先简单介绍一下其中用到的核函数。核函数 首先我们看下面的两个图: ...

2019-10-15 17:07:59 710

原创 支持向量机(二)线性支持向量机与软间隔最大化

这篇文章是在支持向量机(一)基础上写的,如果对支持向量机还不太熟悉的话,建议先看(一)。 在支持向量机(一)中,我们主要讨论的是线性可分的支持向量机,但是现实情况中数据往往是线性不可分的,即数据中存在噪声点,使其不是完全线性可分的,或者说是近似线性可分的。这种情况下就是软间隔最大化,也就是线性支持向量机,而线性可分的支持向量机可以看成是线性支持向量机的一种特殊情况...

2019-10-12 18:11:52 1362 1

原创 支持向量机(一)线性可分的支持向量机与硬间隔最大化

支持向量机其实和感知机的模型思想挺相似的,都是找出一个分离超平面对数据进行二分类。它是定义在特征空间上的间隔最大的线性分类器,这个间隔最大化使它区别于感知机;感知机通过迭代算法找出的分离超平面可以是不唯一的,但是支持向量机由于有最大化间隔的限制,即所有的支持向量点到分离超平面的距离之和是最大的,所以它的分离超平面是唯一的;实际上支持向量机还有核技巧,即数据本来是非线性可分的,但是通...

2019-10-11 19:11:27 935

原创 机器学习-最大熵模型

最大熵模型是一种分类模型,它学习之后对某个x判断的结果是一个概率,即对一个自变量,它的分类分别是y1,y2,y3…yn的概率,然后概率最大的分类结果就是我们所要的结果分类ym。最大熵原理 最大熵原理认为,学习概率模型时在所有可能的概率模型中,熵最大的模型是最好的模型,这个是准则。但是在学习过程中,往往是有约束条件的,所以,熵最大原理也可以表述为在满足约束条件的模...

2019-10-10 19:20:20 374

原创 Logistic回归

“回归”一词,第一印象指的是线性回归,是一种预测算法;而Logistic回归算法中虽然也有“回归”,但是他并不是预测算法,而是一种分类算法,用于二分类的问题,但是它和线性回归还是有一定的关系的。Logistic分布首先我们给出Logistic分布函数如下: 其中μ是函数...

2019-10-09 10:42:24 599

原创 L1和L2正则化

在机器学习模型中,往往会有模型相对复杂过、拟合的情况。所以为了增加其泛化能力,最常用的方法就是增加正则化,常见的就是L1和L2正则化。L2正则化L2正则化,就是在原来损失函数的基础上加上权重向量的L2范式:E是基本损失函数,||ω||2是权重向量的L2范式,也就是向量元素的平方和,λ是两者的调和系数。这种形式我们最常见的就是线性回归模型中的岭回归模型,就是用过的L2正则化。我们将上...

2019-09-26 13:55:22 423

原创 回归(二):缩减系数

回归算法中不管是用线性回归找到最佳拟合直线,还是加权的线性回归算法,我们都是直接用矩阵相乘的方式,直接计算出对应的ω系数,这都是对应训练数据组成的矩阵是可逆的,换句话说X矩阵是满秩的,而对于某些属性个数多余样本个数的样本(样本数据组成矩阵后列数多于行数)组成的矩阵是不满秩,计算(XTX)-1的时候是会出错的。所以为了解决这个问题统计学家们引入了领回归(ridge regression)的概念。...

2019-09-26 13:52:35 994

原创 回归(一)

本篇文章介绍的回归主要是线性回归,就是输入项乘以常量然后求和。基本形式如下:回归模型中我们最常想到的和最常用到的都是用于预测。回归模型也是相对容易理解的,计算也不算复杂,但是它对数据的依懒性相对较大,对于非线性的数据拟合不好;主要是适用于数值型和标称型的数据。用线性回归找到最佳拟合直线其实纵观机器学习的好多算法,基本思想都是先列出损失函数,然后最小化损失函数,求出对应的系数,然后这个...

2019-09-26 13:50:34 209

原创 决策树(三):CART算法

CART(分类与回归树),也就是说CART算法既可以用于分类,也可以用于回归,它是在给定输入随机变量X条件下输出随机变量Y的条件概率分布的学习方法,其也和回归树一样是二叉树。是CART算法,也是分为:特征选择,树的生成,树的剪枝。其实感觉前两步可以合并为一步,因为树的生成过程中就是不断的进行特征的选择。李航《统计学习方法》中说,决策树生成阶段,生成的决策树要尽可能的大,也就是生成阶段,模型...

2019-09-26 13:48:25 926

原创 决策树(二):回归树和模型树

下面介绍的回归树和另一篇文章介绍的分类树,都属于决策树范畴。分类树的模型是每个非叶子节点都是一个分类特征,按照该分类特征的不同取值,将数据集分为多少个子集;并且分类树模型我们要找的是测试数据集的最终分类结果,而这个结果是标称型数据。而在回归树的概念中,每个非叶子节点也是需要根据某个特征分出子树,但是这个特征的取值是连续的,就不可能像分类树那样依据多少个取值分为多少个子树,所以在回归树模型中,一般都...

2019-09-26 13:45:05 4233

原创 决策树(一):分类决策树

决策树模型就是需要通过样本数据构建一棵树,数中除了叶子节点的每个节点都是一个数据特征的划分点,将待测数据的对应的特征和该节点上的划分特征做对比,然后将待测节点分到该节点的某个子节点上,然后再进行对比,直到叶子节点为止,然后判断待测数据的类型集合。决策树是一种基本的分类和回归的方法,所以可以分为分类决策树和回归决策树。分类决策树主要适用于标称型数据(如苹果的颜色、形状、口味等特征数据),可以理解...

2019-09-26 12:30:10 5915

原创 朴素贝叶斯法

概述 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对于给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。、上面的一段话是李航《统计学习方法》中的一段话,中间涉及到了一些基本概念,是贝叶斯方法的前提。条件独立假设:这是贝叶斯方法的前提条件,条件概率公式:P(B|A) ...

2019-09-26 12:25:55 164

原创 knn算法

概述Knn算法是相对来说比较简单的一个算法,也是比价容易理解的。他是一种用距离衡量样本间关系的一种算法,由于样本点的分类是已知的,所以用需要测试的点,找到与其距离相近的k个点(一般用欧式距离),我们就把这个测试的点归类为这k个点中占比重较大的分类。模型K近邻算法,没有显式的学习过程,每次运算都要用到所有的点,即计算到所有点的距离,一般是用欧式距离进行衡量。这里和聚类分析算法过程的衡量...

2019-09-26 12:22:00 502

原创 感知机

概述感知机可以看成是一种判别模型,适用于二分类的问题。它需要在给定样本点的基础上学习出来一个分离超平面,将已知的样本点分开。感知机是学习支持向量机的基础,因为两者基本上的思想是相似的,都是通过间隔最小化来实现的。学习策略通过给定的样本数据,学习得来一个分离超平面wx+b=0,使得这个平面可以很好的区分数据。对所有的数据分为正例点yi = +1和负例点yi = -1,即wx+b < 0...

2019-09-26 12:20:25 181

转载 KKT条件

学习支持向量机,用到了拉格朗日乘子法。对于等式约束很好明白,不等式约束问题用到了KKT条件,本人是通过下面两篇文章弄明白的,记录一下,以便日后学习。https://www.matongxue.com/madocs/939.htmlhttps://www.cnblogs.com/xinchen1111/p/8804858.html...

2019-07-09 15:28:13 444

谷歌关于大数据的三大论文

谷歌奠定了现在大数据框架的基础,这三篇论文就是google发表的关于bigtable,gfs(google大数据文件系统,Google file system),mapreduce的介绍,阅读之后可以帮助梳理关于大数据的一些思想

2018-10-23

java使用hbase-1.2版本需要的最小的jar包

java客户端连接hbase所需要的最少的jar包集合,这个我用的hbase1.2.1的,大家用的版本可能是有稍许的差别(但是这个jar包应该可以用),不过所需要的包名是一样的,只是版本不一样而已,可以根据具体的需要修改为相应的版本。

2018-06-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除