最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

resubEdge

再代入によるサポート ベクター マシン (SVM) 分類器の分類エッジを計算

説明

e = resubEdge(SVMModel) は、SVMModel.X に格納されている学習データと SVMModel.Y に格納されている対応するクラス ラベルを使用して、サポート ベクター マシン (SVM) 分類器 SVMModel の再代入分類エッジ(e) を返します。

分類エッジは、分類マージンの加重平均を表すスカラー値です。

すべて折りたたむ

ionosphere データセットを読み込みます。

load ionosphere

SVM 分類器を学習させます。データを標準化し、'g' が陽性クラスであることを指定します。

SVMModel = fitcsvm(X,Y,'Standardize',true,'ClassNames',{'b','g'});

SVMModel は学習させた ClassificationSVM 分類器です。

再代入エッジを推定します。これは学習標本マージンの平均です。

e = resubEdge(SVMModel)
e = 5.0998

複数のモデルによる学習標本エッジを比較することにより、特徴選択を実行します。この比較のみに基づくと、エッジが最大である分類器が最良の分類器となります。

ionosphere データセットを読み込みます。次の 2 つのデータセットを定義します。

  • fullX。すべての予測子が格納されます (削除された 0 の列を除く)。

  • partX。最後の 20 個の予測子が格納されます。

load ionosphere
fullX = X;
partX = X(:,end-20:end);

予測子セットごとに SVM 分類器を学習させます。

FullSVMModel = fitcsvm(fullX,Y);
PartSVMModel = fitcsvm(partX,Y);

分類器ごとに学習標本エッジを推定します。

fullEdge = resubEdge(FullSVMModel)
fullEdge = 3.3652
partEdge = resubEdge(PartSVMModel)
partEdge = 2.0470

データセット全体に対して学習をさせた分類器の方がエッジが大きいので、すべての予測子を使用して学習をさせた分類器の方が標本内近似が優れていることがわかります。

入力引数

すべて折りたたむ

完全な学習済み SVM 分類器。fitcsvm で学習をさせた ClassificationSVM モデルを指定します。

詳細

すべて折りたたむ

分類エッジ

"エッジ" は、"分類マージン" の加重平均値です。

重みはクラスの事前確率です。重みを渡すと、この重みは正規化され、各クラス内の事前確率の合計になります。この再正規化された重みを使用して、加重平均が計算されます。

特徴選択を実行する場合などに複数の分類器から選択する方法の 1 つは、エッジが最大になる分類器を選択することです。

分類マージン

バイナリ分類の "分類マージン" は、各観測値における真のクラスの分類スコアと偽のクラスの分類スコアの差です。

このソフトウェアでは、バイナリ分類の分類マージンは次のように定義されます。

m=2yf(x).

x は観測値です。x の真のラベルが陽性クラスである場合、y は 1、それ以外の場合は -1 です。f(x) は、観測値 x についての陽性クラスの分類スコアです。一般的には、分類マージンは m = yf(x) と定義されています。

各マージンのスケールが同じである場合、マージンを分類の信頼尺度として使用できます。複数の分類器の中で、マージンが大きい分類器の方が優れています。

分類スコア

観測値 x を分類するための SVM の "分類スコア" は、x から判定境界 (範囲は -∞ ~ +∞) までの符号付き距離です。クラスの正のスコアは、x がそのクラスにあると予測されることを示します。負のスコアはそうではないことを示します。

正のクラス分類スコア f(x) は、学習済み SVM 分類関数です。f(x) は x に対する数値的な予測応答でもあり、x を陽性クラスとして予測するスコアでもあります。

f(x)=j=1nαjyjG(xj,x)+b,

(α1,...,αn,b) は推定された SVM パラメーター、G(xj,x) は予測子空間における x とサポート ベクターの間のドット積です。合計には学習セットの観測値が含まれます。x に対する負のクラス分類スコア、つまり x を陰性クラスとして予測するスコアは、–f(x) です。

G(xj,x) = xj′x (線形カーネル) の場合、スコア関数は次のように縮小されます。

f(x)=(x/s)β+b.

s はカーネル スケール、β は近似線形係数のベクトルです。

詳細は、サポート ベクター マシンについてを参照してください。

アルゴリズム

バイナリ分類の場合、観測値 j のマージン mj は次のように定義されます。

mj=2yjf(xj),

ここで、yj ∊ {-1,1} であり、f(xj) は陽性クラスにおける観測値 j の予測スコアです。ただし一般的には、マージンの定義として mj = yjf(xj) が使用されます。

参照

[1] Christianini, N., and J. C. Shawe-Taylor. An Introduction to Support Vector Machines and Other Kernel-Based Learning Methods. Cambridge, UK: Cambridge University Press, 2000.

R2014a で導入