PySpark MLlib
Apache Spark提供了一个名为 MLlib 的机器学习API 。 PySpark在Python中也有这种机器学习API。它支持不同种类的算法,下面提到了这些算法
- mllib.classification – spark.mllib 包支持二元分类、多类分类和回归分析的各种方法。一些最流行的分类算法是 随机森林、Naive Bayes、决策树 等。
-
mllib.clustering – 聚类是一个无监督的学习问题,根据这个问题,你的目的是根据一些相似性的概念将实体的子集相互分组。
-
mllib.fpm – 频繁模式匹配是对频繁项目、项目集、子序列或其他子结构的挖掘,通常是分析大规模数据集的第一个步骤。多年来,这一直是数据挖掘领域一个活跃的研究课题。
-
mllib.linalg – 线性代数的MLlib实用工具。
-
mllib.recommendation – 协同过滤通常用于推荐系统。这些技术旨在填补用户项目关联矩阵的缺失项。
-
spark.mllib – 它目前支持基于模型的协同过滤,其中用户和产品由一小部分潜在因素描述,可以用来预测缺失的条目。 spark.mllib使用交替最小二乘法(ALS)算法来学习这些潜在因素。
-
mllib.regression – 线性回归属于回归算法系列。回归的目标是找到变量之间的关系和依赖性。处理线性回归模型和模型摘要的界面与逻辑回归的情况类似。
还有其他算法、类和函数也是mllib包的一部分。从现在开始,让我们了解一下 pyspark.mllib 的演示 。
下面的例子是使用ALS算法建立推荐模型的协同过滤,并在训练数据上对其进行评估。
使用的数据集 - test.data
1,1,5.0
1,2,1.0
1,3,5.0
1,4,1.0
2,1,5.0
2,2,1.0
2,3,5.0
2,4,1.0
3,1,1.0
3,2,5.0
3,3,1.0
3,4,5.0
4,1,1.0
4,2,5.0
4,3,1.0
4,4,5.0
--------------------------------------recommend.py----------------------------------------
from __future__ import print_function
from pyspark import SparkContext
from pyspark.mllib.recommendation import ALS, MatrixFactorizationModel, Rating
if __name__ == "__main__":
sc = SparkContext(appName="Pspark mllib Example")
data = sc.textFile("test.data")
ratings = data.map(lambda l: l.split(','))\
.map(lambda l: Rating(int(l[0]), int(l[1]), float(l[2])))
# Build the recommendation model using Alternating Least Squares
rank = 10
numIterations = 10
model = ALS.train(ratings, rank, numIterations)
# Evaluate the model on training data
testdata = ratings.map(lambda p: (p[0], p[1]))
predictions = model.predictAll(testdata).map(lambda r: ((r[0], r[1]), r[2]))
ratesAndPreds = ratings.map(lambda r: ((r[0], r[1]), r[2])).join(predictions)
MSE = ratesAndPreds.map(lambda r: (r[1][0] - r[1][1])**2).mean()
print("Mean Squared Error = " + str(MSE))
# Save and load model
model.save(sc, "target/tmp/myCollaborativeFilter")
sameModel = MatrixFactorizationModel.load(sc, "target/tmp/myCollaborativeFilter")
--------------------------------------recommend.py----------------------------------------
Command−命令如下 −
$SPARK_HOME/bin/spark-submit recommend.py
输出 - 上述命令的输出将是 —
Mean Squared Error = 1.20536041839e-05