《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 ...
随机推荐
- tomcat 403 forbidden
server.xml和tomcat-users.xml都是设置于过了,还是403,最后发现context.xml中多了一行 <Valve className="org.apache.c ...
- Entity Framework 6.0 对枚举的支持/实体添加后会有主键反回
实验 直接上代码,看结果 实体类 [Flags] public enum FlagsEnum { Day = , Night = } public class EntityWithEnum { pub ...
- qt5.7 安装
http://blog.csdn.net/liang19890820/article/details/53931813#安装-qt57 安装运行出错:qt vstool 指定qt安装路径 http:/ ...
- 解决root@localhost's password:localhost:permission denied,please try again
背景:在装完Hadoop及jdk之后,在执行start-all.sh的时候出现 root@localhost's password:localhost:permission denied,please ...
- php利用mpdf生成pdf并保存到目录
下载mpdf7.0两种方法 (1). github地址:https://github.com/mpdf/mpdf (2). composer require mpdf/mpdf <?php er ...
- div模拟键盘输入
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- swift -pop的简单动画
//1.新建空文件 命名Podfile //2.写入 pod ‘pop’,’~>1.0’ 保存 //3.打开终端,进入项目路径 执行pod install //4.新建桥接头文件 导入#im ...
- css选择器与DOM'匹配的关系
一道面试题 css 选择器匹配时,只考察是否包含有对应的class,而与class的顺序无关 而css的定义是后面的覆盖前面的定义 原理:http://www.w3.org/html/ig/zh/wi ...
- spark任务提交到yarn上命令总结
spark任务提交到yarn上命令总结 1. 使用spark-submit提交任务 集群模式执行 SparkPi 任务,指定资源使用,指定eventLog目录 spark-submit --class ...
- NativeScript的开发体会
上个月开始,国内的主流技术网站开始在推荐NativeScrpit,"js+xml写跨终端app"."原生体验挡不住",很多网站都拿这个当做宣传NativeScr ...