ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

kfoldLoss

学習で使用しない観測の分類損失

構文

L = kfoldLoss(obj)
L = kfoldLoss(obj,Name,Value)

説明

L = kfoldLoss(obj) は、交差検証済みの分類モデル obj で取得した損失を返します。この手法では、すべての分割について分割外の観測値で学習したモデルを使用し、分割内の観測値の分類損失を計算します。

L = kfoldLoss(obj,Name,Value) では、1 つ以上の Name,Value のペア引数で指定された追加オプションを使用して、損失を計算します。Name1,Value1,…,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

入力引数

obj

クラス ClassificationPartitionedModel のオブジェクト。

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で閉じなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

'folds'

1 から obj.KFold までの分割のインデックス。予測にはこれらの分割のみを使用します。

既定値: 1:obj.KFold

'lossfun'

損失関数。'LossFun' と組み込みの損失関数名または関数ハンドルから構成されるコンマ区切りのペアとして指定します。

  • 次の表は、使用可能な損失関数の一覧です。対応する文字ベクトルまたは string スカラーを使用して、いずれかを指定します。

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

    'mincost' は、事後確率である分類スコアに適しています。既定の設定では、SVM モデルを除くすべてのモデルで事後確率を分類スコアとして使用します。SVM モデルの場合に事後確率を分類スコアとして使用するように指定するには、fitcsvm を使用してモデルを交差検証するときに 'FitPosterior',true を設定します。

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

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

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

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

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

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

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

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

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

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

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

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

既定値: 'classiferror'

'mode'

kfoldLoss の出力を決定する文字ベクトルまたは string スカラー。

  • 'average'L は、すべての分割で損失を平均したスカラー値です。

  • 'individual'L は、長さ obj.KFold のベクトルで、各エントリは 1 つの分割に対する損失です。

既定値: 'average'

出力引数

L

この損失は、既定で誤分類データの一部となります。L は、ベクトルの可能性もありますが、名前と値のペアの引数の設定によって異なる場合もあります。

すべて展開する

ionosphere データセットを読み込みます。

load ionosphere

分類木を成長させます。

tree = fitctree(X,Y);

10 分割交差検証を使用して分類木を交差検証します。

cvtree = crossval(tree);

交差検証分類誤差を推定します。

L = kfoldLoss(cvtree)
L = 0.1111

詳細

すべて展開する