2016-06-11 104 views
0

我一直在努力的机器学习KNN(K近邻)算法使用Python和Python的Scikit学习机器学习API。Scikit学习KNN(K近邻)并行使用Apache星火

我创建的示例代码与玩具的数据集简单地使用Python和Scikit学习,我的KNN工作正常。但正如我们所知,Scikit-learn API可以在单机上运行,​​因此一旦我将玩具数据替换为数百万个数据集,它会降低我的输出性能。

...我已经寻找许多选项,帮助和代码示例,这将使用与火花Scikit学习API发布我的机器学习处理并行,但我没有发现任何妥善的解决方案和示例。

能否请您让我知道我可以做到,并增加我与Apache Spark和Scikit学习API的k近邻的表现?

在此先感谢!

+0

你提的问题是非常广泛的。不过,我认为这篇文章可能会帮助你[自动缩放sci-kit使用Apache Spark学习](https://databricks.com/blog/2016/02/08/auto-scaling-scikit-learn-with-apache-spark .html) –

+0

Hi @AlbertoBonsanto,我已经通过你给出的链接了,但是我没有找到如何用Spark来扩展我的Scikit-learn KNN。我也通过Spark官方网站上提供的Scikit-learn的第三方软件包gobe,但我不确定关于API,也没有找到适当的例子帮助。 – Nishan

回答

0

那么根据讨论https://issues.apache.org/jira/browse/SPARK-2336这里MLLib(机器学习库为Apache星火)没有KNN的实现。 你可以试试https://github.com/saurfang/spark-knn

+0

嗨克里希纳,是的Spark MLlib不支持KNN。但是在这里我没有使用Spark的MLlib进行机器学习。我正在使用Python和Scikit-learn KNN。但问题是,我的算法数据集很重,需要花费数小时来训练数据集和预测。所以我想利用Spark配置功能和我现有的python KNN实现来减少我的处理时间。 – Nishan

+0

这里spark只能帮助像网格搜索这样的超参数优化技术。我不确定你是否能够实现你所要求的。 –

+0

嗨克里希纳,你是对的。但我认为将模型处理分为不同的批次,并将所有使用spark的批处理并行化为群集。我认为这样我们可以达到并行性,但我必须用实际数据尝试一下,看它是否对处理时间产生影响。谢谢 。 – Nishan