このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
分類誤差
から返されるスカラーは,l
=损失(树
,资源描述
,ResponseVarName
)资源描述。ResponseVarName
が真の分類を含む場合に,树
で资源描述
データをどの程度の精度で分類するかを表します。
損失を計算する場合,损失
はY
のクラス確率を,树
の之前
プロパティに格納されている学習に使用されるクラス確率に正規化します。
树
- - - - - -学習済みの分類木ClassificationTree
モデルオブジェクト|CompactClassificationTree
モデルオブジェクト学習済みの分類木。ClassificationTree
またはCompactClassificationTree
モデルオブジェクトとして指定します。つまり,树
はfitctree
または紧凑的
が返す学習済み分類モデルです。
资源描述
- - - - - -標本データ標本データ。テーブルとして指定します。资源描述
の各行は1つの観測値に,各列は1つの予測子変数に対応します。オプションとして,応答変数用および観測値の重み用の追加列を资源描述
に含めることができます。资源描述
には,树
を学習させるために使用したすべての予測子が含まれていなければなりません。文字ベクトルの细胞配列ではない cell 配列と複数列の変数は使用できません。
树
を学習させるために使用した応答変数が资源描述
に含まれている場合,ResponseVarName
またはY
を指定する必要はありません。
表格
に含まれている標本データを使用して树
を学習させた場合,このメソッドの入力データも表に格納されていなければなりません。
データ型:表格
ResponseVarName
- - - - - -応答変数名资源描述
内の変数の名前応答変数の名前。资源描述
に含まれている変数の名前として指定します。树
を学習させるために使用した応答変数が资源描述
に含まれている場合,ResponseVarName
を指定する必要はありません。
ResponseVarName
を指定する場合は,文字ベクトルまたは字符串スカラーとして指定しなければなりません。たとえば,応答変数が资源描述。响应
として格納されている場合,“响应”
として指定します。それ以外の場合,资源描述
の列は资源描述。ResponseVarName
を含めてすべて予測子として扱われます。
応答変数は,绝对配列,文字配列,字符串配列,逻辑ベクトル,数値ベクトル,または文字ベクトルの细胞配列でなければなりません。応答変数が文字配列の場合,各要素は配列の1つの行に対応しなければなりません。
データ型:字符
|字符串
オプションの名称,值
引数のコンマ区切りペアを指定します。的名字
は引数名で,价值
は対応する値です。的名字
は引用符で囲まなければなりません。Name1, Value1,…,的家
のように,複数の名前と値のペアの引数を,任意の順番で指定できます。
LossFun
- - - - - -損失関数“mincost”
(既定値) |“binodeviance”
|“classiferror”
|“指数”
|“枢纽”
|分对数的
|“二次”
|関数ハンドル損失関数。“LossFun”
と組み込みの損失関数名または関数ハンドルから構成されるコンマ区切りのペアとして指定します。
次の表は,使用可能な損失関数の一覧です。対応する文字ベクトルまたは字符串スカラーを使用して,いずれかを指定します。
値 | 説明 |
---|---|
“binodeviance” |
二項分布からの逸脱度 |
“classiferror” |
10進数の誤分類率 |
“指数” |
指数損失 |
“枢纽” |
ヒンジ損失 |
分对数的 |
ロジスティック損失 |
“mincost” |
最小予測誤分類コスト(事後確率である分類スコアの場合) |
“二次” |
二次損失 |
“mincost”
は,事後確率である分類スコアに適しています。既定の設定では,分類木は分類スコアとして事後確率を返します(预测
を参照)。
関数ハンドル表記を使用して独自の関数を指定します。
X
内の観測値数をn
,異なるクラスの数(元素个数(tree.ClassNames)
)をK
とします。使用する関数のシグネチャは次のようになっていなければなりません。
lossvalue =lossfun
(C、S、W、成本)
出力引数lossvalue
はスカラーです。
関数名 (lossfun
)を選択します。
C
はn
行K
列の逻辑行列で,行は対応する観測値が属するクラスを示しています。列の順序は树。ClassNames
のクラスの順序に対応します。
C
を作成するには,各行について観測値p
がクラス问
に含まれている場合にC (p, q) = 1
を設定します。行p
の他のすべての要素を0
に設定します。
年代
は,分類スコアのn
行K
列の行列です。列の順序は树。ClassNames
のクラスの順序に対応します。年代
は分類スコアの行列で,预测
の出力と同様です。
W
は,観測値の重みのn
行1列の数値ベクトルです。W
を渡す場合,要素は正規化され,合計が1
になります。
成本
は,誤分類コストの,K行K
列の数値行列です。たとえば,Cost = ones(K) - eye(K)
は,正しい分類のコストとして0
を,誤分類のコストとして1
を指定します。
“LossFun”@
を使用して独自の関数を指定します。lossfun
損失関数の詳細については,分類損失を参照してください。
データ型:字符
|字符串
|function_handle
权重
- - - - - -観測値の重み(大小(X, 1), 1)
(既定値) |资源描述
内の変数の名前|正の値の数値ベクトル観測値の重み。“重量”
と,正の値の数値ベクトルまたは资源描述
内の変数の名前から構成されるコンマ区切りのペアとして指定します。
数値ベクトルで权重
を指定する場合,权重
のサイズはX
または资源描述
の行数と等しくなければなりません。
资源描述
内の変数名を权重
として指定する場合,文字ベクトルまたは字符串スカラーを指定しなければなりません。たとえば,重みが资源描述。W
として格納されている場合,' W '
として指定します。それ以外の場合,资源描述
の列は资源描述。W
を含めてすべて予測子として扱われます。
损失
は,各クラスの観測値について重みの合計がそのクラスの事前確率になるように,重みを正規化します。权重
を指定した場合,损失
は重み付けした分類損失を計算します。
データ型:单
|双
|字符
|字符串
枝刈りしたサブツリーに関連する名称,值
引数。
子树
- - - - - -枝刈りレベル“所有”
枝刈りレベル。“子树”
と昇順の非負の整数のベクトルまたは“所有”
から構成されるコンマ区切りのペアとして指定します。
ベクトルを指定する場合,すべての要素が0
から马克斯(tree.PruneList)
の範囲になければなりません。0
は枝刈りしない完全な木を,马克斯(tree.PruneList)
は完全に枝刈りした木(つまり,ルートノードのみ)を表します。
“所有”
を指定した場合,损失
はすべての部分木(枝刈り順序全体)に作用します。これは,0:马克斯(tree.PruneList)
を指定することと同じです。
损失
では,子树
で指定された各レベルまで树
の枝刈りを行ってから,対応する出力引数を推定します。子树
のサイズにより,一部の出力引数のサイズが決まります。
子树
を呼び出すために,树
のPruneList
プロパティまたはPruneAlpha
プロパティを空にすることはできません。言い換えると,“删除”,“上”
を設定して树
を成長させるか,修剪
を使用して树
の枝刈りを行います。
例:“子树”,“所有”
データ型:单
|双
|字符
|字符串
TreeSize
- - - - - -木のサイズ“本身”
(既定値) |“最小值”
木のサイズ。“TreeSize”
と次のいずれかの値から構成されるコンマ区切りのペアとして指定します。
“本身”
- - - - - -损失
は,最小の1標準偏差内の損失(l
+se
,このときl
およびse
は,子树
での最小値に相関します)をもつ,最も高い枝刈りレベルを返します。
“最小值”
- - - - - -损失
は,最も損失が少ない子树
の要素を戻します。通常,これは子树
の最小要素です。
l
——分類損失分類損失。長さが子树
のベクトルとして返されます。誤差の意味は,权重
およびLossFun
の値によって異なります。
se
——損失の標準誤差損失の標準誤差。長さが子树
のベクトルとして返されます。
NLeaf
——葉ノードの数枝刈りされた部分木における葉(終端ノード)の数。長さが子树
のベクトルとして返されます。
bestlevel
——最適な枝刈りレベル名前と値のペアTreeSize
で定義した最適な枝刈りレベル。スカラー値として返されます。値は,TreeSize
の設定に応じて次のようになります。
TreeSize
=“本身”
- - - - - -损失
は,最小の1標準偏差内の損失(l
+se
,このときl
およびse
は,子树
での最小値に相関します)をもつ,最も高い枝刈りレベルを返します。
TreeSize
=“最小值”
- - - - - -损失
は,最も損失が少ない子树
の要素を返します。通常,これは子树
の最小要素です。
既定では,bestlevel
は,最も損失の少ない,1標準偏差内の損失の枝刈りレベルです。
枝刈りをしていない決定木は,過適合になる傾向があります。モデルの複雑さと標本外性能のバランスをとる方法の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,“模式”,“图”);
この分類木には4つの枝刈りレベルがあります。レベル0は(表示のように)枝刈りされていない完全な木です。レベル3はルートノードのみ(分割なし)です。
最上位レベルを除く各部分木(枝刈りレベル)について,学習標本の分類誤差を確認します。
m = max(Mdl.PruneList) - 1;trnLoss = resubLoss (Mdl,“子树”0米):
trnLoss =3×10.0267 0.0533 0.3067
枝刈りされていない完全な木では,学習観測値の約2.7%が誤分類されています。
レベル1まで枝刈りされた木では,学習観測値の約5.3%が誤分類されています。
レベル2(切り株)まで枝刈りされた木では,学習観測値の約30.6%が誤分類されています。
最上位を除く各レベルで検定標本の分類誤差を確認します。
valLoss =损失(Mdl量(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,“模式”,“图”)
"分類損失"関数は分類モデルの予測誤差を評価します。複数のモデルで同じタイプの損失を比較した場合,損失が低い方が予測モデルとして優れていることになります。
以下のシナリオを考えます。
Lは加重平均分類損失です。
nは標本サイズです。
バイナリ分類は以下です。
yjは観測されたクラスラベルです。陰性クラスを示す1または陽性クラスを示す1(あるいは,一会
プロパティの最初のクラスを示す1または2番目のクラスを示す1)を使用して符号化されます。
f (Xj)は予測子データXの観測値(行)jに対する陽性クラスの分類スコアです。
米j= yjf (Xj)はyjに対応するクラスに観測値jを分類する分類スコアです。正の値のmjは正しい分類を示しており,平均損失に対する寄与は大きくありません。負の値のmjは正しくない分類を示しており,平均損失に大きく寄与します。
マルチクラス分類(つまり,K≥3)をサポートするアルゴリズムの場合,次のようになります。
yj*はK - 1個の0と観測された真のクラスyjに対応する位置の1から構成されるベクトルです。たとえば,2番目の観測値の真のクラスが 3 番目のクラスでありK = 4の場合,y2*= [0 0 1 0] 'になります。クラスの順序は入力モデルの一会
プロパティ内の順序に対応します。
f (Xj)は予測子データXの観測値jに対するクラススコアのベクトルで,長さはKです。スコアの順序は入力モデルの一会
プロパティ内のクラスの順序に対応します。
米j= yj*“f (Xj).したがってmjは,観測された真のクラスについてモデルが予測するスカラー分類スコアです。
観測値jの重みはwjです。観測値の重みは正規化され,合計は対応するクラスの事前確率になります。また,事前確率は合計が1になるように正規化されます。そのため,次のようになります。
この状況では,名前と値のペアの引数“LossFun”
を使用して指定できる,サポートされる損失関数は次の表のようになります。
損失関数 | LossFun の値 |
式 |
---|---|---|
二項分布からの逸脱度 | “binodeviance” |
|
10進数の誤分類率 | “classiferror” |
は,スコアが最大であるクラスに対応するクラスラベルです。我{·}はインジケーター関数です。 |
クロスエントロピー損失 | “crossentropy” |
加重クロスエントロピー損失は次となります。
ここで重み は,合計が1ではなくnになるように正規化されます。 |
指数損失 | “指数” |
|
ヒンジ損失 | “枢纽” |
|
ロジット損失 | 分对数的 |
|
最小予測誤分類コスト | “mincost” |
重み付きの最小予測分類コストは,次の手順を観測値j = 1,……nについて使用することにより計算されます。
最小予測誤分類コスト損失の加重平均は次となります。
既定のコスト行列(正しい分類の場合の要素値は0,誤った分類の場合の要素値は1)を使用する場合, |
二次損失 | “二次” |
次の図では1つの観測値のスコアmに対する損失関数(“crossentropy”
および“mincost”
を除く)を比較しています。いくつかの関数は,点(0,1)を通過するように正規化されています。
真の誤分類コストは,観測値を誤ったクラスに分類するコストです。
分類器の作成時に,名前と値の引数“成本”
を使用してクラスごとの真の誤分類コストを設定できます。成本(i, j)
は,真のクラスが我
の場合に観測値をクラスj
に分類するコストです。既定では,成本(i, j) = 1
(我~ = j
の場合)および成本(i, j) = 0
(我=我
の場合)です。つまり,正しい分類のコストは0
,誤った分類のコストは1
です。
観測値ごとの予測誤分類コストは,観測をそれぞれのクラスに分類する平均コストです。
学習済みの分類器を使用して脑袋
個の観測値を分類するとします。また,K
個のクラスがあるとします。1行に 1 観測ずつ、観測値を行列X
に置きます。
予測コスト行列CE
のサイズは,脑袋
行K
列です。CE
の各行には,観測をそれぞれのクラスK
に分類する予測(平均)コストが含まれます。CE (n, k)
は次のとおりです。
ここで,
Kはクラスの数です。
は,観測値X (n)のクラス我の事後確率です。
は,真のクラスが我である観測値をkに分類する真の誤分類コストです。
ツリーの場合,葉ノードの分類の“スコア”は,そのノードでの分類の事後確率です。あるノードにおける分類の事後確率とは,分類によって実際にそのノードに達するのに要した学習シーケンスの数を,そのノードまでの学習シーケンスの数で除算した値です。
たとえば,X
<0.15
またはX
>0.95
である場合は予測子X
を真正的
に分類し,それ以外の場合はX
を假に分類するとします。
100年個の点を無作為に生成し,分類します。
rng (0,“旋风”)%的再现性X =兰德(100 1);Y = (abs(X - .55) > .4);树= fitctree (X, Y);视图(树,“模式”,“图”)
ツリーを枝刈りします。
tree1 =修剪(树,“水平”1);视图(tree1,“模式”,“图”)
枝刈りされたツリーは,0.15未満の観測値を正しく真正的
に分類しています。また,。15から.94 までの観測値についても、正しく假
に分類しています。しかし,0.94より大きい観測は假
と誤って分類されます。そのため,0.15より大きい観測値のスコアは,真正的
では. 05 / .85 = 0。06假
では。8 / .85 =。94年になります。
X
の先頭から10行までの予測スコアを計算します。
[~,分数]=预测(tree1 X (1:10));(分数X (1:10)):
ans =10×30.9059 0.0941 0.8147 0.9059 0.0941 0.9058 0 1.0000 0.1270 0.9059 0.0941 0.9134 0.9059 0.0941 0.6324 0 1.0000 0.0975 0.9059 0.0941 0.2785 0.9059 0.0941 0.5469 0.9059 0.0941 0.9575 0.9059 0.0941 0.9649
実際に,X
0.15でより小さいすべての値(右端の列)には,0
と1
のスコアが関連付けられ(左の列と中央の列),X
のその他の値には,0.91
と0.09
のスコアが関連付けられています。スコアの違い(想定した06
ではなく,0.09
)は統計変動によるものです。範囲(1) .95
のX
には,想定した5
個ではなく8
個の観測値があります。
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドをMATLABコマンドウィンドウに入力して実行してください。WebブラウザーはMATLABコマンドをサポートしていません。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。