2

scikit-learnでsvm.sparse.SVCをトレーニングしようとしています。現在、特徴ベクトルの次元は約70万であり、トレーニングに使用される特徴ベクトルの数は20kです。各特徴ベクトルでゼロ以外の次元は約500次元のみであるため、csrスパース行列を使用して入力を提供しています。コードは過去5時間から実行されています。どれくらいの時間がかかるかについての見積もりはありますか?トレーニングをより速く行う方法はありますか?カーネルは線形です。

4

1 に答える 1

3

を使ってみてくださいsklearn.svm.LinearSVC。これにも線形カーネルがありますが、基礎となる実装はliblinearより高速であることが知られている です。そのことを念頭に置くと、データ セットはそれほど小さくないため、この分類器でも時間がかかる場合があります。


最初のコメントの後に編集: いくつかのオプションがあると思いますが、どちらも完璧ではありません:

  • 解決しないオプション: 1 日と呼んで、のトレーニングがsvm.sparse.SVC明日の朝に終了することを願っています。できれば、より良いコンピュータを購入してください。
  • チート オプション: 確率をあきらめます。あなたはあなたの問題が何であるかを私たちに伝えていないので、それらは本質的ではないかもしれません.
  • 壁に逆らうオプション: 絶対に確率が必要で、物事をより速く実行する必要がある場合は、別の分類子を使用します。オプションにはsklearn.naive_bayes.*、が含まれsklearn.linear_model.LogisticRegressionます。これらはトレーニングがはるかに高速になりますが、支払う代償は精度が多少低下します。
于 2013-03-01T10:19:18.163 に答える