このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
predict
ガウス カーネル分類モデルのラベルの予測
説明
例
学習セットのラベルの予測
バイナリ カーネル分類モデルを使用して学習セットのラベルを予測し、生成された分類の混同行列を表示します。
ionosphere
データセットを読み込みます。このデータセットには、レーダー反射についての 34 個の予測子と、不良 ('b'
) または良好 ('g'
) という 351 個の二項反応が含まれています。
load ionosphere
レーダー反射が不良 ('b'
) と良好 ('g'
) のどちらであるかを識別するバイナリ カーネル分類モデルに学習をさせます。
rng('default') % For reproducibility Mdl = fitckernel(X,Y);
Mdl
は ClassificationKernel
モデルです。
学習セット (再代入) のラベルを予測します。
label = predict(Mdl,X);
混同行列を作成します。
ConfusionTrain = confusionchart(Y,label);
このモデルは、各クラスについて 1 つずつのレーダー反射を誤分類します。
検定セットのラベルの予測
バイナリ カーネル分類モデルを使用して検定セットのラベルを予測し、生成された分類の混同行列を表示します。
ionosphere
データセットを読み込みます。このデータセットには、レーダー反射についての 34 個の予測子と、不良 ('b'
) または良好 ('g'
) という 351 個の二項反応が含まれています。
load ionosphere
データセットを学習セットと検定セットに分割します。検定セット用に 15% のホールドアウト標本を指定します。
rng('default') % For reproducibility Partition = cvpartition(Y,'Holdout',0.15); trainingInds = training(Partition); % Indices for the training set testInds = test(Partition); % Indices for the test set
学習セットを使用してバイナリ カーネル分類モデルに学習をさせます。クラスの順序を定義することをお勧めします。
Mdl = fitckernel(X(trainingInds,:),Y(trainingInds),'ClassNames',{'b','g'});
学習セットのラベルと検定セットのラベルを予測します。
labelTrain = predict(Mdl,X(trainingInds,:)); labelTest = predict(Mdl,X(testInds,:));
学習セットの混同行列を作成します。
ConfusionTrain = confusionchart(Y(trainingInds),labelTrain);
このモデルは、各クラスについて 1 つずつのレーダー反射のみを誤分類します。
検定セットの混同行列を作成します。
ConfusionTest = confusionchart(Y(testInds),labelTest);
このモデルは、1 つの不良なレーダー反射を良好な反射として、5 つの良好なレーダー反射を不良な反射として誤分類します。
事後クラス確率の推定
検定セットの事後クラス確率を推定し、受信者動作特性 (ROC) 曲線をプロットしてモデルの品質を判断します。カーネル分類モデルは、ロジスティック回帰学習器の場合のみ事後確率を返します。
ionosphere
データセットを読み込みます。このデータセットには、レーダー反射についての 34 個の予測子と、不良 ('b'
) または良好 ('g'
) という 351 個の二項反応が含まれています。
load ionosphere
データセットを学習セットと検定セットに分割します。検定セット用に 30% のホールドアウト標本を指定します。
rng('default') % For reproducibility Partition = cvpartition(Y,'Holdout',0.30); trainingInds = training(Partition); % Indices for the training set testInds = test(Partition); % Indices for the test set
バイナリ カーネル分類モデルに学習をさせます。ロジスティック回帰学習器を当てはめます。
Mdl = fitckernel(X(trainingInds,:),Y(trainingInds), ... 'ClassNames',{'b','g'},'Learner','logistic');
検定セットの事後クラス確率を予測します。
[~,posterior] = predict(Mdl,X(testInds,:));
Mdl
内の正則化強度は 1 つなので、出力 posterior
は列数が 2 で行数が検定セットの観測値数と同じである行列になります。列 i
には、与えられた特定の観測値に対する Mdl.ClassNames(i)
の事後確率が格納されます。
rocmetrics
オブジェクトを作成し、ROC 曲線のパフォーマンス メトリクス (真陽性率と偽陽性率) を計算して ROC 曲線の下の領域 (AUC) の値を求めます。
rocObj = rocmetrics(Y(testInds),posterior,Mdl.ClassNames);
rocmetrics
の関数 plot
を使用して、2 番目のクラスの ROC 曲線をプロットします。
plot(rocObj,ClassNames=Mdl.ClassNames(2))
AUC は 1
に近いので、モデルによるラベルの予測精度が高いことがわかります。
入力引数
Mdl
— バイナリ カーネル分類モデル
ClassificationKernel
モデル オブジェクト
バイナリ カーネル分類モデル。ClassificationKernel
モデル オブジェクトを指定します。ClassificationKernel
モデル オブジェクトは、fitckernel
を使用して作成できます。
X
— 分類対象の予測子データ
数値行列 | テーブル
分類対象の予測子データ。数値行列またはテーブルを指定します。
X
の各行は 1 つの観測値に対応し、各列は 1 つの変数に対応します。
数値行列の場合
X
の列に含まれている変数の順序は、Mdl
に学習させた予測子変数の順序と同じでなければなりません。テーブル (たとえば
Tbl
) を使用してMdl
に学習をさせた場合、Tbl
に含まれている予測子変数がすべて数値変数であれば、X
を数値行列にすることができます。学習時にTbl
内の数値予測子をカテゴリカルとして扱うには、fitckernel
の名前と値のペアの引数CategoricalPredictors
を使用してカテゴリカル予測子を指定します。Tbl
に種類の異なる予測子変数 (数値および categorical データ型など) が混在し、X
が数値行列である場合、predict
でエラーがスローされます。
テーブルの場合
predict
は、文字ベクトルの cell 配列ではない cell 配列や複数列の変数をサポートしません。テーブル (たとえば
Tbl
) を使用してMdl
に学習をさせた場合、X
内のすべての予測子変数は変数名およびデータ型が、Mdl
に学習させた (Mdl.PredictorNames
に格納されている) 変数と同じでなければなりません。ただし、X
の列の順序がTbl
の列の順序に対応する必要はありません。また、Tbl
とX
に追加の変数 (応答変数や観測値の重みなど) を含めることができますが、predict
はこれらを無視します。数値行列を使用して
Mdl
に学習をさせた場合、Mdl.PredictorNames
内の予測子名とX
内の対応する予測子変数名が同じでなければなりません。学習時に予測子の名前を指定する方法については、fitckernel
の名前と値のペアの引数PredictorNames
を参照してください。X
内の予測子変数はすべて数値ベクトルでなければなりません。X
に追加の変数 (応答変数や観測値の重みなど) を含めることができますが、predict
はこれらを無視します。
データ型: table
| double
| single
出力引数
Label
— 予測クラス ラベル
categorical 配列 | 文字配列 | logical 行列 | 数値行列 | 文字ベクトルの cell 配列
詳細
分類スコア
カーネル分類モデルの場合、観測値 x (行列ベクトル) を陽性クラスに分類する生の "分類スコア" は次のように定義されます。
は特徴量を拡張するための観測値の変換です。
β は推定された係数の列ベクトルです。
b は推定されたスカラー バイアスです。
x を陰性クラスに分類する生の分類スコアは −f(x) です。このソフトウェアでは、スコアが正になるクラスに観測値が分類されます。
カーネル分類モデルがロジスティック回帰学習器から構成されている場合、'logit'
スコア変換が生の分類スコアに適用されます (ScoreTransform
を参照)。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
バージョン履歴
R2017b で導入
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)