Spark学习之基于MLlib的机器学习

1. 机器学习算法尝试根据训练数据(training data)使得表示算法行为的数学目标最大化,并以此来进行预测或作出决定。

2. MLlib完成文本分类任务步骤:

(1)首先用字符串RDD来表示你的消息

(2)运行MLlib中的一个特征提取(feature extraction)算法来把文本数据转换为数值特征(适合机器学习算法处理);该操作会返回一个向量RDD。

(3)对向量RDD调用分类算法(比如逻辑回归);这步会返回一个模型对象,可以使用该对象对新的数据点进行分类。

(4)使用MLlib的评估函数在测试数据集上评估模型。

3. MLlib包含的主要数据类型:

  • Vector
  • LabeledPoint
  • Rating
  • 各种Model类

4. 操作向量

  • 向量有两种:稠密向量和稀疏向量

    • 稠密向量:把所有维度的值存放在一个浮点数数组中
    • 稀疏向量:只把各维度的非零值存储下来
    • 优先考虑稀疏向量,也是关键的优化手段
  • 创建向量的方式在各语言上有一些细微差别

5. 算法

  • 特征提取

    • TF-IDF(词频——逆文档频率)使用用来从文本文档(例如网页)中生成特向量的简单方法。
    • MLlib用两个算法来计算TF-IDF:Hashing和IDF,都在mllib.feature包内。
    • 缩放,大多数要考虑特征向量中各元素的幅值,并且在特征缩放调整为平等对待时表现最好。
    • 正规化,在准备输入数据时,把向量正规化为长度1。使用Normalizer类可以实现。
    • Word2Vec是一个基于神经网络的文本特征算法,可以用来将数据传给许多下游算法。
  • 统计
  • 分类和归类
    • 分类与回归是监督学习的两种形式。
    • 监督学习是指算法尝试使用有标签的训练数据根据对象的特征预测结果。
    • 在分类中,预测出的变量是离散的。
    • 在回归中,预测出的变量是连续的。
    • MLlib中包含许多分类与回归算法:如简单的线性算法以及决策树和森林算法。
  • 聚类
    • 聚类算法是一种无监督学习任务,用于将对象分到具有高度相似性的聚类中。
    • 聚类算法主要用于数据探索(查看一个新数据集是什么样子)以及异常检测(识别与任意聚类都相聚较远的点)。
    • MLlib中包含两个聚类中流行的K-means算法,以及一个叫做K-means||的变种,可以提供为并行环境提供更好的初始化策略。
  • 协同过滤与推荐
    • 协同过滤是一种根据用户对各种产品的交互与评分来推荐新产品的推荐系统技术。
    • 交替最小二乘(ALS),会为每个用户和产品都设一个特征向量,这样用户向量和产品向量的点积就接近于他们的得分。
  • 降维
    • 主成分分析(PCA)

      • PCA会把特征映射到低位空间,让数据在低维空间表示的方差最大化,从而忽略一些无用的维度。
      • 要计算这种映射,我们要构建出正规化的相关矩阵,并使用这个矩阵的奇异向量和奇异值。
      • 与最大的一部分奇异值相对应的奇异向量可以用来重建原始数据的主要成分。
//Scala中的PCA

import org.apache.spark.mllib.linalg.Matrix
import org.apache.spark.mllib.linalg.distributed.RowMatrix val points:RDD[Vector]=//...
val mat:RowMatrix = new RowMatrix(points)
val pc:Matrix = mat.computerPrincipalComponents(2) //将点投影到低维空间中
val projected = mat.nultiply(pc).rows //在投影出的二维数据上训练k-means模型
val model = KMeans.train(projected,10)
  • 降维

    • 奇异值分解

      • MLlib也提供底层的奇异值分解(简称SVD)原语。

