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. Go Methods and Interfaces

    [Go Methods and Interfaces] 1.Go does not have classes. However, you can define methods on struct ty ...

  2. String对象不可改变的特性及内存机制

    JAVA中字符串类型String是不允许改变其内容的,下列语句是如何运行的:String s=new String("ABCD");s=s+"123": 最佳回 ...

  3. 2015年传智播客JavaEE 第168期就业班视频教程06-权限校验子系统介绍

    没整过论坛你也整过淘宝,其实淘宝登录的也分商家和个人,卖家和买家,不同的人登录显示的东西是不一样的.权限系统要分两大过程,第四天上午下午分开,分为授权与校验.我把某一个职务给你叫做授权,例如封你为征西 ...

  4. 两个链表的交叉 · Intersection of Two Linked Lists

    [抄题]: Write a program to find the node at which the intersection of two singly linked lists begins. ...

  5. SFTP 安装与配置

    SFTP 安装与配置 sftp 是 Secure File Transfer Protocol 的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.SFTP 为 SSH 的一部分,由于这种 ...

  6. xml数据改动

    public void reXml ( string namepngname ) { XmlDocument doc = new XmlDocument(); doc.Load(_xmlpath); ...

  7. xib下这种方式创建cell

      这种方法在iOS5.0之前是不能够创建成功的.   MEConvertListTableViewCell *cell = [tableView dequeueReusableCellWithIde ...

  8. (并查集 带关系)Find them, Catch them -- poj -- 1703

    链接: http://poj.org/problem?id=1703 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3676 ...

  9. 数据恢复软Extundelete

    1>概述  作为一名运维人员,保证数据的安全是根本职责,所以在维护系统的时候,要慎重和细心,但是有时也难免发生出现数据被误删除的情况,这个时候该如何              快速.有效地恢复数 ...

  10. c3p0--常见异常

    获取资源timeout: 异常信息如下: Caused by: java.sql.SQLException: An attempt by a client to checkout a Connecti ...