1 概念

2 安装

3 RDD

RDD包含两种基本的类型:Transformation和Action。RDD的执行是延迟执行,只有Action算子才会触发任务的执行。

宽依赖和窄依赖用于切分任务,如果都是窄依赖,那么就可以最大化的利用并行。

常用操作:

  • cache 缓存
  • cartesian 笛卡尔积
  • coalesce 重分区
  • countByValue 分组统计
  • distinct 去除重复
  • filter 过滤
  • flatMap
  • map
  • groupBy 分组
  • keyBy 增加key
  • reduce 拼接
  • sortBy 排序
  • zip 合并压缩

4 基本概念

基本的数据结构

MLlib中提供几种向量和矩阵的数据结构:

  • Local vector,本地向量
  • Labeld point,带标签的向量
  • Local Matrix,本地矩阵
  • Distributed matrix,分布式矩阵

一般向量或者矩阵都有两个方法,dense表示密集版,sparse表示稀疏版,稀疏版是可以指定下标的。

基本的统计方法

  • colStats 以列统计基本数据,count个数、max最大值、mean最小值、normL1欧几里德距离、normL2曼哈顿距离、numNonzeros不为0的个数、variance标准差
  • chiSqTest 皮尔逊距离计算,Statistics.corr(rddx,rddy,"spearman")
  • corr 数据集相关系数计算,Statistics.corr(rddx,rddy)
  • 分层抽样 data.sampleByKey(withReplacement=false,fractions,0)
  • 假设检验 自由度、统计量、P值、卡方检验
  • 随机数 RandomRDDs.normalRDD(sc,100)

5 协同过滤

协同过滤可以基于人也可以基于物品,不足之处在于:

  • 基于人会对热点物品不够精确
  • 基于物品,但是没有什么多样性

相似度度量

  • 基于欧几里德距离的计算
  • 基于夹角余弦的相似度计算

他们的区别:

  • 欧几里德注重空间上的差异
  • 夹角余弦注重趋势

最小二乘法

最小二乘,就是基于均方误差寻找最佳匹配函数的过程。在矩阵中就是把大矩阵拆分成连个小矩阵的计算。

实践

new ALS()
rank 隐藏的因子数
iterations 迭代次数
lambda 正则项参数
implicitPref 显示反馈还是隐式反馈
alpha 拟合修正的幅度

6 线性回归

梯度下降

道士下山的例子,以及随机梯度下降中 θ=θ-α*J'(θ)公式的原理。

正则项

避免过拟合,可以使用正则项——lasso回归(L1)和岭回归(L2)。关于岭回归可以参考下面两篇:

7 分类

分类算法,包括 逻辑回归、支持向量机SVM、贝叶斯等。

逻辑回归

跟线性回归差不多,多了一个sigmoid函数,输出的内容也稍有变化。

另外,对于损失函数的推导也不同了,这里需要最大似然估计的知识!

基本的流程就是,确定1或者0的概率,然后推导出极大似然公式,然后取对数,求导...最终基于梯度下降,优化参数。

由于忘记最大似然估计,所以这里真是理解不上去.

支持向量机

求解的是划分边界的最优解,他的名字听起来像一种很高级的机器人,其实跟逻辑回归差不多,就是选取一条最优的线把数据分作两类。

这里有疑问的可以参考——逻辑回归和SVM的区别是什么?各适合解决什么问题?

https://www.zhihu.com/question/24904422?sort=created

暂时不知道它的损失函数是怎么算出来的...慢慢研究吧

朴素贝叶斯

明明就是计算概率,非叫这么高大上的名字。