Spark学习之基于MLlib的机器学习的更多相关文章

  1. Spark学习笔记——基于MLlib的机器学习

    使用MLlib库中的机器学习算法对垃圾邮件进行分类 分类的垃圾邮件的如图中分成4个文件夹,两个文件夹是训练集合,两个文件夹是测试集合 build.sbt文件 name := "spark-f ...

  2. 【转载】Spark学习 & 机器学习

    然后看的是机器学习这一块,因为偏理论,可以先看完.其他的实践,再看. http://www.cnblogs.com/shishanyuan/p/4747761.html “机器学习是用数据或以往的经验 ...

  3. spark学习笔记总结-spark入门资料精化

    Spark学习笔记 Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用. ...

  4. Spark学习笔记总结-超级经典总结

    Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用.减少了延时处理,提高 ...

  5. 【转载】Spark学习——入门

    要学习分布式以及数据分析.机器学习之类的,觉得可以通过一些实际的编码项目入手.最近Spark很火,也有不少招聘需要Spark,而且与传统的Hadoop相比,Spark貌似有一些优势.所以就以Spark ...

  6. spark学习及环境配置

    http://dblab.xmu.edu.cn/blog/spark/ 厦大数据库实验室博客 总结.分享.收获 实验室主页 首页 大数据 数据库 数据挖掘 其他 子雨大数据之Spark入门教程  林子 ...

  7. Spark学习一:Spark概述

    1.1 什么是Spark ​ Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎. ​ 一站式管理大数据的所有场景(批处理,流处理,sql) ​ spark不涉及到数据的存储,只 ...

  8. 用Spark学习FP Tree算法和PrefixSpan算法

    在FP Tree算法原理总结和PrefixSpan算法原理总结中,我们对FP Tree和PrefixSpan这两种关联算法的原理做了总结,这里就从实践的角度介绍如何使用这两个算法.由于scikit-l ...

  9. 用Spark学习矩阵分解推荐算法

    在矩阵分解在协同过滤推荐算法中的应用中,我们对矩阵分解在推荐算法中的应用原理做了总结,这里我们就从实践的角度来用Spark学习矩阵分解推荐算法. 1. Spark推荐算法概述 在Spark MLlib ...

随机推荐

  1. 【分享】国外后台界面HTML源码 [免费]

    国外后台界面HTML模版下载,里面的文字是英文的,不过可以修改成中文,带有数据统计界面和曲线图,本套模板相对完整,在主界面上点击那些菜单,都可以点开二级页面,希望对搞代码的程序员,对不擅长美工的朋友提 ...

  2. 如何用distinct消除重复记录的同时又能选取多个字段值?

    http://www.cnblogs.com/warioland/archive/2012/05/30/2526128.html

  3. JAVA并发的性能调整

    1.互斥技术 synchronized Lock Atomic 性能比较Atomic >  Lock  > synchronized,当然这不是绝对的.当线程数比较少时,synchroni ...

  4. 第三百三十三天 how can I 坚持

    为什么感觉那么累呢,老想睡觉. 晚上勇江请吃饭,其实内心是拒绝的,好伐,老想回家尽快睡觉. 今天说是要搞oauth认证的东西,看的一头雾水. 想的太简单了.其实也不难.apache的东西,都封装好的. ...

  5. Linux内核学习笔记

    1.vanbreaker的专栏 2.LinuxKernel Exploration 3.DroidPhone的专栏 4.Linux内核研究以及学习文档和ARM学习以及研究的开放文档   [力荐] 5. ...

  6. [Qt] fontawesome图标

    fontawesome图标 fontawesome是一个图标的集合,里面有好多的图标,使用起来也还是非常方便的. 图标信息可以到官网去查:http://fontawesome.io/cheatshee ...

  7. JSP通用7动作命令

    JSP通用7动作命令 1.jsp:forward指令    运行页面转向.将请求处理转发到下一个页面 2.jsp:param指令    用于传递參数 3.jsp:include指令    用于动态引入 ...

  8. 文章标题 Oracle数据库中dual表使用

    一. 业务场景 业务流程需要进行写入和更新的比较,所以有原表和历史表. 要求表中的ID唯一性,以及两张表的ID关联,另外后续可能数据库会进行迁移 二.方案选择 方案一:id设置为int型自增长. 这种 ...

  9. 微信支付errcode:40163,code been used,错误小结

    1.配置时注意,支付平台中的支付授权目录, 注意大小写. 昨天碰到的问题,就是自己跳转时,路径写的全小写.跳转支付页面也能跳转过去,但是log中总是调用两次code,报40163错误.后改成和公总号支 ...

  10. core.net 创建coreclass 项目出现一些问题

    错误如下: Project CoreTest does not have a lock file. Please run "dotnet restore" to generate ...