たとえば、LIBSVM を使用して、トレーニング データの 70% を含むモデルを構築したいとします。それは可能ですか?
2 に答える
モデルに含まれるサポート ベクターの数を事前に正確に指定できる手法はありません。考えられる例外は、事前にカーネルのサイズを指定できる最小二乗 SVM の固定サイズ定式化です (LS-SVM の場合、すべてのトレーニング インスタンスは SV です)。
ほとんどの場合、典型的な SVM では 70% のサポート ベクターの割合が非常に高いことに注意してください。
ただし、Schölkopf らによる nu-SVM のような定式化を使用して、サポート ベクターの最小部分を指定できます。
B. Schölkopf、A. Smola、RC Williamson、PL Bartlett。新しいサポート ベクター アルゴリズム。ニューラル計算、12:1207-1245、2000。
この定式化では、少なくともフラクション nu サポート ベクター (0 < nu <= 1) が得られます。たとえば、nu-SVM は LIBSVM に実装されます ( -s 1
nu-SVC または-s 4
nu-SVR に使用)。詳細については、この pdf (4 ページ)または google nu-SVM を参照して、それに関するさまざまな論文を見つけることができます。
libsvm の tools フォルダを見ると、subset.py という python スクリプトが見つかります。これを使用して、トレーニング用のデータのサブセットをランダムに選択できます。