2017-06-26 5 views
-2

私は比較的新しいSVMです。私はmatlabの 'fitcsvm'関数を使って1クラスのSVMモデルを訓練しようとしています。 'rbf'(〜ガウスカーネル)カーネル関数が使用されます。SVMの高速化(モデル訓練)

私のデータサイズは約150kです。残念ながら、モデルの訓練時間は遅い(約3分)。私は

SVMModel = fitcsvm(X、Y、 'KernelScale'、 '自動車'、 '標準化'、真の 'KernelFunction'、 'RBF'、 'ニュー' SVMモデルを訓練するためにMATLABで次の行を使用します、1)。

Xデータポイント(〜150K)の数であり、mは、機能番号(= 2つの機能)

あるYは、Iデータlable、あるN * M行列であります1クラスモデルを訓練するy = ones(n、1);

モデルをスピードアップするためのアドバイス/提案トレーニングの手順は?

おかげ

+0

これは非常に広いです! kernelSVMはO(n^2)とO(n^3)の間の複雑さを持っています(n = n_samples、キャッシュに依存します)。私はこの実装がlibsvmを内部的に使用しているかどうかはわかりません(libsvm論文の1つを挙げていますが、私が期待したものではありません)ので、おそらくlibsvmを使って何かを得るでしょう。 – sascha

+1

私の個人的な経験では、[LibSVM](https://www.csie.ntu.edu.tw/~cjlin/libsvm/)のmatlabインテグレーションは、組み込みのfitcsvmよりもはるかに高速です。 –

+0

ありがとうSaschaとVahe LibSVMはうまく動作します よろしくおねがいします。 – Jason

答えて

1

SVMは、拡張性とメモリの問題に苦しみます。これについては何もできませんが、これはアルゴリズムの仕組みです。その計算を並行して行う試みがいくつかありますが、これは希少であり、(正確な)近似に基づく何度もあります。この特定のモデルに固執しなければならない場合は、1の作業でこれをコード化しています。

もう一つの提案は、LIBSVMを作成したのと同じチームによって開発されたリニアカーネル(以前のコメントのsashaに言及されています)が開発したliblinearです完全で最適化されたMATLAB用SVM

幸運を祈る!

+0

ありがとう、LIBSVMは今のところうまくいきます、よろしく – Jason

関連する問題