2012-09-19 10 views
13

私は次数2の多項式カーネルでC-SVCモードでlibsvmを使用しています。複数のSVMを訓練する必要があります。libsvmシュリンクヒューリスティック

-h shrinking : whether to use the shrinking heuristics, 0 or 1 (default 1) 

とI:

WARNING: using -h 0 may be faster 
* 
WARNING: reaching max number of iterations 
optimization finished, #iter = 10000000 

は、私がhパラメータの説明を見つけた:訓練中に、私は訓練のSVMのいくつかのために、これらの警告のも、どちらか一方または両方を取得していますlibsvmのドキュメントから説明を読もうとしましたが、それは私にとってはあまりにも高いレベルです。誰でも素人の説明を提供してください、そして、おそらく、これを設定するようないくつかの提案は有益なのでしょうか?また、訓練するすべてのSVMに対してこのパラメータを設定すると、この警告を明示的に与えないSVMの精度に悪影響を与えるかどうかを知ることは有用です。

私は他の警告をどうするか分かりません。

私のトレーニングセットは10の属性(機能)を持ち、5000個のベクトルから構成されています。


アップデート:他のケース誰に

は「反復の到達最大数」を取得している、数値の安定性の問題に起因しているように見えます。また、これは非常に遅いトレーニング時間を生成します。多項式カーネルは、クロスバリデーション手法を使用して正則化(Cパラメータ)の最適値を決定し、多項式カーネルの場合はそれを8より小さく保つのに役立ちます。また、カーネルが不均質coef0!= 0の場合、LaTeXはSOではサポートされていません)、相互検証は、ガンマとCの両方のグリッド検索手法で実装できます。ガンマ(1/number_of_features)のデフォルト値は最良の選択ではないかもしれません。それでも、私の実験では、ガンマが大きすぎないようにしたいと思うかもしれません。なぜなら、数値的な問題を引き起こすからです(私は8という最大値を試しています)。

ガンマとCの可能な値についてもう一度触れるには、grid.pyを突き刺すようにしてください。

答えて

8

縮小する経験則は、最適化をスピードアップするためのものです。 FAQで言われているように、時々助けてくれることがあります。コンバージェンスではなく、実行時の問題だと私は信じています。

最適化が最大反復回数に達するという事実は興味深いです。許容差(コストパラメータ)を試してみるか、これを引き起こす個々の問題を見てみてください。データセットは大きいですか?

+0

ありがとうございます!私はヒューリスティックが縮小していることについてあなたが正しいと思います。彼らはモデルをより速く鍛えるのに役立ちます。 –

+0

最大反復に関して、私のデータセットはそれぞれ5000個のアイテムを持っています。トレーニングには1分もかかりません。コストパラメータとは何ですか?それは正規化ですか?今はlibsvmのデフォルト値である1に設定しています... –

+0

ああ、私はこれを明確にすべきです:私のトレーニングセットは10の属性/機能を持っていて、5000個のベクトルで構成されています。 –

関連する問題