Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

loss

構文

L = loss(obj,X,Y)
L = loss(obj,X,Y,Name,Value)

説明

L = loss(obj,X,Y) は、Y に真の分類が格納されている場合に分類損失 (obj がどの程度の精度で X 内のデータを分類するかを表すスカラー) を返します。

損失を計算する場合、lossY のクラス確率を、objPrior プロパティに格納されている学習に使用されるクラス確率に正規化します。

L = loss(obj,X,Y,Name,Value) は、1 つ以上の Name,Value のペア引数で指定された追加オプションを使用して、損失を返します。

メモ

予測子データ X に欠損値があり、LossFun"mincost" または "classiferror" に設定されていない場合、関数 loss で NaN が返されることがあります。詳細については、欠損値がある予測子データに対して loss で NaN が返されることがあるを参照してください。

入力引数

obj

クラス ClassificationDiscriminant または CompactClassificationDiscriminant の判別分析分類器。通常、fitcdiscr で構築されます。

X

各行が 1 つの観測値、各列が 1 つの予測子を表す行列。X の行数は、obj の予測子の数と等しくなければなりません。

Y

obj に存在するのと同じデータ型のクラス ラベル。Y の要素数は、X の行数と等しくなければなりません。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

LossFun

組み込みの損失関数の名前 (表の文字ベクトルまたは string スカラー) または関数ハンドル。

  • 次の表は、使用可能な損失関数の一覧です。対応する値を使用していずれかを指定します。

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

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

  • 関数ハンドル表記を使用して独自の関数を指定します。

    X 内の観測値数を n、異なるクラスの数 (numel(Mdl.ClassNames)) を K とします。使用する関数のシグネチャは次のようになっていなければなりません。

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

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

    • 関数名 (lossfun) を選択します。

    • C は n 行 K 列の logical 行列で、行は対応する観測値が属するクラスを示しています。列の順序は Mdl.ClassNames のクラスの順序に対応します。

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

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

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

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

    'LossFun',@lossfun を使用して独自の関数を指定します。

損失関数の詳細については、分類損失を参照してください。

既定値: 'mincost'

Weights

長さ N の数値ベクトルで、ここで NX の行数です。weights は非負です。loss は各クラスの観測の重みを正規化し、そのクラスの事前確率の合計になるようにします。weights を指定した場合、loss は重み付けした分類損失を計算します。

既定値: ones(N,1)

出力引数

L

分類損失。スカラー。L の解釈は weightslossfun の値によって異なります。

すべて展開する

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

load fisheriris

データ内の観測値をすべて使用して、判別分析モデルに学習をさせます。

Mdl = fitcdiscr(meas,species);

学習観測値を使用してモデルの分類誤差を推定します。

L = loss(Mdl,meas,species)
L = 0.0200

または、Mdl がコンパクトでない場合は、MdlresubLoss に渡すことにより学習標本の分類誤差を推定できます。

詳細

すべて展開する

拡張機能

バージョン履歴

すべて展開する