ドキュメンテーション

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

resubPredict

クラス: ClassificationTree

分類木の再代入ラベルを予測

構文

label = resubPredict(tree)
[label,posterior] = resubPredict(tree)
[label,posterior,node] = resubPredict(tree)
[label,posterior,node,cnum] = resubPredict(tree)
[label,...] = resubPredict(tree,Name,Value)

説明

label = resubPredict(tree) は、データ tree.X について tree が予測したラベルを返します。label は、関数 fitctreetree の作成に使用したデータに関する tree の予測です。

[label,posterior] = resubPredict(tree) は、予測に対する事後のクラス確率を返します。

[label,posterior,node] = resubPredict(tree) は、再代入データでの tree のノード数を返します。

[label,posterior,node,cnum] = resubPredict(tree) は、この予測での予測されるクラス数を返します。

[label,...] = resubPredict(tree,Name,Value) では、1 つ以上の Name,Value の引数ペアで指定された追加オプションを使用して、再代入予測を返します。

入力引数

すべて展開する

tree

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

名前と値のペアの引数

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

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

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

'all' を指定した場合、resubPredict はすべての部分木 (枝刈り順序全体) に作用します。これは、0:max(tree.PruneList) を指定することと同じです。

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

Subtrees を呼び出すために、treePruneList プロパティまたは PruneAlpha プロパティを空にすることはできません。言い換えると、'Prune','on' を設定して tree を成長させるか、prune を使用して tree の枝刈りを行います。

例: 'Subtrees','all'

データ型: single | double | char | string

出力引数

label

応答 tree は、学習データについて予測します。label は、学習応答データ tree.Y と同じデータ型です。

Subtrees 名前と値のペアの引数には、m>1 のエントリが含まれる場合、label には m 列が含まれ、それぞれが対応するサブツリーの予測を表します。エントリが含まれない場合、label はベクトルです。

posterior

tree が予測するクラスの事後の確率の行列または配列。

Subtrees 名前と値の引数がスカラーであるか、引数がない場合、posterior は、nk 列の行列です。ここで n は学習データ tree.X の行数、k はクラスの数です。

Subtreesm>1 のエントリが含まれる場合、posterior は、n x k x m の行列です。ここで各 m の行列は、対応するサブツリーでの事後の確率を示します。

node

各データ行に関連付けられる、tree のノード数。

Subtrees 名前と値の引数がスカラーであるか、引数がない場合、node は、tree.X と同じ行数の n 行をもつ数値列ベクトルです。

Subtreesm>1 のエントリが含まれる場合、node は、n x m の行列です。各列は、対応するサブツリーのノード予測を表します。

cnum

tree が再代入データで予測するクラス数。

Subtrees 名前と値の引数がスカラーであるか、引数がない場合、cnum は、tree.X と同じ行数の n 行をもつ数値列ベクトルです。

Subtreesm>1 のエントリが含まれる場合、cnum は、n x m の行列です。各列は、対応するサブツリーのクラス予測を表します。

すべて展開する

分類木では誤分類されるフィッシャーのアヤメのデータの総数を求めます。

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 のどちらであるかを正しく予測することが困難です。

詳細

すべて展開する