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
で指定された各レベルまで tree
の枝刈りを行ってから、対応する出力引数を推定します。subtrees
のサイズにより、一部の出力引数のサイズが決まります。
関数で subtrees
を呼び出すために、tree
の PruneList
プロパティと PruneAlpha
プロパティは空以外でなければなりません。言い換えると、fitrtree
を使用するときに Prune="on"
を設定して tree
を成長させるか、prune
を使用して tree
を枝刈りすることで成長させます。
データ型: single
| double
| char
| string
出力引数
Yfit
— 予測した再代入応答の値
数値ベクトル | 数値行列
学習データについて予測した再代入応答の値。数値ベクトルまたは数値行列として返されます。Yfit
のデータ型は学習応答データ tree.Y
と同じです。
Subtrees
が数値スカラーの場合、Yfit
は数値列ベクトルとして返されます。それ以外の場合、Yfit
は m
列の行列として返されます。m
は部分木の数です。各列は、対応する部分木の予測を表します。
node
— ノード番号
数値列ベクトル | 数値行列
予測クラスのノード番号。数値列ベクトルまたは数値行列として返されます。
subtrees
がスカラーであるか指定されていない場合、resubPredict
は node
を n
行 (tree.X
と同じ行数) の数値列ベクトルとして返します。
subtrees
に m
> 1
のエントリが含まれる場合、node
は n
行 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)