简介
? ? MLlib是火花提供提供机器学习的库,专为在集群上并行运行的情况而设计。
MLlib包含很多机器学习算法,可在火花支持的所有编程语言中使用。
? ? MLlib设计理念是将数据以抽样的形式表示,然后在分布式数据集上调用各种算法。其实,MLlib就是抽样上一系列可供调用的函数的集合。
数据类型
? ? MLlib包含一些特有的数据类型,位于org.apache.spark.mllib包(Java/Scala)或pyspark.mllib (Python)中。主要的几个类有:
-
<李>
向量
-
<李>
一个本地向量(当地向量)。索引是从0开始的,并且是整型,而值为两类型,存储于单个机器内。
李> <李>MLlib既支持稠密向量也支持稀疏向量,前者表示向量的每一位都存储,后者只存储非零位以节约空间。
李> <李>向量可以通过mllib.linalg.Vectors类创建
李> <李> scala李><代码>//创建稠密向量 scala>val denseVec1=Vectors.dense (1.0, 2.0, 3.0) denseVec1: org.apache.spark.mllib.linalg。向量=(1.0,2.0,3.0) scala>val denseVec2=Vectors.dense(阵列(1.0,2.0,3.0)) denseVec2: org.apache.spark.mllib.linalg。向量=(1.0,2.0,3.0)//创建稀疏向量 scala>val sparseVec1=Vectors.sparse(4数组(0,2)阵列(1.0,2.0)) sparseVec1: org.apache.spark.mllib.linalg。向量=(4(0,2)[1.0,2.0])代码>
-
<李> python李>
<代码>祝辞的在比;从pyspark.mllib。linalg进口向量 在在在穴=Vectors.dense ([1.0, 2.0, 3.0]) 在在在窝 DenseVector ((1.0, 2.0, 3.0)) 在在在温泉=Vectors.sparse (4 (0, 2) [1.0, 2.0]) 在在在水疗中心 SparseVector({0: 1.0, 2: 2.0}) 代码>李> <李>
LabeledPoint
-
<李>
在分类和回归之类的监督式学习(监督学习)算法中使用。
李> <李>LabeledPoint表示带标签的数据点,包括一个特征向量与一个标签(由一个浮点数表示)。
李> <李>位于mllib.regression包中
李> <李> scala李><代码>//首先需要引入标签点相关的类 进口org.apache.spark.mllib.linalg.Vectors 进口org.apache.spark.mllib.regression.LabeledPoint//创建一个带有正面标签和稠密特征向量的标签点。 val pos=LabeledPoint (1.0, Vectors.dense (1.0, 0.0, 3.0))//创建一个带有负面标签和稀疏特征向量的标签点。 val neg=LabeledPoint(0.0,向量。稀疏(数组(0,2),数组(1.0,3.0)))代码>
-
<李> python李>
<代码>祝辞的在比;从pyspark.mllib。回归进口LabeledPoint 在在在从pyspark.mllib。linalg进口向量 在在在pos=LabeledPoint (1.0, Vectors.dense ((1.0, 2.0, 3.0))) 在在在neg=LabeledPoint (0.0, Vectors.dense((1.0, 2.0, 3.0))) 代码>李> <李> 矩阵
-
<李>
矩阵分为稠密矩阵和稀疏矩阵
李> <李>稠密矩阵的实体值以列为主要次序的形式,存放于单个双型数组内。系数矩阵的非零实体以列为主要次序的形式,存放于压缩稀疏列(压缩稀疏列,CSC)中,例如,下面这个稠密矩阵就是存放在一维数组(1.0,3.0,5.0,2.0,4.0,6.0)中,矩阵的大小为(3 2)。
李> <李>本地矩阵的基类是矩阵类,在火花中有其两种实现,分别是DenseMatrix和SparseMatrix。官方文档中推荐使用已在矩阵类中实现的工厂方法来创建本地矩阵。需要注意的是,MLlib中的本地矩阵是列主序的(列为主)
李> <李>稠密矩阵
<代码>进口org.apache.spark.mllib.linalg。{矩阵,矩阵}//创建稠密矩阵((1.0,2.0),(3.0,4.0),(5.0,6.0)) val dm:矩阵=Matrices.dense(3 2数组(1.0,3.0,5.0,2.0,4.0,6.0))代码>李> <李>稀疏矩阵
<代码> scala>val sparseMatrix=矩阵。稀疏(3、3、数组(0,2、3、6),数组(0、2、1,0,1,2),数组(1.0,2.0,3.0,4.0,5.0,6.0)) sparseMatrix: org.apache.spark.mllib.linalg。矩阵=3 x 3 CSCMatrix 1.0 (0,0) 2.0 (2,0) 3.0 (1,1) 4.0 (0,2) 5.0 (1、2) 6.0(2,2)代码>李> 李> <李>
评级
-
<李>
用于产品推荐
李> <李>表示用户对一个产品的评分
李> <李>位于mllib.recommendation包中李>