Spark上运行scikit-learn的集成工具
项目描述
此软件包包含一些工具,可以将流行的Spark计算框架与scikit-learn机器学习库集成。除此之外,它还可以
并行训练和评估多个scikit-learn模型。它是scikit-learn中默认包含的多核实现的分布式版本。
将Spark的数据帧无缝转换为numpy的ndarray或稀疏矩阵
(实验性)将Scipy的稀疏矩阵作为稀疏向量数据集分发
它专注于数据量小且可以并行运行的问题。对于小数据集,它使用Spark在Spark中分布式地搜索估算器参数(scikit-learn中的GridSearchCV)。对于不适合内存的集数据,我们建议使用Spark MLlib中的分布式实现。
此软件包分布简单任务,如网格搜索交叉验证。它不分布式单个学习算法(与Spark MLlib不同)。
安装
此软件包可在PYPI上获得。
pip install spark-sklearn
此项目也作为Spark软件包提供。
开发版本有以下要求
scikit-learn 0.18或0.19。以后的版本可能也可以工作,但目前的测试与0.20版本不兼容。
Spark >= 2.1.1。Spark可以从Spark网站下载。为了使用此软件包,您需要使用pyspark解释器或另一个符合Spark规范的Python解释器。有关更多详细信息,请参阅Spark指南。
nose(仅作为测试依赖项)
pandas,如果使用pandas集成或测试。已测试pandas==0.18。
如果您想使用开发版本,只需确保在启动pyspark解释器时,python/子目录位于PYTHONPATH中即可。
PYTHONPATH=$PYTHONPATH:./python:$SPARK_HOME/bin/pyspark
您可以直接运行测试
cd python && ./run-tests.sh
这需要环境变量SPARK_HOME指向您的本地Spark副本。
示例
以下是一个使用Spark运行网格搜索的简单示例。有关安装软件包的说明,请参阅安装部分。
from sklearn import svm, datasets
from spark_sklearn import GridSearchCV
iris = datasets.load_iris()
parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
svr = svm.SVC(gamma='auto')
clf = GridSearchCV(sc, svr, parameters)
clf.fit(iris.data, iris.target)
此分类器可以作为任何scikit-learn分类器的即插即用替换,具有相同的API。
文档
API文档目前托管在Github pages上。要自己构建文档,请参阅docs/中的说明。