[66k、56k] サイズ (行、列) の csv ファイルがあります。疎行列です。numpy がそのサイズの行列を処理できることはわかっています。皆さんの経験に基づいて知りたいのですが、scikit-learn アルゴリズムが快適に処理できる機能はいくつありますか?
2 に答える
見積もり業者によります。そのサイズでは、線形モデルは依然として良好に機能しますが、SVM のトレーニングにはおそらく永遠に時間がかかります (ランダム フォレストは疎行列を処理しないため、忘れてしまいます)。
私は個人的に を使用LinearSVC
しLogisticRegression
ておりSGDClassifier
、サイズが約 300k × 330 万のスパース行列を問題なく使用しています。当面の仕事に適した推定器を選択するには、 @amueller のscikit-learn チート シートを参照してください。
完全な開示: 私は scikit-learn コア開発者です。
モデルを頻繁にトレーニングする必要がある場合は、おそらく線形モデル (回帰、SGD、ベイズ) が最適です。
モデルを実行する前に、次のことを試すことができます
1) 機能削減。簡単に削除できるデータの特徴はありますか? たとえば、データがテキスト ベースまたは評価ベースの場合、多くの既知のオプションを利用できます。
2) 学習曲線分析。モデルをトレーニングするためにデータの小さなサブセットのみが必要な場合があります。その後は、データに適合するか、精度がわずかに向上するだけです。
どちらの方法でも、必要なトレーニング データを大幅に削減できます。