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: [1×1 cvpartition] ClassNames: {'b' 'g'} ScoreTransform: 'none' Properties, Methods
CVMdl
は ClassificationPartitionedKernel
モデルです。既定では、10 分割交差検証が実行されます。異なる分割数を指定するには、'Crossval'
ではなく名前と値のペアの引数 'KFold'
を指定します。
分割の学習で fitckernel
が使用しない観測値を分類します。
label = kfoldPredict(CVMdl);
混同行列を作成して、観測値の真のクラスを予測されたラベルと比較します。
C = confusionchart(Y,label);
CVMdl
モデルは、32 個の良好な ('g'
の) レーダー反射を不良 ('b'
) として誤分類し、7 個の不良なレーダー反射を良好として誤分類します。
交差検証済みバイナリ カーネル分類器を使用して事後クラス確率を推定し、受信者動作特性 (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: [1×1 cvpartition] ClassNames: {'b' 'g'} ScoreTransform: 'none' Properties, Methods
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
に近いので、モデルによるラベルの予測精度が高いことがわかります。
入力引数
交差検証済みのバイナリ カーネル分類モデル。ClassificationPartitionedKernel
モデル オブジェクトを指定します。ClassificationPartitionedKernel
モデルは、fitckernel
を使用し、交差検証の名前と値のペアの引数のいずれかを指定することにより作成できます。
推定値を取得するため、kfoldPredict
はカーネル分類モデルの交差検証に使用したものと同じデータ (X
および Y
) を適用します。
出力引数
予測クラス ラベル。categorical 配列、文字配列、logical 行列、数値行列、または文字ベクトルの cell 配列として返されます。
label
の行数は n (n は X
内の観測値の個数)、データ型は CVMdl
の学習に使用した、観測されたクラス ラベル (Y
) と同じです。(string 配列は文字ベクトルの cell 配列として扱われます)。
kfoldPredict
は、スコアが最高になるクラスに観測値を分類します。
分類スコア。n 行 2 列の数値配列として返されます。n は X
内の観測値の個数です。score(i,j)
は、観測値 i
をクラス j
に分類するスコアです。クラスの順序は CVMdl.ClassNames
に格納されます。
CVMdl.Trained{1}.Learner
が 'logistic'
の場合、分類スコアは事後確率です。
詳細
カーネル分類モデルの場合、観測値 x (行列ベクトル) を陽性クラスに分類する生の "分類スコア" は次のように定義されます。
は特徴量を拡張するための観測値の変換です。
β は推定された係数の列ベクトルです。
b は推定されたスカラー バイアスです。
x を陰性クラスに分類する生の分類スコアは −f(x) です。このソフトウェアでは、スコアが正になるクラスに観測値が分類されます。
カーネル分類モデルがロジスティック回帰学習器から構成されている場合、'logit'
スコア変換が生の分類スコアに適用されます (ScoreTransform
を参照)。
拡張機能
この関数は、GPU 配列を完全にサポートします。詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2018b で導入kfoldPredict
は 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)