2013-05-01 3 views
5

[66k、56k]サイズ(行、列)のcsvファイルがあります。その疎な行列。私はnumpyがそのサイズの行列を扱うことができることを知っています。私は皆さんの経験に基づいて、scikit-learnアルゴリズムがどれくらい多くの機能を快適に扱うことができるのかを知りたいですか?scikit-learnで扱える機能の数はいくつですか?

+0

私が取り組んでいる仕事は回帰です。しかし、Sklearnがどのように高次元データを一般的に扱うかを知ることは有益です。 – viper

答えて

12

見積もりによります。そのサイズでは、線形モデルはまだ十分に機能しますが、SVMはおそらく永遠に訓練することになります(疎な行列を処理しないため、ランダムなフォレストは忘れてしまいます)。

LinearSVCLogisticRegression、およびSGDClassifierは、約300k×3.3百万のサイズのスパース行列を問題なく使用しました。 @ amuellerのscikit-learn cheat sheetで、すぐに仕事の見積もりを選ぶことができます。

完全開示:私はscikit-learnコア開発者です。

1

モデルを頻繁に訓練する必要がある場合は、リニアモデル(回帰、SGD、ベイズ)がおそらく最も良い賭けになるでしょう。

あなたが任意のモデルを実行するに行く前に、次の

1)の機能低下を試すこともできますが。データに簡単に削除できる機能はありますか?たとえば、データがテキストまたは評価である場合、利用可能な既知のオプションが多数あります。

2)学習曲線分析。おそらく、モデルをトレーニングするためにデータの小さなサブセットだけが必要な場合があります。その後は、データにフィットするか、精度の向上がわずかです。

どちらのアプローチでも、必要なトレーニングデータを大幅に削減できます。

関連する問題