主要内容

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

resubLoss

クラス:分类树

再置換による分類誤差

構文

L = resubLoss(树)
L = resubLoss(树、名称、值)
L = resubLoss(树的子树,subtreevector)
(L, se) = resubLoss(树的子树,subtreevector)
[L,se,NLeaf]=resubLoss(树,'子树',子树向量)
[L, se, NLeaf bestlevel] = resubLoss(树的子树,subtreevector)
[L,…]=resubLoss(树、‘子树’、子树向量、名称、值)

説明

l= resubLoss (は、関数fitctreeの作成に使用したデータで計算した損失を意味する,再代入損失を返します。

l= resubLoss (名称,值は、1.つ以上の名称,值のペア引数で指定された追加オプションを使用して、損失を返します。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を任意の順番で指定できます。

l= resubLoss (“子树”subtreevector)は,枝刈りしたシーケンス子树向量内のツリーの分類誤差のベクトルを返します。

lse) = resubLoss (“子树”subtreevector)は、分類誤差の標準誤差ベクトルを返します。

lseNLeaf) = resubLoss (“子树”subtreevector)は,枝刈りしたシーケンスのツリーの葉ノードの数を示すベクトルを返します。

lseNLeafbestlevel) = resubLoss (“子树”subtreevector)は,树状化名前と値のペアに定義された最適な枝刈りレベルを返します。既定では,bestlevelは,最も損失の少ない,1標準偏差内の損失の枝刈りレベルです。

