20

私は、機械学習技術の使用を含む TREC タスクに取り組んでいます。このデータセットは、5 テラバイトを超える Web ドキュメントで構成されており、そこから bag-of-words ベクトルが抽出される予定です。scikit-learn私のニーズに合っていると思われる優れた機能のセットがありますが、ビッグデータを処理するためにうまく拡張できるかどうかはわかりません. たとえば、HashingVectorizer5 テラバイトのドキュメントを処理できますか? また、それを並列化することは可能ですか? さらに、大規模な機械学習タスクにはどのような代替手段がありますか?

4

1 に答える 1

44

HashingVectorizerたとえば、データをメモリに収まる 10k または 100k ドキュメントのバッチに繰り返しチャンクする場合に機能します。

次に、変換されたドキュメントのバッチをpartial_fitメソッド (SGDClassifierまたは などPassiveAggressiveClassifier) をサポートする線形分類器に渡し、新しいバッチで反復処理を行うことができます。

すべてのサンプルを確認するのを待たずに、部分的にトレーニングされたモデルの精度を監視するために、ホールドアウトされた検証セット (10,000 ドキュメントなど) でモデルのスコアリングを開始できます。

coef_また、データのパーティションで複数のマシンでこれを並行して実行し、結果と属性を平均しintercept_て、すべてのデータセットの最終的な線形モデルを取得することもできます。

これについては、2013 年 3 月に PyData で行ったこの講演で説明します: http://vimeo.com/63269736

このチュートリアルには、 https ://github.com/ogrisel/parallel_ml_tutorial から取得した IPython.parallel を使用して scikit-learn を麻痺させるサンプル コードもあります。

于 2013-06-10T07:24:44.403 に答える