kfoldMargin
交差検証済みカーネル分類モデルの分類マージン
説明
は、交差検証済みのバイナリ カーネル モデル (margin
= kfoldMargin(CVMdl
)ClassificationPartitionedKernel
) CVMdl
によって取得した分類マージンを返します。kfoldMargin
は、すべての分割について、学習分割観測値に対して学習をさせたモデルを使用して、検証分割観測値の分類マージンを計算します。
例
ionosphere
データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b'
) または良好 ('g'
) というラベルが付いた 351 個の二項反応が含まれています。
load ionosphere
このデータを使用して、バイナリ カーネル分類モデルを交差検証します。
CVMdl = fitckernel(X,Y,'Crossval','on')
CVMdl = ClassificationPartitionedKernel CrossValidatedModel: 'Kernel' ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1×1 cvpartition] ClassNames: {'b' 'g'} ScoreTransform: 'none' Properties, Methods
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 分割マージンを比較することにより、特徴選択を実行します。この条件のみに基づくと、マージンが最大である分類器が最善の分類器となります。
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
モデルの方が優れた分類器であることがわかります。
入力引数
交差検証済みのバイナリ カーネル分類モデル。ClassificationPartitionedKernel
モデル オブジェクトを指定します。ClassificationPartitionedKernel
モデルは、fitckernel
を使用し、交差検証の名前と値のペアの引数のいずれかを指定することにより作成できます。
推定値を取得するため、kfoldMargin
はカーネル分類モデルの交差検証に使用したものと同じデータ (X
および Y
) を適用します。
出力引数
詳細
バイナリ分類の "分類マージン" は、各観測値における真のクラスの分類スコアと偽のクラスの分類スコアの差です。
このソフトウェアでは、バイナリ分類の分類マージンは次のように定義されます。
x は観測値です。x の真のラベルが陽性クラスである場合、y は 1、それ以外の場合は –1 です。f(x) は観測値 x についての陽性クラスの分類スコアです。一般的には、分類マージンは m = yf(x) と定義されています。
各マージンのスケールが同じである場合、マージンを分類の信頼尺度として使用できます。複数の分類器の中で、マージンが大きい分類器の方が優れています。
カーネル分類モデルの場合、観測値 x (行列ベクトル) を陽性クラスに分類する生の "分類スコア" は次のように定義されます。
は特徴量を拡張するための観測値の変換です。
β は推定された係数の列ベクトルです。
b は推定されたスカラー バイアスです。
x を陰性クラスに分類する生の分類スコアは −f(x) です。このソフトウェアでは、スコアが正になるクラスに観測値が分類されます。
カーネル分類モデルがロジスティック回帰学習器から構成されている場合、'logit'
スコア変換が生の分類スコアに適用されます (ScoreTransform
を参照)。
拡張機能
この関数は、GPU 配列を完全にサポートします。詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2018b で導入kfoldMargin
は GPU 配列を完全にサポートします。
R2023b 以降では、次の分類モデルのオブジェクト関数において、予測子に欠損値がある観測値が再代入 ("resub") と交差検証 ("kfold") による分類エッジ、損失、マージン、および予測の計算でその一部として使用されます。
以前のリリースでは、予測子に欠損値がある観測値は再代入と交差検証の計算で省略されていました。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)