scikit-learnでsvm.sparse.SVCをトレーニングしようとしています。現在、特徴ベクトルの次元は約70万であり、トレーニングに使用される特徴ベクトルの数は20kです。各特徴ベクトルでゼロ以外の次元は約500次元のみであるため、csrスパース行列を使用して入力を提供しています。コードは過去5時間から実行されています。どれくらいの時間がかかるかについての見積もりはありますか?トレーニングをより速く行う方法はありますか?カーネルは線形です。
1772 次
1 に答える
3
を使ってみてくださいsklearn.svm.LinearSVC
。これにも線形カーネルがありますが、基礎となる実装はliblinear
より高速であることが知られている です。そのことを念頭に置くと、データ セットはそれほど小さくないため、この分類器でも時間がかかる場合があります。
最初のコメントの後に編集: いくつかのオプションがあると思いますが、どちらも完璧ではありません:
- 解決しないオプション: 1 日と呼んで、のトレーニングが
svm.sparse.SVC
明日の朝に終了することを願っています。できれば、より良いコンピュータを購入してください。 - チート オプション: 確率をあきらめます。あなたはあなたの問題が何であるかを私たちに伝えていないので、それらは本質的ではないかもしれません.
- 壁に逆らうオプション: 絶対に確率が必要で、物事をより速く実行する必要がある場合は、別の分類子を使用します。オプションには
sklearn.naive_bayes.*
、が含まれsklearn.linear_model.LogisticRegression
ます。これらはトレーニングがはるかに高速になりますが、支払う代償は精度が多少低下します。
于 2013-03-01T10:19:18.163 に答える