2016-06-11 90 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