このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
resubPredict
ツリーの再代入応答の予測
構文
説明
例
標本内 MSE の計算
carsmall
データセットを読み込みます。Displacement
、Horsepower
および Weight
が応答 MPG
の予測子であると考えます。
load carsmall
X = [Displacement Horsepower Weight];
すべての観測値を使用して回帰木を成長させます。
Mdl = fitrtree(X,MPG);
再代入の MSE を計算します。
Yfit = resubPredict(Mdl); mean((Yfit - Mdl.Y).^2)
ans = 4.8952
resubLoss
を使用すると同じ結果が得られます。
resubLoss(Mdl)
ans = 4.8952
各部分木の標本内応答の推定
carsmall
データ セットを読み込みます。Weight
が応答 MPG
の予測子であると考えます。
load carsmall
idxNaN = isnan(MPG + Weight);
X = Weight(~idxNaN);
Y = MPG(~idxNaN);
n = numel(X);
すべての観測値を使用して回帰木を成長させます。
Mdl = fitrtree(X,Y);
いくつかの枝刈りレベルで部分木の再代入の近似値を計算します。
m = max(Mdl.PruneList);
pruneLevels = 1:4:m; % Pruning levels to consider
z = numel(pruneLevels);
Yfit = resubPredict(Mdl,Subtrees=pruneLevels);
Yfit
は、当てはめた値が含まれている n
行 z
列の行列です。各行は観測値に、各列は部分木に対応しています。
Yfit
と Y
のいくつかの列を X
に対してプロットします。
sortDat = sortrows([X Y Yfit],1); % Sort all data with respect to X plot(repmat(sortDat(:,1),1,size(Yfit,2)+1),sortDat(:,2:end)) % Vectorize for efficiency lev = num2str((pruneLevels)',"Level %d MPG"); legend(["Observed MPG"; lev]) title("In-Sample Fitted Responses") xlabel("Weight (lbs)") ylabel("MPG") h = findobj(gcf); set(h(4:end),LineWidth=3) % Widen all lines
下位の枝刈りレベルでは、Yfit
の値が上位レベルよりデータに近づく傾向があります。上位の枝刈りレベルでは、X
の間隔が大きくなるのでフラットになる傾向があります。
入力引数
tree
— 回帰木
RegressionTree
オブジェクト
回帰木。関数 fitrtree
を使用して作成した RegressionTree
オブジェクトとして指定します。
subtrees
— 枝刈りレベル
0
(既定値) | 非負の整数のベクトル | "all"
枝刈りレベル。昇順の非負の整数のベクトルまたは "all"
として指定します。
ベクトルを指定する場合、すべての要素が 0
から max(tree.PruneList)
の範囲になければなりません。0
は枝刈りしない完全な木を、max(tree.PruneList)
は完全に枝刈りした木 (つまり、ルート ノードのみ) を表します。
"all"
を指定した場合、resubPredict
はすべての部分木 (つまり、枝刈り順序全体) に作用します。これは、0:max(tree.PruneList)
を指定することと同じです。
resubPredict
では、Subtrees
で指定された各レベルまで Mdl
の枝刈りを行ってから、対応する出力引数を推定します。Subtrees
のサイズにより、一部の出力引数のサイズが決まります。
Subtrees
を呼び出すために、tree
の PruneList
プロパティまたは PruneAlpha
プロパティを空にすることはできません。言い換えると、Prune="on"
を設定して tree
を成長させるか、prune
を使用して tree
の枝刈りを行います。
データ型: single
| double
| char
| string
出力引数
Yfit
— 予測した再代入応答の値
ベクトル | 行列
学習データについて予測した再代入応答の値。ベクトルまたは行列として返されます。Yfit
のデータ型は学習応答データ tree.Y
と同じです。
名前と値の引数 Subtrees
が数値スカラーの場合、Yfit
は列ベクトルとして返されます。それ以外の場合、Yfit
は m
列の行列として返されます。m
は部分木の数です。各列は、対応する部分木の予測を表します。
node
— 各データ行に関連付けられる tree
のノード数
列ベクトル | 行列
各データ行に関連付けられる tree
のノード数。数値ベクトルまたは数値行列として返されます。
名前と値の引数 Subtrees
が数値スカラーの場合、node
は n
要素の列ベクトルとして返されます。n
は tree.X
の行数です。それ以外の場合、node
はサイズが n
行 m
列の行列として返されます。m
は部分木の数です。各列は、対応するサブツリーのノード予測を表します。
拡張機能
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は、GPU 配列を完全にサポートします。詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2011a で導入
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)