Main Content

kfoldPredict

交差検証済み分類モデルの観測値の分類

    説明

    label = kfoldPredict(CVMdl) は、交差検証済みの分類器 CVMdl で予測されたクラス ラベルを返します。kfoldPredict は、すべての分割について、学習分割観測値で学習させた分類器を使用して検証分割観測値のクラス ラベルを予測します。CVMdl.X および CVMdl.Y には、両方の観測値のセットが含まれます。

    label = kfoldPredict(CVMdl,'IncludeInteractions',includeInteractions) は、計算に交互作用項を含めるかどうかを指定します。この構文は一般化加法モデルにのみ適用されます。

    [label,Score] = kfoldPredict(___) は、前の構文の入力引数のいずれかを使用して、学習分割観測値で学習させた分類器を使用して予測した検証分割観測値の分類スコアを追加で返します。

    [label,Score,Cost] = kfoldPredict(CVMdl) は、判別分析、k 最近傍、単純ベイズ、ニューラル ネットワーク、および木分類器についての予測誤分類コストを追加で返します。

    すべて折りたたむ

    判別分析モデルの 10 分割の交差検証予測を使用して、混同行列を作成します。

    fisheriris データ セットを読み込みます。X には 150 種類の花に関する花の測定値が格納されており、y は各花の種類またはクラスの一覧です。クラスの順序を指定する変数 order を作成します。

    load fisheriris
    X = meas;
    y = species;
    order = unique(y)
    order = 3x1 cell
        {'setosa'    }
        {'versicolor'}
        {'virginica' }
    
    

    関数 fitcdiscr を使用して、10 分割の交差検証判別分析モデルを作成します。既定では、fitcdiscr により、学習セットとテスト セットで花の種類の比率がほぼ同じになることが保証されます。花のクラスの順序を指定します。

    cvmdl = fitcdiscr(X,y,'KFold',10,'ClassNames',order);

    テスト セットの花の種類を予測します。

    predictedSpecies = kfoldPredict(cvmdl);

    真のクラス値を予測したクラス値と比較する混同行列を作成します。

    confusionchart(y,predictedSpecies)

    Figure contains an object of type ConfusionMatrixChart.

    フィッシャーのアヤメのデータに基づいてモデルの交差検証予測を求めます。

    フィッシャーのアヤメのデータ セットを読み込みます。

    load fisheriris

    AdaBoostM2 を使用して分類木のアンサンブルに学習をさせます。弱学習器として木の切り株を指定します。

    rng(1); % For reproducibility
    t = templateTree('MaxNumSplits',1);
    Mdl = fitcensemble(meas,species,'Method','AdaBoostM2','Learners',t);

    10 分割交差検証を使用して学習済みアンサンブルを交差検証します。

    CVMdl = crossval(Mdl);

    ラベルとスコアを予測された交差検証を推定します。

    [elabel,escore] = kfoldPredict(CVMdl);

    各クラスの最大スコアと最小スコアを表示します。

    max(escore)
    ans = 1×3
    
        9.3862    8.9871   10.1866
    
    
    min(escore)
    ans = 1×3
    
        0.0018    3.8359    0.9573
    
    

    入力引数

    すべて折りたたむ

    交差検証された分割済みの分類器。ClassificationPartitionedModel オブジェクト、ClassificationPartitionedEnsemble オブジェクトまたは ClassificationPartitionedGAM オブジェクトを指定します。オブジェクトは 2 つの方法で作成できます。

    • 次の表に記載されている学習済み分類モデルをそのオブジェクト関数 crossval に渡す。

    • 次の表に記載されている関数を使用して分類モデルに学習をさせ、その関数の交差検証に関する名前と値の引数のいずれかを指定する。

    モデルの交互作用項を含むというフラグ。true または false として指定します。この引数は、一般化加法モデル (GAM) の場合のみ有効です。つまり、この引数を指定できるのは、CVMdlClassificationPartitionedGAM である場合だけです。

    CVMdl のモデル (CVMdl.Trained) に交互作用項が含まれる場合、既定値は true です。モデルに交互作用項が含まれない場合、値は false でなければなりません。

    データ型: logical

    出力引数

    すべて折りたたむ

    予測クラス ラベル。categorical ベクトル、logical ベクトル、数値ベクトル、文字配列、または文字ベクトルの cell 配列として返されます。label のデータ型および行数は CVMdl.Y と同じです。label の各エントリは、CVMdl.X の対応する観測値の予測されたクラス ラベルに対応します。

    ホールドアウト検証の手法を使用して CVMdl を作成する (つまり、CVMdl.KFold1 である) 場合、学習分割観測値の label の値は無視します。これらの値は、最も頻度が高いクラスと一致します。

    分類スコア。n 行 K 列の行列として返されます。n は観測値の数 (観測値が行に含まれる場合は size(CVMdl.X,1))、K は一意のクラスの数 (size(CVMdl.ClassNames,1)) です。分類スコア Score(i,j) は、i 番目の観測値がクラス j に属する信頼度を表します。

    ホールドアウト検証の手法を使用して CVMdl を作成する (つまり、CVMdl.KFold1 である) 場合、Score には学習分割観測値について NaN 値が含まれます。

    予測誤分類コスト。n 行 K 列の行列として返されます。n は観測値の数 (観測値が行に含まれる場合は size(CVMdl.X,1))、K は一意のクラスの数 (size(CVMdl.ClassNames,1)) です。値 Cost(i,j) は、i 番目の観測値がクラス j に属するという予測の平均誤分類コストです。

    メモ

    この出力引数を返す場合、CVMdl は判別分析、k 最近傍、単純ベイズ、ニューラル ネットワーク、または木分類器でなければなりません。

    ホールドアウト検証の手法を使用して CVMdl を作成する (つまり、CVMdl.KFold1 である) 場合、Cost には学習分割観測値について NaN 値が含まれます。

    アルゴリズム

    kfoldPredict は、対応するオブジェクト関数 predict で説明されているように、予測を計算します。モデル固有の説明については、次の表に示す該当する関数 predict のリファレンス ページを参照してください。

    モデル タイプ関数 predict
    判別分析分類器predict
    アンサンブル分類器predict
    一般化加法モデル分類器predict
    k 最近傍分類器predict
    単純ベイズ分類器predict
    ニューラル ネットワーク分類器predict
    サポート ベクター マシン分類器predict
    マルチクラス分類用の二分決定木predict

    拡張機能

    バージョン履歴

    R2011a で導入

    すべて展開する