メインコンテンツ

resubLoss

判別分析分類器の再代入分類損失

説明

L = resubLoss(Mdl) は、Mdl.X に格納されている学習データと Mdl.Y に格納されている対応する真のクラス ラベルを使用して、学習済み判別分析分類器 Mdl の再代入による分類損失 L を返します。resubLoss で既定で使用される損失は、fitcdiscr での Mdl の作成に使用されたデータについて計算された損失です。

L = resubLoss(___,LossFun=lossf) は、組み込みまたはカスタムの損失関数を使用して再代入損失を返します。

分類損失 (L) は再代入の品質に対する尺度であり、数値スカラーとして返されます。解釈は損失関数 (lossf) によって異なりますが、一般に、優れた分類器の方が分類損失値が小さくなります。

すべて折りたたむ

フィッシャーのアヤメのデータについて、再代入した分類誤差を計算します。

フィッシャーのアヤメのデータの分類モデルを作成します。

load fisheriris
mdl = fitcdiscr(meas,species);

再代入の分類誤差を計算します。

L = resubLoss(mdl)
L =
    0.0200

入力引数

すべて折りたたむ

判別分析分類器。fitcdiscr で学習させた ClassificationDiscriminant モデル オブジェクトとして指定します。

損失関数。組み込みの損失関数名または関数ハンドルを指定します。

次の表に、組み込みの損失関数の値を示します。対応する文字ベクトルまたは string スカラーを使用して、いずれかを指定します。

説明
"binodeviance"二項分布からの逸脱度
"classifcost"観測誤分類コスト
"classiferror"10 進数の誤分類率
"exponential"指数損失
"hinge"ヒンジ損失
"logit"ロジスティック損失
"mincost"最小予測誤分類コスト (事後確率である分類スコアの場合)
"quadratic"二次損失

"mincost" は、事後確率である分類スコアに適しています。既定では、判別分析分類器は分類スコアとして事後確率を返します (predict を参照)。

関数ハンドル表記を使用して独自の関数を指定します。nX 内の観測値の個数、K は異なるクラスの個数 (numel(Mdl.ClassNames)) であるとします。使用する関数のシグネチャは次のようになっていなければなりません。

lossvalue = lossfun(C,S,W,Cost)
ここで

  • 出力引数 lossvalue はスカラーです。

  • 関数名 (lossfun) を指定します。

  • CnK 列の logical 行列であり、対応する観測値が属するクラスを各行が示します。列の順序は Mdl.ClassNames のクラスの順序に対応します。

    各行について観測値 p がクラス q に属する場合は C(p,q) = 1 を設定することにより、C を作成します。行 p の他のすべての要素を 0 に設定します。

  • S は、分類スコアの nK 列の行列です。列の順序は Mdl.ClassNames のクラスの順序に対応します。S は分類スコアの行列で、predict の出力と同様です。

  • W は、観測値の重みの n 行 1 列の数値ベクトルです。W を渡す場合、重みは合計が 1 になるように正規化されます。

  • Cost は、誤分類コストの、KK 列の数値行列です。たとえば、Cost = ones(K) - eye(K) は、正しい分類のコストとして 0 を、誤分類のコストとして 1 を指定します。

例: LossFun="binodeviance"

例: LossFun=@lossf

データ型: char | string | function_handle

詳細

すべて折りたたむ

バージョン履歴

R2011b で導入

すべて展開する