Spark MLlib

美图欣赏:

Spark MLlib

机器学习库(MLlib)

 

MLlib是Spark的机器学习(ML)库。其目标是使实用的机器学习可扩展且容易。在较高级别,它提供了以下工具:

  • ML算法:常见的学习算法,例如分类,回归,聚类和协作过滤
  • 特征化:特征提取,变换,降维和选择
  • 管道:用于构建,评估和调整ML管道的工具
  • 持久性:保存和加载算法,模型和管道
  • 实用程序:线性代数,统计信息,数据处理等

声明:基于DataFrame的API是主要API

基于MLlib RDD的API现在处于维护模式。

从Spark 2.0开始,程序包中基于RDD的API spark.mllib已进入维护模式。现在,用于Spark的主要机器学习API是软件包中基于DataFrame的API spark.ml

这意味着什么?

  • MLlib仍将spark.mllib通过错误修复支持基于RDD的API 。
  • MLlib不会向基于RDD的API添加新功能。
  • 在Spark 2.x发行版中,MLlib将向基于DataFrames的API添加功能,以与基于RDD的API达到功能奇偶。
  • 达到功能奇偶性(大致针对Spark 2.2估算)后,将不推荐使用基于RDD的API。
  • 预计将在Spark 3.0中删除基于RDD的API。

为什么MLlib切换到基于DataFrame的API?

  • 与RDD相比,DataFrames提供了更加用户友好的API。DataFrames的许多好处包括Spark数据源,SQL / DataFrame查询,Tungsten和Catalyst优化以及跨语言的统一API。
  • 用于MLlib的基于DataFrame的API为ML算法和多种语言提供了统一的API。
  • DataFrame有助于实际的ML管道,特别是功能转换

 

Mllib在spark中是一个可扩展的机器学习库

saprk对于机器学习有得天独厚的优势。    

伪代码:
double Jackson = 1.0
while(Jackson > 0.01){
    建模
    wucha -= 某个值
}

机器学习算法一般会有很多迭代计算步骤,来活得足够小的误差,或者足够收敛的时候才会停止。

​    1.mapreduce是可以做迭代计算,但是在这个过程中每次将数据写进磁盘,会导致非常大的IO和消耗CPU。

​    而spark是基于内存计算的擅长迭代计算,每一步都是在内存完成,必要情况下会落盘。

​    spark是机器学习一个比较理想的平台。

​    2.通信:mapreduce中的通信时靠心跳的方式来进行通信

​        spark中akka  netty通信系统,通信的效率很高。

Mllib是spark的常用机器学习的库的实现。同时还包括相关的测试数据,和数据生成器

 

 

 

                                                                                                                                     ————保持饥饿,保持学习

                                                                                                                                                          Jackson_MVP