原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/4019131.html 在spark mllib 1.1版本中增加stat包,里面包含了一些统计相关的函数,本文主要分析其中的卡方检验的原理与实现: 一.基本原理 在stat包中实现了皮尔逊卡方检验,它主要包含以下两类 (1)适配度检验(Goodness of Fit test):验证一组观察值的次数分配是否异于理论上的分配. (2)独立性检验(independence test) :验证从两个变量抽出…
原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/4024733.html 在spark mllib 1.1版本中增加stat包,里面包含了一些统计相关的函数,本文主要分析其中的相关系数计算的原理与实现: 一.基本原理 在stat包中实现了皮尔逊(Pearson)与斯皮尔曼(Spearman)两类相关系数的计算 (1)Pearson:   (x,y)协方差/[(x标准方差)*(y标准方差)]…
原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/4042467.html 本文主要以mllib 1.1版本为基础,分析朴素贝叶斯的基本原理与源码 一.基本原理 理论上,概率模型分类器是一个条件概率模型. 独立的类别变量有若干类别,条件依赖于若干特征变量 ,,...,.但问题在于如果特征数量较大或者每个特征能取大量值时,基于概率模型列出概率表变得不现实.所以我们修改这个模型使之变得可行. 贝叶斯定理有以下式子: 对于朴素贝叶斯,它的特征变量,,...,是…
本文主要以mllib 1.1版本为基础,分析决策树的基本原理与源码 一.基本原理 二.源码分析 1.决策树构造 指定决策树训练数据集与策略(Strategy)通过train函数就能得到决策树模型DecisionTreeModel 决策树策略包含了:algo(算法类型:分类.回归),impurity(信息增益计算算法).maxDepth(数最大深度). numClassesForClassification(数分类分支数目,为2就是二叉数),maxBins(特征变量最大的分类数目限制). quan…
spark的存储系统--BlockManager源码分析 根据之前的一系列分析,我们对spark作业从创建到调度分发,到执行,最后结果回传driver的过程有了一个大概的了解.但是在分析源码的过程中也留下了大量的问题,最主要的就是涉及到的spark中重要的几个基础模块,我们对这些基础设施的内部细节并不是很了解,之前走读源码时基本只是大概了解每个模块的作用以及对外的主要接口,这些重要的模块包括BlockMananger, MemoryMananger, ShuffleManager, MapOut…
一.前述 Spark中资源调度是一个非常核心的模块,尤其对于我们提交参数来说,需要具体到某些配置,所以提交配置的参数于源码一一对应,掌握此节对于Spark在任务执行过程中的资源分配会更上一层楼.由于源码部分太多本节只抽取关键部分和结论阐述,更多的偏于应用. 二.具体细节 1.Spark-Submit提交参数 Options: --master MASTER_URL, 可以是spark://host:port, mesos://host:port, yarn,  yarn-cluster,yarn…
由于gitbook网速不好,所以复制自https://zx150842.gitbooks.io/spark-1-6-1-source-code/content/,非原创,纯属搬运工,若作者要求,可删除. 这本书主要用来记录学习spark 1.6.1源码,希望通过阅读本书,对spark主要功能模块以及模块之间的调用有一个新的认识,对模块中核心的代码会附上个人的注释.由于个人能力有限,书中内容可能会有错误,还请指正.…
1. Param Spark ML使用一个自定义的Map(ParmaMap类型),其实该类内部使用了mutable.Map容器来存储数据. 如下所示其定义: Class ParamMap private[ml] (private val map.mutable.Map[Param[Any],Any]) 从上述定义可以看出,ParamMap是用一个Map来存储,key为Param[Any],value为Any.这里的value就是用户设置的参数值,而key是对String的封装,对用户来所其实就是…
<深入理解Spark 核心思想与源码分析> 耿嘉安著 本书共计486页,计划每天读书20页,计划25天完成. 2018-12-20   1-20页 凡事豫则立,不豫则废:言前定,则不跲:事前定,则不困. ——<礼记.中庸> 第一章: 1.运行环境,安装JDK. 2.运行环境,安装scala. wget http://downloads.typesafe.com/scala/2.10.4/scala-2.10.4.tgz 安装版本2.10.4 chmod 775 scala-2.10…
http://spark.apache.org/docs/latest/mllib-decision-tree.html 以决策树作为开始,因为简单,而且也比较容易用到,当前的boosting或random forest也是常以其为基础的 决策树算法本身参考之前的blog,其实就是贪婪算法,每次切分使得数据变得最为有序   那么如何来定义有序或无序? 无序,node impurity 对于分类问题,我们可以用熵entropy或Gini来表示信息的无序程度 对于回归问题,我们用方差Variance…