(L,…]= resubLoss (“子树”subtreevector,名称,值は、1.つ以上の名称,值のペア引数で指定された追加オプションを使用して、損失統計を返します。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を任意の順番で指定できます。

入力引数

すべて展開する

fitctreeによって構築された分類木。

名前と値のペアの引数

オプションの名称,值引数のコンマ区切りペアを指定します。名称は引数名で,价值は対応する値です。名称は引用符で囲まなければなりません。名称1,值1,…,名称,值のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

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

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

    説明
    “binodeviance” 二項分布からの逸脱度
    “classiferror” 10進数の誤分類率
    “指数型” 指数損失
    “枢纽” ヒンジ損失
    分对数的 ロジスティック損失
    “mincost” 最小予測誤分類コスト(事後確率である分類スコアの場合)
    “二次” 二次損失

    “mincost”は、事後確率である分類スコアに適しています。既定の設定では、分類木は分類スコアとして事後確率を返します (预测を参照)。

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

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

    损失值=lossfun(C、S、W、成本)
    ここで,

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

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

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

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

    • 年代は、分類スコアのnK列の行列です。列の順序は树。ClassNamesのクラスの順序に対応します。年代は分類スコアの行列で、预测の出力と同様です。

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

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

    "损失",@lossfunを使用して独自の関数を指定します。

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

データ型:烧焦|一串|function_handle

枝刈りしたサブツリーに関連する名称,值引数。

枝刈りレベル。“子树”と昇順の非負の整数のベクトルまたは“所有”から構成されるコンマ区切りのペアとして指定します。

ベクトルを指定する場合,すべての要素が0から马克斯(tree.PruneList)の範囲になければなりません。0は枝刈りしない完全な木を,马克斯(tree.PruneList)は完全に枝刈りした木(つまり,ルートノードのみ)を表します。

“所有”を指定した場合、resubLossはすべての部分木 (枝刈り順序全体) に作用します。これは、0:马克斯(tree.PruneList)を指定することと同じです。

resubLossでは,子树で指定された各レベルまでの枝刈りを行ってから、対応する出力引数を推定します。子树のサイズにより、一部の出力引数のサイズが決まります。

子树を呼び出すために,PruneListプロパティまたはPruneAlphaプロパティを空にすることはできません。言い換えると,“剪枝”,“开”を設定してを成長させるか,修剪を使用しての枝刈りを行います。

例:“子树”,“全部”

データ型:仅有一个的|双重的|烧焦|一串

木のサイズ。“TreeSize”と次のいずれかの値から構成されるコンマ区切りのペアとして指定します。

  • “se”- - - - - -丧失は,最小の1標準偏差内の損失(l+se、このときlおよびseは,子树での最小値に相関します) をもつ、最も高い枝刈りレベルを返します。

  • “敏”- - - - - -丧失は、最も損失が少ない子树の要素を戻します。通常,これは子树の最小要素です。

出力引数

l

分類損失。長さが子树のベクトル。誤差の意味は,权重および失意の値によって異なります。

se

損失の標準誤差。子树の長さのベクトル。

NLeaf

枝刈りされたサブツリー内の葉 (端末ノード) の数。子树の長さのベクトル。

bestlevel

树状化によって値が異なるスカラー。

  • 树状化“se”- - - - - -丧失は,最小の1標準偏差内の損失(l+se、このときlおよびseは,子树での最小値に相関します) をもつ、最も高い枝刈りレベルを返します。

  • 树状化“敏”- - - - - -丧失は、最も損失が少ない子树の要素を返します。通常,これは子树の最小要素です。

すべて展開する

电离层データについて,再代入分類誤差を計算します。

负载电离层树= fitctree (X, Y);L = resubLoss(树)
L = 0.0114

枝刈りをしていない決定木は、過適合になる傾向があります。モデルの複雑さと標本外性能のバランスをとる方法の 1.つとして、標本内性能と標本外性能が十分高くなるように木の枝刈りを行います (つまり木の成長を制限します)。

フィッシャーのアヤメのデータセットを読み込みます。データを学習セット (50%) と検定セット (50%) に分割します。

负载fisheriris1) n =大小(量;rng (1)%为了再现性idxTrn = false (n, 1);idxTrn (randsample (n,圆(0.5 * n))) = true;%训练集逻辑索引idxVal = idxTrn == false;%验证集逻辑索引

学習セットを使用して分類木を成長させます。

Mdl = fitctree(量(idxTrn:),物种(idxTrn));

分類木を表示します。

视图(Mdl,“模式”“图形”);

图分类树查看器包含一个轴和其他类型的uimenu, uicontrol对象。轴包含18个类型为line, text的对象。

この分類木には 4.つの枝刈りレベルがあります。レベル 0は、(表示のように) 枝刈りされていない完全な木です。レベル 3.はルート ノードのみ (分割なし) です。

最上位レベルを除く各部分木 (枝刈りレベル) について、学習標本の分類誤差を確認します。

m=最大(Mdl.PruneList)-1;trnLoss=恢复(Mdl,“子树”0米):
trnLoss =3×10.0267 0.0533 0.3067
  • 枝刈りされていない完全な木では、学習観測値の約 2.7% が誤分類されています。

  • レベル 1.まで枝刈りされた木では、学習観測値の約 5.3% が誤分類されています。

  • レベル2(切り株)まで枝刈りされた木では,学習観測値の約30.6%が誤分類されています。

最上位を除く各レベルで検定標本の分類誤差を確認します。

valLoss=损失(Mdl,MEA(idxVal,:),物种(idxVal),“子树”0米):
valLoss =3×10.0369 0.0237 0.3067
  • 枝刈りされていない完全な木では、検定観測値の約 3.7% が誤分類されています。

  • レベル 1.まで枝刈りされた木では、検定観測値の約 2.4% が誤分類されています。

  • レベル2(切り株)まで枝刈りされた木では,検定観測値の約30.7%が誤分類されています。

モデルの複雑さと標本外性能のバランスをとるには,Mdlをレベル 1.まで枝刈りすることを検討します。

pruneMdl =修剪(Mdl,“水平”1);视图(pruneMdl,“模式”“图形”

地物分类树查看器包含一个轴和其他类型为uimenu、uicontrol的对象。轴包含12个类型为line、text的对象。

詳細

すべて展開する