《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 ...
随机推荐
- Python运维开发基础04-语法基础
上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 仅用列表+循环实现"简单 ...
- Python小程序之「读取站点地图 自动为Gitalk创建Issues」
首发于个人博客 想获得更好的阅读体验,烦请移步⬆️ 前言 前些天给博客加了评论功能,试了Disqus.Valine等一干评论系统,最后还是选择了在大陆相对友好而且符合技术博客风格的Gitalk.但是由 ...
- Server.Transfer和Response.Redirect的区别
(1)Server.Transfer方法: Server.Transfer("m2.aspx");//页面转向(服务器上执行). 服务器停止解析本页,保存此页转向前的数据后,再使页 ...
- Putty建立隧道的方法[z]
通过上节我们了解了SSH隧道的优点,但是无论是现实中还是网络中,隧道都是有入口和出口的,本节就以Putty隧道为例,详细介绍Putty建立隧道的方法. 模拟案例一: 端口,出口为2012端口,隧道建立 ...
- string.match(RegExp) 与 RegExp.exec(string) 深入详解
string.match(RegExp) 与 RegExp.exec(string) 相同点与不同点对比解析: 1. 这两个方法,如果匹配成功,返回一个数组,匹配失败,返回null. 2. 当RegE ...
- Zookeeper 源码(五)Leader 选举
Zookeeper 源码(五)Leader 选举 前面学习了 Zookeeper 服务端的相关细节,其中对于集群启动而言,很重要的一部分就是 Leader 选举,接着就开始深入学习 Leader 选举 ...
- wcf已知类型 known type
.服务契约的定义 /* Copyright (c) 2014 HaiHui Software Co., Ltd. All rights reserved * * Create by huanglc@h ...
- Java程序设计17——多线程-Part-A
1 多线程 1.1 简介 大部分时候,我们编写的程序都是单线程的.也就是都只有一条顺序执行流:程序从main方法开始执行,依次向下执行每行代码,如果程序执行某行代码遇到了阻塞,则程序会停滞在该处.如果 ...
- SpringMvc 全局异常处理器定义,友好的返回后端错误信息
import com.google.common.collect.Maps; import org.apache.log4j.Logger; import org.springframework.be ...
- 马婕 2014MBA专硕考试 报刊选读 6(转)
http://blog.sina.com.cn/s/blog_3e66af4601016udh.html Protecting the weakest保护最弱势群体The recession may ...