《Spark MLlib 机器学习实战》1——读后总结
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)。关于岭回归可以参考下面两篇:
- http://baike.baidu.com/link?url=Z51DHIIFnkdsYyx13q7qk24hB_-XUqW3e7IdHsz4gZbjbNx718tzMxVfWibdZOG7Y0Aa4HOZdqhsHDA1rEbW9z-8iNYAb4ykjU6kyhNakSoHQ9Yjk7EyAJnidhE3B_Gx
- http://www.ics.uci.edu/~welling/teaching/KernelsICS273B/Kernel-Ridge.pdf
7 分类
分类算法,包括 逻辑回归、支持向量机SVM、贝叶斯等。
逻辑回归
跟线性回归差不多,多了一个sigmoid函数,输出的内容也稍有变化。
另外,对于损失函数的推导也不同了,这里需要最大似然估计的知识!
基本的流程就是,确定1或者0的概率,然后推导出极大似然公式,然后取对数,求导...最终基于梯度下降,优化参数。
由于忘记最大似然估计,所以这里真是理解不上去.
支持向量机
求解的是划分边界的最优解,他的名字听起来像一种很高级的机器人,其实跟逻辑回归差不多,就是选取一条最优的线把数据分作两类。
这里有疑问的可以参考——逻辑回归和SVM的区别是什么?各适合解决什么问题?
https://www.zhihu.com/question/24904422?sort=created
暂时不知道它的损失函数是怎么算出来的...慢慢研究吧
朴素贝叶斯
明明就是计算概率,非叫这么高大上的名字。
《Spark MLlib 机器学习实战》1——读后总结的更多相关文章
- Spark MLlib 机器学习
本章导读 机器学习(machine learning, ML)是一门涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多领域的交叉学科.ML专注于研究计算机模拟或实现人类的学习行为,以获取新知识.新 ...
- 《Spark MLlib机器学习实践》内容简介、目录
http://product.dangdang.com/23829918.html Spark作为新兴的.应用范围最为广泛的大数据处理开源框架引起了广泛的关注,它吸引了大量程序设计和开发人员进行相 ...
- Spark MLlib机器学习
前言 Spark MLlib是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器.
- Spark MLlib机器学习(一)——决策树
决策树模型,适用于分类.回归. 简单地理解决策树呢,就是通过不断地设置新的条件标准对当前的数据进行划分,最后以实现把原始的杂乱的所有数据分类. 就像下面这个图,如果输入是一大堆追求一个妹子的汉子,妹子 ...
- Spark Mllib里的向量标签概念、构成(图文详解)
不多说,直接上干货! Labeled point: 向量标签 向量标签用于对Spark Mllib中机器学习算法的不同值做标记. 例如分类问题中,可以将不同的数据集分成若干份,以整数0.1.2,... ...
- Spark Mllib里如何采用保序回归做回归分析(图文详解)
不多说,直接上干货! 相比于决策树,保序回归的应用范围没有决策树算法那么广泛. 特别在数据处理较为庞大的时候,采用保序回归做回归分析,可以极大地节省资源,从而提高计算效率. 保序回归的思想,是对数据进 ...
- Spark Mllib里的卡方检验
不多说,直接上干货! import org.apache.spark.mllib.stat.Statistics 具体,见 Spark Mllib机器学习实战的第4章 Mllib基本数据类型和Mlli ...
- Spark Mllib里的分层抽样(使用map作为分层抽样的数据标记)
不多说,直接上干货! 具体,见 Spark Mllib机器学习实战的第4章 Mllib基本数据类型和Mllib数理统计
- Spark Mllib里的如何对单个数据集用斯皮尔曼计算相关系数
不多说,直接上干货! import org.apache.spark.mllib.stat.Statistics 具体,见 Spark Mllib机器学习实战的第4章 Mllib基本数据类型和Mlli ...
随机推荐
- 7.25 11figting!
TEXT 76 Start of the long march 而今迈步从头越(陈继龙编译) Nov 16th 2006 | BEIJING AND HONG KONG From The Econom ...
- 编译参数中-pthread以及-lpthread的区别
一般情况下,我们在链接一个(文件名为libxxx.so或libxxx.a等的)库时,会使用-lxxx的方式:在Linux中要用到多线程时,需要链接pthread库,按照惯例,我们应该使用-lpthre ...
- MongoDB--CSharp Driver Quickstart .
原文链接 http://www.mongodb.org/display/DOCS/CSharp+Driver+Quickstart?showComments=true&showCommentA ...
- 解析config文件 练手代码
解析一个如下的CONFIG文件 #config.txt #SHTTPD Web 服务器配置文件示例 #侦听端口 ListenPort = 80 #最大并发访问客户端数目 MaxClient = 8 # ...
- centos7 单台zookeeper安装
1.创建 /usr/local/services/zookeeper 文件夹: mkdir -p /usr/local/services/zookeeper 2.进入到 /usr/local/ser ...
- 利用FFmpeg转压视频的说明
当我们制作视频的时候,录制完成的视频往往很大,很容易超过50M,上传的时候会很慢.下面将相关技巧说明如下(转载,版权属于原作者所有). 利用FFmpeg转压视频的说明 录制介绍视频时可以用尽可能高的分 ...
- vue项目 调用百度地图 BMap is not defined
这次老板新接了一个四点半官网页面,使用vue来写.emm……我感觉整个人都不好了,两天半解决了20个静态页面.还好vue写页面简直飞快,遇到一个vue的新坑,使用百度地图. 研究了好一会,总是报错BM ...
- 小程序报错Do not have xx handler in current page的解决方法
看到小程序这一大串的“Do not have bindName handler in current page: pages/card/card. Please make sure that bind ...
- POJ1269 Intersecting Lines 2017-04-16 19:43 50人阅读 评论(0) 收藏
Intersecting Lines Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 15478 Accepted: 67 ...
- [label][PHP-Security]PHP Security Program
本文是通过阅读http://www.nowamagic.net/中的PHP安全变成专题,同时结合个人的一点点开发经验组合而成的. 如果你需要看原文,可以直接访问http://www.nowamagic ...