SVMの性能を最大限に引き出す

SVMの性能を引き出すには,スケーリングとパラメータチューニングが非常に重要.

これだけで精度10%くらいあがりました.

スケーリング

広い範囲をとる特徴量に引きずられないようにする.

LIBSVMでは,何も考えなくても以下のコマンド1発でやってくれる.

svm-scale -l 0 -u 1 feature > feature.scale

パラメータチューニング

カーネルはRBFカーネル一択(のようだ).RBFカーネルの場合,Cとγをチューニングする必要がある.

Cはペナルティであり,大きいほど誤りに厳しくなる.不均衡データ問題の対策になるが,大きくしすぎると過学習するので注意.γは,マージン最大化と誤差の最小化の比率を求めるパラメータ.

そして,(C, γ)の最適な組み合わせを求める(グリッド探索).C, γともに2のべき乗の値を網羅すると経験的によいらしい.