このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
cvloss
交差検証による回帰誤差
構文
説明
例
交差検証誤差の計算
既定の回帰木について交差検証誤差を計算します。
carsmall
データセットを読み込みます。Displacement
、Horsepower
および Weight
が応答 MPG
の予測子であると考えます。
load carsmall
X = [Displacement Horsepower Weight];
データセット全体を使用して回帰木を成長させます。
Mdl = fitrtree(X,MPG);
交差検証誤差を計算します。
rng(1); % For reproducibility
E = cvloss(Mdl)
E = 27.6976
E
は、(分割内のテスト観測値の個数で重みを付けた) 10 分割の加重平均 MSE です。
交差検証による最適な枝刈りレベルの探索
k 分割の交差検証を適用して、すべての部分木について最適な回帰木の枝刈りレベルを探索します。
carsmall
データセットを読み込みます。Displacement
、Horsepower
および Weight
が応答 MPG
の予測子であると考えます。
load carsmall
X = [Displacement Horsepower Weight];
データセット全体を使用して回帰木を成長させます。生成された木を表示します。
Mdl = fitrtree(X,MPG);
view(Mdl,Mode="graph")
最下位から 2 つおよび最上位の枝刈りレベルを除き、部分木ごとに 5 分割の交差検証誤差を計算します。すべての部分木で最適な枝刈りレベルを返すように指定します。
rng(1); % For reproducibility
m = max(Mdl.PruneList) - 1
m = 15
[~,~,~,bestLevel] = cvloss(Mdl,SubTrees=2:m,KFold=5)
bestLevel = 14
15
個の枝刈りレベルの中で、最適な枝刈りレベルは 14
です。
最適なレベルまで木を枝刈りします。生成された木を表示します。
MdlPrune = prune(Mdl,Level=bestLevel);
view(MdlPrune,Mode="graph")
入力引数
tree
— 学習済みの回帰木
RegressionTree
オブジェクト
学習済みの回帰木。関数 fitrtree
を使用して作成した RegressionTree
オブジェクトとして指定します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
例: E = cvloss(tree,Subtrees="all")
は、すべての部分木を枝刈りします。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: E = cvloss(tree,"Subtrees","all")
は、すべての部分木を枝刈りします。
Subtrees
— 枝刈りレベル
0
(既定値) | 非負の整数のベクトル | "all"
枝刈りレベル。昇順の非負の整数のベクトルまたは "all"
として指定します。
ベクトルを指定する場合、すべての要素が 0
から max(tree.PruneList)
の範囲になければなりません。0
は枝刈りしない完全な木を、max(tree.PruneList)
は完全に枝刈りした木 (つまり、ルート ノードのみ) を表します。
"all"
を指定した場合、cvloss
はすべての部分木 (つまり、枝刈り順序全体) に作用します。これは、0:max(tree.PruneList)
を指定することと同じです。
cvloss
では、Subtrees
で指定された各レベルまで tree
の枝刈りを行ってから、対応する出力引数を推定します。Subtrees
のサイズにより、一部の出力引数のサイズが決まります。
Subtrees
を呼び出すために、tree
の PruneList
プロパティまたは PruneAlpha
プロパティを空にすることはできません。言い換えると、Prune="on"
を設定して tree
を成長させるか、prune
を使用して tree
の枝刈りを行います。
例: Subtrees="all"
データ型: single
| double
| char
| string
TreeSize
— 木のサイズ
"se"
(既定値) | "min"
木のサイズ。次のいずれかを指定します。
"se"
— 関数cvloss
は、コストが最小コストの 1 標準誤差以内になる最小の木を使用します。"min"
— 関数cvloss
は最小コストの木を使用します。
例: TreeSize="min"
KFold
— 分割の数
10
(既定値) | 1 より大きい正の整数
交差検証木で使用する分割の数。1 より大きい正の整数として指定します。
例: KFold=8
出力引数
代替方法
crossval
を使用して交差検証木のモデルを作成し、cvloss
の代わりに kfoldLoss
を呼び出すことができます。交差検証を行った木を複数回調べる場合、この代替方法では時間が節約できる可能性があります。
ただし、cvloss
と異なり、kfoldLoss
は SE
、Nleaf
、または BestLevel
を返しません。
拡張機能
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)