テキストデータの分類を検討しています。私が持っている300 classes
、クラスごとに200件のトレーニング文書を(そう60000 documents in total
)、これはおそらくもたらすことがある非常に高い次元データ(私たちはを超えて見てすることができる100万の寸法)。
パイプラインで次の手順を実行します(私の要件が何であるかを把握するためです)。
- 各ドキュメントを特徴ベクトルに変換(
tf-idf
またはvector space model
) Feature selection
(Mutual Information
できればベース、または他の標準的なもの)- (分類器をトレーニング
SVM
、Naive Bayes
、Logistic Regression
またはRandom Forest
) - 訓練された分類子モデルに基づいて、見えないデータを予測します。
質問は、このような高次元のデータを処理するためにどのツール/フレームワークを使用するのですか?私はいつもの容疑者(R、WEKA ...)を知っていますが、私の知る限り(間違っているかもしれません)、おそらく誰もこの大規模なデータを処理できません。私が見ることができる他の市販のツールはありますか?
並列化する必要がある場合、Apache Mahoutを検討する必要がありますか?必要な機能をまだ提供していないようです。
事前にすべてに感謝します。
更新:このWebサイト、Rメーリングリスト、およびインターネット全般を調べました。私の状況では、次の問題が発生する可能性があります。
(1)R(特にtmパッケージ)を使用したデータの前処理は、非常に遅いため、実用的ではありませんtm
。
(2)Rパッケージ(前処理、スパース行列、分類子など)のアンサンブルを使用する必要があるため、パッケージ間の相互運用性が問題になる可能性があり、データをある形式から別の形式に変換する際に追加のオーバーヘッドが発生する可能性があります。たとえば、tm
(またはWEKAなどの外部ツール)を使用して前処理を行う場合、このデータをRのHPCライブラリが読み取れる形式に変換する方法を見つける必要があります。繰り返しになりますが、分類器パッケージがHPCライブラリによって提供されるデータを直接取り込むかどうかは明確ではありません。
私は正しい軌道に乗っていますか?そしてもっと重要なことは、私は理にかなっていますか?
foreach
ライブラリを使用して、Rで並列コードを記述できます。これは、本質的に並列化が簡単なランダムフォレストと組み合わせて使用すると特に効果的です。