kfoldPredict
交差検証済みカーネル分類モデルの観測値の分類
説明
例
交差検証の使用による観測値の分類
交差検証済みバイナリ カーネル分類器を使用して観測値を分類し、生成された分類の混同行列を表示します。
ionosphere
データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b'
) または良好 ('g'
) というラベルが付いた 351 個の二項反応が含まれています。
load ionosphere
このデータを使用して、バイナリ カーネル分類モデルを交差検証します。
rng(1); % For reproducibility 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'
を指定します。
分割の学習で fitckernel
が使用しない観測値を分類します。
label = kfoldPredict(CVMdl);
混同行列を作成して、観測値の真のクラスを予測されたラベルと比較します。
C = confusionchart(Y,label);
CVMdl
モデルは、32 個の良好な ('g'
の) レーダー反射を不良 ('b'
) として誤分類し、7 個の不良なレーダー反射を良好として誤分類します。
k 分割交差検証事後クラス確率の推定
交差検証済みバイナリ カーネル分類器を使用して事後クラス確率を推定し、受信者動作特性 (ROC) 曲線をプロットしてモデルの品質を判断します。交差検証済みカーネル分類モデルは、ロジスティック回帰学習器の場合のみ事後確率を返します。
ionosphere
データ セットを読み込みます。このデータ セットには、レーダー反射についての 34 個の予測子と、不良 ('b'
) または良好 ('g'
) というラベルが付いた 351 個の二項反応が含まれています。
load ionosphere
このデータを使用して、バイナリ カーネル分類モデルを交差検証します。クラスの順序を指定し、ロジスティック回帰学習器を当てはめます。
rng(1); % For reproducibility CVMdl = fitckernel(X,Y,'Crossval','on', ... 'ClassNames',{'b','g'},'Learner','logistic')
CVMdl = ClassificationPartitionedKernel CrossValidatedModel: 'Kernel' ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'b' 'g'} ScoreTransform: 'none'
CVMdl
は ClassificationPartitionedKernel
モデルです。既定では、10 分割交差検証が実行されます。異なる分割数を指定するには、'Crossval'
ではなく名前と値のペアの引数 'KFold'
を指定します。
分割の学習で fitckernel
が使用しない観測値の事後クラス確率を予測します。
[~,posterior] = kfoldPredict(CVMdl);
出力 posterior
は n
行 2 列の行列です。n
は観測値の個数です。列 i
には、与えられた特定の観測値に対する CVMdl.ClassNames(i)
の事後確率が格納されます。
rocmetrics
オブジェクトを作成し、ROC 曲線のパフォーマンス メトリクス (真陽性率と偽陽性率) を計算して ROC 曲線の下の領域 (AUC) の値を求めます。
rocObj = rocmetrics(Y,posterior,CVMdl.ClassNames);
rocmetrics
の関数 plot
を使用して、2 番目のクラスの ROC 曲線をプロットします。
plot(rocObj,ClassNames=CVMdl.ClassNames(2))
AUC は 1
に近いので、モデルによるラベルの予測精度が高いことがわかります。
入力引数
CVMdl
— 交差検証済みのバイナリ カーネル分類モデル
ClassificationPartitionedKernel
モデル オブジェクト
交差検証済みのバイナリ カーネル分類モデル。ClassificationPartitionedKernel
モデル オブジェクトを指定します。ClassificationPartitionedKernel
モデルは、fitckernel
を使用し、交差検証の名前と値のペアの引数のいずれかを指定することにより作成できます。
推定値を取得するため、kfoldPredict
はカーネル分類モデルの交差検証に使用したものと同じデータ (X
および Y
) を適用します。
出力引数
label
— 予測クラス ラベル
categorical 配列 | 文字配列 | logical 行列 | 数値行列 | 文字ベクトルの cell 配列
予測クラス ラベル。categorical 配列、文字配列、logical 行列、数値行列、または文字ベクトルの cell 配列として返されます。
label
の行数は n (n は X
内の観測値の個数)、データ型は CVMdl
の学習に使用した、観測されたクラス ラベル (Y
) と同じです。(string 配列は文字ベクトルの cell 配列として扱われます)。
kfoldPredict
は、スコアが最高になるクラスに観測値を分類します。
score
— 分類スコア
数値配列
分類スコア。n 行 2 列の数値配列として返されます。n は X
内の観測値の個数です。score(i,j)
は、観測値 i
をクラス j
に分類するスコアです。クラスの順序は CVMdl.ClassNames
に格納されます。
CVMdl.Trained{1}.Learner
が 'logistic'
の場合、分類スコアは事後確率です。
詳細
分類スコア
カーネル分類モデルの場合、観測値 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)