2016-07-04 6 views
2

私は、pysparkと、scikit-learnとpysparkを統合する可能性を模索しています。 scikit-learnを使って各パーティションのモデルを訓練したいと思います。つまり、自分のRDDが定義されていて、異なるワーカーノードに分散されている場合、私はscikit-learnを使い、各ワーカーノードに存在する各パーティションでモデル(単純なk-meansと呼ぶ)を訓練したいと考えています。 scikit-learnアルゴリズムがPandasデータフレームを取るので、最初の考えはtoPandasを各パーティションに呼び出して、モデルを訓練することでした。しかし、toPandas関数はDataFrameをドライバに集めますが、これは私が探しているものではありません。そのような目標を達成する他の方法はありますか?scikit-learnとpysparkを統合する

+0

どういうわけか、各パーティションをデータフレームに変換して配列のような構造にすることができれば、それは可能でしょうか? –

+1

各パーティションでモデルを計算することはどのように関連するのかわかりません。それはどういう意味ですか?実際には、どのようにモデルを組み立てますか? – eliasah

+0

だから、各パーティションでkmeansを実行したら、何とかすべての重心点をドライバに転送する必要があります。これはおおよそのk平均のようなものです。しかし、今重心点を運転手に転送する方法はわかりません。何か案が? –

答えて

3

scikit-learnは今のところ完全にsparkと統合できません。なぜなら、scikit-learnアルゴリズムは1台のマシン上で動作するように分散されて実装されていないからです。

しかし、spark-sklearnのSpark-Scikit統合ツールを使用すると、相互検証のためにSparkでGridSearchを実行する(瞬時に)サポートされます。

+0

任意のモデルを実行したいのですが?各パーティションでkmeansを実行してみましょう。それはspark-sklearnでサポートされていますか? –

+0

このライブラリは、前回チェックしたばかりの分散グリッド検索をサポートしています。それは今の場合のように見えます。残念ながら、アルゴリズムの配布は単なるプラグアンドプレイではなく、非常に簡単でした。 Sklearnがsparkでこれらのアルゴリズムを直接実装しない限り、それを簡単に統合することはできません。 – eliasah

関連する問題