このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
resubPredict
分類木の再代入ラベルを予測
構文
説明
[
では、1 つ以上の label
,___] = resubPredict(tree
,Name,Value
)Name,Value
の引数ペアで指定された追加オプションを使用して、再代入予測を返します。
例
誤分類した観測値の数の計算
分類木では誤分類されるフィッシャーのアヤメのデータの総数を求めます。
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
オブジェクト
分類木。ClassificationTree
オブジェクトとして指定します。分類木オブジェクトの作成には関数 fitctree
を使用します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: [~,posterior] = resubPredict(tree,'SubTrees',[1 3]);
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
プロパティを空にすることはできません。言い換えると、Prune="on"
を設定して tree
を成長させるか、prune
を使用して tree
の枝刈りを行います。
例: Subtrees="all"
データ型: single
| double
| char
| string
出力引数
node
— 各データ行に関連付けられる tree
のノード数
ベクトル | 行列
各データ行に関連付けられる tree
のノード数。ベクトルまたは行列として返されます。
名前と値の引数 Subtrees
がスカラーであるか指定されていない場合、node
は tree.X
と同じ行数の n
行をもつ数値列ベクトルになります。
Subtrees
に m
>1
のエントリが含まれる場合、node
は n
行 m
列の行列になります。各列は、対応するサブツリーのノード予測を表します。
cnum
— 再代入データについて tree
で予測されるクラス数
ベクトル | 行列
再代入データについて tree
で予測されるクラス数。ベクトルまたは行列として返されます。
名前と値の引数 Subtrees
がスカラーであるか指定されていない場合、cnum
は tree.X
と同じ行数の n
行をもつ数値列ベクトルになります。
Subtrees
に m
>1
のエントリが含まれる場合、cnum
は n
行 m
列の行列になります。各列は、対応するサブツリーのクラス予測を表します。
詳細
事後確率
あるノードにおける分類の事後確率とは、分類によって実際にそのノードに達するのに要した学習シーケンスの数を、そのノードまでの学習シーケンスの数で除算した値です。
例については、分類木の事後確率の定義を参照してください。
拡張機能
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は、GPU 配列を完全にサポートします。詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2011a で導入
参考
resubEdge
| resubMargin
| resubLoss
| predict
| fitctree
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)