《Spark MLlib 机器学习实战》1——读后总结的更多相关文章

  1. Spark MLlib 机器学习

    本章导读 机器学习(machine learning, ML)是一门涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多领域的交叉学科.ML专注于研究计算机模拟或实现人类的学习行为,以获取新知识.新 ...

  2. 《Spark MLlib机器学习实践》内容简介、目录

      http://product.dangdang.com/23829918.html Spark作为新兴的.应用范围最为广泛的大数据处理开源框架引起了广泛的关注,它吸引了大量程序设计和开发人员进行相 ...

  3. Spark MLlib机器学习

    前言 Spark MLlib是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器.

  4. Spark MLlib机器学习(一)——决策树

    决策树模型,适用于分类.回归. 简单地理解决策树呢,就是通过不断地设置新的条件标准对当前的数据进行划分,最后以实现把原始的杂乱的所有数据分类. 就像下面这个图,如果输入是一大堆追求一个妹子的汉子,妹子 ...

  5. Spark Mllib里的向量标签概念、构成(图文详解)

    不多说,直接上干货! Labeled point: 向量标签 向量标签用于对Spark Mllib中机器学习算法的不同值做标记. 例如分类问题中,可以将不同的数据集分成若干份,以整数0.1.2,... ...

  6. Spark Mllib里如何采用保序回归做回归分析(图文详解)

    不多说,直接上干货! 相比于决策树,保序回归的应用范围没有决策树算法那么广泛. 特别在数据处理较为庞大的时候,采用保序回归做回归分析,可以极大地节省资源,从而提高计算效率. 保序回归的思想,是对数据进 ...

  7. Spark Mllib里的卡方检验

    不多说,直接上干货! import org.apache.spark.mllib.stat.Statistics 具体,见 Spark Mllib机器学习实战的第4章 Mllib基本数据类型和Mlli ...

  8. Spark Mllib里的分层抽样(使用map作为分层抽样的数据标记)

    不多说,直接上干货! 具体,见 Spark Mllib机器学习实战的第4章 Mllib基本数据类型和Mllib数理统计

  9. Spark Mllib里的如何对单个数据集用斯皮尔曼计算相关系数

    不多说,直接上干货! import org.apache.spark.mllib.stat.Statistics 具体,见 Spark Mllib机器学习实战的第4章 Mllib基本数据类型和Mlli ...

随机推荐

  1. JAXB--@XmlElementWrapper注解(二)

    在JAXB标准中,@XmlElementWrapper注解表示生成一个包装 XML 表示形式的包装器元素. 此元素主要用于生成一个包装集合的包装器 XML 元素.因此,该注释支持以下两种形式的序列化. ...

  2. S 导入公司数据

    导入公司数据,使用INSERT [Public] ConnectString=host="siebel://10.10.0.46:2321/HC_CRM/SMObjMgr_chs Conne ...

  3. Rigidbody中 Angular Drag (角阻力):

    Rigidbody中 Angular Drag  (角阻力):同样指的是空气阻力,只不过是用来阻碍物体旋转的.如果设置成无限的话,物体会立即停止旋转.如果设置成0,物体在上升过程中,会发生侧翻旋转. ...

  4. Python编程快速上手(七)Unsplash批量下载器

    首发于个人博客:http://rhinoc.top/post/python_7.html 程序描述 V1.0输入关键字搜索图片,模拟页面下拉获取更多图片,页面加载完成后获取图片链接并下载至指定文件夹. ...

  5. Luogu 5170 【模板】类欧几里得算法

    原理不难但是写起来非常复杂的东西. 我觉得讲得非常好懂的博客.   传送门 我们设 $$f(a, b, c, n) = \sum_{i = 0}^{n}\left \lfloor \frac{ai + ...

  6. dedecms图片上传函数

    /** * 图片上传类 * @param $file上传图片信息 * @param $ty */ function upload_pic($file, $ty) { if (!is_uploaded_ ...

  7. 如何让多个android listview同时使用一个滚动条

    如何让多个android listview同时使用一个滚动条 重新设置ListView的高度 /** * 设置listview高度,注意listview子项必须为LinearLayout才能调用该方法 ...

  8. 不要怂,就是GAN (生成式对抗网络) (三):判别器和生成器 TensorFlow Model

    在 /home/your_name/TensorFlow/DCGAN/ 下新建文件 utils.py,输入如下代码: import scipy.misc import numpy as np # 保存 ...

  9. Exception in thread "main" java.lang.Error: Unresolved compilation problem

    初学java,使用eclipse编译时,可能会遇到如下图所示的编译错误(Exception in thread "main" java.lang.Error: Unresolved ...

  10. Thrift编译错误('::malloc' has not been declared)

    问题版本:0.9.0 make[4]: Entering directory `/tmp/X/thrift-0.9.0/lib/cpp' /bin/sh ../../libtool  --tag=CX ...