Apache Spark提供了一个名为 MLlib 的机器学习API。PySpark也在Python中使用这个机器学习API。它支持不一样类型的算法,以下所述git

    • mllib.classification - spark.mllib 包支持二进制分类,多类分类和回归分析的各类方法。分类中一些最流行的算法是 随机森林朴素贝叶斯决策树 等。算法

    • mllib.clustering - 聚类是一种无监督的学习问题,您能够根据某些类似概念将实体的子集彼此分组。sql

    • mllib.fpm - 频繁模式匹配是挖掘频繁项,项集,子序列或其余子结构,这些一般是分析大规模数据集的第一步。 多年来,这一直是数据挖掘领域的一个活跃的研究课题。apache

    • mllib.linalg - 线性代数的MLlib实用程序。api

    • mllib.recommendation - 协同过滤一般用于推荐系统。 这些技术旨在填写用户项关联矩阵的缺失条目。服务器

    • spark.mllib - 它目前支持基于模型的协同过滤,其中用户和产品由一小组可用于预测缺失条目的潜在因素描述。 spark.mllib使用交替最小二乘(ALS)算法来学习这些潜在因素。app

    • mllib.regression - 线性回归属于回归算法族。 回归的目标是找到变量之间的关系和依赖关系。使用线性回归模型和模型摘要的界面相似于逻辑回归案例。机器学习

 

2、代码示范

提供了一个简单的数据集。ide

使用数据集 - 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
数据集
from __future__ import print_function
from pyspark import SparkContext
# 这里使用了mllib,比较老的api,最新的是ml。
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 s: s.split(',')).map(lambda x: Rating(int(x[0]), int(x[1]), float(x[2]))) rank = 10
numIterations = 10
model = ALS.train(ratings, rank, numIterations) # 测试模型 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")

 

3、spark.ml 库

Ref: http://spark.apache.org/docs/latest/ml-guide.html

As of Spark 2.0, the RDD-based APIs in the spark.mllib package have entered maintenance mode. The primary Machine Learning API for Spark is now the DataFrame-based API in the spark.ml package.

    • spark.mllib: 数据抽象是rdd。
    • spark.ml: 数据抽象是dataframe。

 

 

 

 

NLP基础