SVMでのコストパラメータCの意味は何ですか?つまり、Cが大きい場合、「間違った分類を許容できない」という意味ですか?
また、実験で最適なパラメータを見つけるときに、範囲とステップサイズをどのように決定できますか?
ちなみに、どちらのパラメータが良いかを決める基準は何ですか?交差検定からのエラーの数またはSVMから取得するサポートベクターの数?
SVMでのコストパラメータCの意味は何ですか?つまり、Cが大きい場合、「間違った分類を許容できない」という意味ですか?
また、実験で最適なパラメータを見つけるときに、範囲とステップサイズをどのように決定できますか?
ちなみに、どちらのパラメータが良いかを決める基準は何ですか?交差検定からのエラーの数またはSVMから取得するサポートベクターの数?
Cとは何ですか?
SVMトレーニングが解決する最適化問題には2つの用語があります。
Cは、用語に対するこれらの重要性のバランスです。Cが高い場合は、(2)に大きな重みを与え、Cが低い場合は、(1)に大きな重みを与えます。
正確な結果が必要な場合は、Cを本当に高く設定しないのはなぜですか?
用語(1)は、過剰適合を防ぎます(トレーニングデータの分類は非常に得意ですが、見えないテストデータの分類は非常に得意ではありません)
正確な結果が欲しいのですが、Cを本当に低く設定しないのはなぜですか?
項(2)は、トレーニングの最適化がトレーニングデータに注意を払うようにします。「単純な」(L2の意味での)重みだけでなく、トレーニングデータを正しく分類する単純な重みが必要です。
まとめ:
SVMのトレーニングは、2つの用語のバランスです。Cは、正則化項に対する損失項の相対的な重要性です。
-Cは、分類エラー(スラック変数)をどのように許容できるかを意味します。より良いモデルを見つけるには、大きなしきい値を設定して交差検定を行う必要があると思います。
このようにしてください。SVMのCパラメータは、誤差項のペナルティパラメータです。これは、アルゴリズムが満たす必要のある正しい分類の程度、またはSVMが満たす必要のある最適化の程度と見なすことができます。
Cの値が大きい場合、 SVMオプティマイザーが単一のポイントを誤分類する可能性はありません。はい、あなたが言ったように、SVMオプティマイザの許容範囲はCの値が高いほど高くなります。ただし、小さいCの場合、SVMオプティマイザーは、最高の超平面を満たすために、少なくともある程度の自由度が許可されます。
SVC(C=1.0, kernel='rbf', degree=3, gamma='auto')
->低耐性RBFカーネル
SVC(C=1000.0,kernel='linear',degree=3,gamma='auto')
->高耐性線形カーネル
参照:http ://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC