Spark入门实战系列--8.Spark MLlib(上)--机器学习及SparkMLlib简介 (8)

底层基础部分主要包括向量接口和矩阵接口,这两种接口都会使用Scala语言基于NetlibBLAS/LAPACK开发的线性代数库Breeze

MLlib支持本地的密集向量和稀疏向量,并且支持标量向量。

MLlib同时支持本地矩阵和分布式矩阵,支持的分布式矩阵分为RowMatrixIndexedRowMatrixCoordinateMatrix等。

关于密集型和稀疏型的向量Vector的示例如下所示。

clip_image043

     

clip_image045

疏矩阵在含有大量非零元素的向量Vector计算中会节省大量的空间并大幅度提高计算速度,如下图所示。

clip_image047

标量LabledPoint在实际中也被大量使用,例如判断邮件是否为垃圾邮件时就可以使用类似于以下的代码:

clip_image049

可以把表示为1.0的判断为正常邮件,而表示为0.0则作为垃圾邮件来看待。

对于矩阵Matrix而言,本地模式的矩阵如下所示。

clip_image051

clip_image053

分布式矩阵如下所示。

clip_image051[1]

 

clip_image055

RowMatrix直接通过RDD[Vector]来定义并可以用来统计平均数、方差、协同方差等:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzxygg.html