resubPredict
再代入による分類木の観測値の分類
構文
説明
例
誤分類した観測値の数の計算
分類木では誤分類されるフィッシャーのアヤメのデータの総数を求めます。
load fisheriris tree = fitctree(meas,species); Ypredict = resubPredict(tree); % The predictions Ysame = strcmp(Ypredict,species); % True when == sum(~Ysame) % How many are different?
ans = 3
各部分木の標本内事後確率の比較
フィッシャーのアヤメのデータ セットを読み込みます。データを学習セット (50%) に分割します。
load fisheriris
すべての花弁の測定値を使用して分類木を成長させます。
Mdl = fitctree(meas(:,3:4),species); n = size(meas,1); % Sample size K = numel(Mdl.ClassNames); % Number of classes
分類木を表示します。
view(Mdl,'Mode','graph');
この分類木には 4 つの枝刈りレベルがあります。レベル 0 は、(表示のように) 枝刈りされていない完全な木です。レベル 4 はルート ノードのみ (分割なし) です。
レベル 1 および 3 まで枝刈りした部分木を使用して、各クラスの事後確率を推定します。
[~,Posterior] = resubPredict(Mdl,'Subtrees',[1 3]);
Posterior
は、事後確率が格納されている n
x K
x 2 の配列です。Posterior
の各行は観測値に、各列は Mdl.ClassNames
の順序でクラスに、各ページは枝刈りレベルに対応します。
各部分木を使用して、アヤメ 125 のクラス事後確率を表示します。
Posterior(125,:,:)
ans = ans(:,:,1) = 0 0.0217 0.9783 ans(:,:,2) = 0 0.5000 0.5000
決定株 (Posterior
の 2 ページ) では、アヤメ 125 が versicolor と virginica のどちらであるかを正しく予測することが困難です。
分類木の事後確率の定義
予測子 X
を X < 0.15
または X > 0.95
の場合は true に分類し、それ以外の場合は false に分類します。
0 と 1 の間で一様分布する 100 個の乱数を生成し、ツリー モデルを使用してそれらを分類します。
rng("default") % For reproducibility X = rand(100,1); Y = (abs(X - 0.55) > 0.4); tree = fitctree(X,Y); view(tree,"Mode","graph")
ツリーを枝刈りします。
tree1 = prune(tree,"Level",1); view(tree1,"Mode","graph")
枝刈りされたツリーは、0.15 未満の観測値を正しく true
に分類しています。また、0.15 から 0.95 までの観測値についても、正しく false
に分類しています。しかし、0.95 より大きい観測値は false
に誤って分類されます。そのため、0.15 より大きい観測値のスコアは、true
では 0.05/0.85=0.06、false
では 0.8/0.85=0.94 になります。
X
の先頭から 10 行までの予測スコア (事後確率) を計算します。
[~,score] = resubPredict(tree1); [score(1:10,:) X(1:10)]
ans = 10×3
0.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 のスコアが関連付けられています。スコアの違い (想定した 0.06 ではなく、0.09) は、統計変動によるものです。範囲 (0.95,1) の X
には、想定した 5 個ではなく 8 個の観測値があります。
sum(X > 0.95)
ans = 8
入力引数
tree
— 分類木モデル
ClassificationTree
モデル オブジェクト
分類木モデル。fitctree
で学習させた ClassificationTree
モデル オブジェクトとして指定します。
subtrees
— 枝刈りレベル
0 (既定値) | 非負の整数のベクトル | "all"
枝刈りレベル。昇順の非負の整数のベクトルまたは "all"
として指定します。
ベクトルを指定する場合、すべての要素が 0
から max(tree.PruneList)
の範囲になければなりません。0
は枝刈りしない完全な木を、max(tree.PruneList)
は完全に枝刈りした木 (つまり、ルート ノードのみ) を表します。
"all"
を指定した場合、resubPredict
はすべての部分木 (つまり、枝刈り順序全体) に作用します。これは、0:max(tree.PruneList)
を指定することと同じです。
resubPredict
では、subtrees
で指定された各レベルまで tree
の枝刈りを行ってから、対応する出力引数を推定します。subtrees
のサイズにより、一部の出力引数のサイズが決まります。
関数で subtrees
を呼び出すために、tree
の PruneList
プロパティと PruneAlpha
プロパティは空以外でなければなりません。言い換えると、fitctree
を使用するときに Prune="on"
を設定して tree
を成長させるか、prune
を使用して tree
を枝刈りすることで成長させます。
データ型: single
| double
| char
| string
出力引数
label
— 予測クラス ラベル
categorical 配列 | 文字配列 | logical ベクトル | 数値ベクトル | 文字ベクトルの cell 配列
学習データに対する予測クラス ラベル。categorical 配列、文字配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として返されます。label
のデータ型は学習応答データ tree.Y
と同じです。
subtrees
に m
> 1
のエントリが含まれる場合、label
は m
列の行列として返され、各列が対応する部分木の予測を表します。それ以外の場合、label
はベクトルとして返されます。
node
— ノード番号
数値列ベクトル | 数値行列
予測クラスのノード番号。数値列ベクトルまたは数値行列として返されます。
subtrees
がスカラーであるか指定されていない場合、resubPredict
は node
を n
行 (tree.X
と同じ行数) の数値列ベクトルとして返します。
subtrees
に m
> 1
のエントリが含まれる場合、node
は n
行 m
列の数値行列になります。各列は、対応するサブツリーのノード予測を表します。
cnum
— 再代入データの予測クラス番号
数値列ベクトル | 数値行列
再代入データの予測クラス番号。数値列ベクトルまたは数値行列として返されます。
subtrees
がスカラーであるか指定されていない場合、cnum
は n
行 (tree.X
と同じ行数) の数値列ベクトルになります。
subtrees
に m
> 1
のエントリが含まれる場合、cnum
は n
行 m
列の数値行列になります。各列は、対応するサブツリーのクラス予測を表します。
詳細
事後確率
あるノードにおける分類の事後確率とは、分類によって実際にそのノードに達するのに要した学習シーケンスの数を、そのノードまでの学習シーケンスの数で除算した値です。
例については、分類木の事後確率の定義を参照してください。
拡張機能
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は、GPU 配列を完全にサポートします。詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2011a で導入
参考
resubEdge
| resubMargin
| resubLoss
| predict
| fitctree
| ClassificationTree
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)