运行scikit learn on spark的集成工具
spark-sklearn的Python项目详细描述
这个包包含一些工具来集成Spark computing framework 与流行的scikit-learn machine library。除此之外,它还可以:
- 并行训练和评估多个scikit学习模型。它是对 multicore implementation默认包含在scikit-learn
- 将Spark的数据帧无缝转换为numpyndarray或稀疏矩阵
- (实验)将scipy的稀疏矩阵作为稀疏向量集进行分布
它关注的是数据量小并且可以并行运行的问题。 对于小数据集,它分配对估计器参数的搜索(scikit learn中的GridSearchCV), 使用火花。对于不适合内存的数据集,我们建议使用distributed implementation in `Spark MLlib。
这个包分发简单的任务,比如网格搜索交叉验证。 它不分发单独的学习算法(不像spark mllib)。
安装
此软件包在PYPI上提供:
pip install spark-sklearn
此项目也可用作Spark package。
开发人员版本有以下要求:
- scikit学习0.18或0.19。较新版本可能可以工作,但测试当前与0.20不兼容。
- 火花=2.1.1.Spark可以从Spark website下载。 为了使用这个包,您需要使用pyspark解释器或其他与spark兼容的python 翻译。见Spark guide 更多细节。
- nose(仅测试依赖项)
- 熊猫,如果使用熊猫集成或测试。熊猫=0.18已经过测试。
如果要使用开发人员版本,只需确保python/子目录位于 PYTHONPATH启动pyspark解释器时:
PYTHONPATH=$PYTHONPATH:./python:$SPARK_HOME/bin/pyspark
您可以直接运行测试:
cd python && ./run-tests.sh
这需要环境变量SPARK_HOME指向spark的本地副本。
示例
下面是一个使用spark运行网格搜索的简单示例。参见Installation部分 如何安装软件包。
fromsklearnimportsvm,datasetsfromspark_sklearnimportGridSearchCViris=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学习分类器的替代品,使用相同的api。