kfoldMargin
交差検証済みカーネル分類モデルの分類マージン
説明
は、交差検証済みのバイナリ カーネル モデル (margin
= kfoldMargin(CVMdl
)ClassificationPartitionedKernel
) CVMdl
によって取得した分類マージンを返します。kfoldMargin
は、すべての分割について、学習分割観測値に対して学習をさせたモデルを使用して、検証分割観測値の分類マージンを計算します。
例
k 分割交差検証マージンの推定
ionosphere
データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b'
) または良好 ('g'
) というラベルが付いた 351 個の二項反応が含まれています。
load ionosphere
このデータを使用して、バイナリ カーネル分類モデルを交差検証します。
CVMdl = fitckernel(X,Y,'Crossval','on')
CVMdl = ClassificationPartitionedKernel CrossValidatedModel: 'Kernel' ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'b' 'g'} ScoreTransform: 'none'
CVMdl
は ClassificationPartitionedKernel
モデルです。既定では、10 分割交差検証が実行されます。異なる分割数を指定するには、'Crossval'
ではなく名前と値のペアの引数 'KFold'
を指定します。
検証分割観測値の分類マージンを推定します。
m = kfoldMargin(CVMdl); size(m)
ans = 1×2
351 1
m
は 351 行 1 列のベクトルです。m(j)
は観測値 j
の分類マージンです。
箱ひげ図を使用して k 分割マージンをプロットします。
boxplot(m,'Labels','All Observations') title('Distribution of Margins')
k 分割マージンを使用した特徴選択
複数のモデルの k 分割マージンを比較することにより、特徴選択を実行します。この条件のみに基づくと、マージンが最大である分類器が最善の分類器となります。
ionosphere
データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b'
) または良好 ('g'
) というラベルが付いた 351 個の二項反応が含まれています。
load ionosphere
予測子変数の 10% を無作為に選択します。
rng(1); % For reproducibility p = size(X,2); % Number of predictors idxPart = randsample(p,ceil(0.1*p));
2 つのバイナリ カーネル分類モデルを交差検証します。1 つではすべての予測子を、もう 1 つでは予測子の 10% を使用します。
CVMdl = fitckernel(X,Y,'CrossVal','on'); PCVMdl = fitckernel(X(:,idxPart),Y,'CrossVal','on');
CVMdl
および PCVMdl
は ClassificationPartitionedKernel
モデルです。既定では、10 分割交差検証が実行されます。異なる分割数を指定するには、'Crossval'
ではなく名前と値のペアの引数 'KFold'
を指定します。
各分類器の k 分割マージンを推定します。
fullMargins = kfoldMargin(CVMdl); partMargins = kfoldMargin(PCVMdl);
箱ひげ図を使用して、マージン セットの分布をプロットします。
boxplot([fullMargins partMargins], ... 'Labels',{'All Predictors','10% of the Predictors'}); title('Distribution of Margins')
PCVMdl
のマージン分布の四分位数は CVMdl
のマージン分布の四分位数より高い位置にあるので、PCVMdl
モデルの方が優れた分類器であることがわかります。
入力引数
CVMdl
— 交差検証済みのバイナリ カーネル分類モデル
ClassificationPartitionedKernel
モデル オブジェクト
交差検証済みのバイナリ カーネル分類モデル。ClassificationPartitionedKernel
モデル オブジェクトを指定します。ClassificationPartitionedKernel
モデルは、fitckernel
を使用し、交差検証の名前と値のペアの引数のいずれかを指定することにより作成できます。
推定値を取得するため、kfoldMargin
はカーネル分類モデルの交差検証に使用したものと同じデータ (X
および Y
) を適用します。
出力引数
詳細
分類マージン
バイナリ分類の "分類マージン" は、各観測値における真のクラスの分類スコアと偽のクラスの分類スコアの差です。
このソフトウェアでは、バイナリ分類の分類マージンは次のように定義されます。
x は観測値です。x の真のラベルが陽性クラスである場合、y は 1、それ以外の場合は –1 です。f(x) は観測値 x についての陽性クラスの分類スコアです。一般的には、分類マージンは m = yf(x) と定義されています。
各マージンのスケールが同じである場合、マージンを分類の信頼尺度として使用できます。複数の分類器の中で、マージンが大きい分類器の方が優れています。
分類スコア
カーネル分類モデルの場合、観測値 x (行列ベクトル) を陽性クラスに分類する生の "分類スコア" は次のように定義されます。
は特徴量を拡張するための観測値の変換です。
β は推定された係数の列ベクトルです。
b は推定されたスカラー バイアスです。
x を陰性クラスに分類する生の分類スコアは −f(x) です。このソフトウェアでは、スコアが正になるクラスに観測値が分類されます。
カーネル分類モデルがロジスティック回帰学習器から構成されている場合、'logit'
スコア変換が生の分類スコアに適用されます (ScoreTransform
を参照)。
バージョン履歴
R2018b で導入R2023b: 予測子に欠損値がある観測値を再代入と交差検証の計算に使用
R2023b 以降では、次の分類モデルのオブジェクト関数において、予測子に欠損値がある観測値が再代入 ("resub") と交差検証 ("kfold") による分類エッジ、損失、マージン、および予測の計算でその一部として使用されます。
以前のリリースでは、予測子に欠損値がある観測値は再代入と交差検証の計算で省略されていました。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)