1

opencv SVM 実装は、SVM のトレーニングに使用される CVSVMParams 構造体で使用する必要がある「SVM タイプ」というラベルの付いたパラメーターを取ります。私が見つけることができるすべての説明は次のとおりです。

// SVM type
enum { C_SVC=100, NU_SVC=101, ONE_CLASS=102, EPS_SVR=103, NU_SVR=104 };

これらの異なる値が何を表しているか知っている人はいますか?

4

2 に答える 2

10

それらは SVM の異なる定式化です。SVM の中心にあるのは、数学的最適化問題です。この問題は、さまざまな方法で述べることができます。

C-SVM は、マージンのサイズと誤分類されたトレーニング ポイントの数との間のトレードオフ パラメーターとして C を使用します。C は単なる数値です。有用な範囲はデータセットによって異なり、データに応じて、非常に小さい (10-5 など) から非常に大きい (10^5 など) までの範囲になります。

nu-SVM は、C の代わりに nu を使用します。nu は、最終的にサポート ベクターになるトレーニング ポイントのおよそのパーセンテージです。サポート ベクターが多いほど、マージンが広くなり、誤分類されるトレーニング ポイントが多くなります。nu の範囲は 0.1 から 0.8 です。0.1 ではトレーニング ポイントの約 10% がサポート ベクターになり、0.8 では 80% に近くなります。大まかに言うと、そのように相関しているだけなので、正確ではありません。

epsilon-SVR と nu-SVR は、回帰に SVM を使用します。最大マージン超平面を見つけることによってバイナリ分類を行う代わりに、概念を使用してデータに最適なハイパーチューブを見つけ、それを使用して将来のモデルを予測します。それらはパラメーター化される方法が異なります (nu-SVM と C-SVM が異なるように)。

ワンクラス SVM はノベルティ検出です。バイナリ分類や値の予測ではなく、代わりに SVM にトレーニング セットを与え、そのセットをラップするようにモデルをトレーニングして、将来のインスタンスをクラスの一部として、またはクラス外 (新規またはクラス外) に分類できるようにします。外れ値)。

于 2012-05-09T22:14:28.950 に答える
6

一般に:

  • 分類 SVM タイプ 1 (C-SVM 分類とも呼ばれます)
  • 分類 SVM タイプ 2 (nu-SVM 分類とも呼ばれます)
  • 回帰 SVM タイプ 1 (イプシロン SVM 回帰とも呼ばれます)
  • 回帰 SVM タイプ 2 (nu-SVM 回帰とも呼ばれます)

詳細はSVMページを参照してください。

于 2010-08-05T16:18:49.343 に答える