このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
RegressionEnsemble
アンサンブル回帰
説明
RegressionEnsemble
は、学習済みの弱学習器モデルのセット、およびそれらの学習器が学習を行ったデータを結合します。この関数では、弱学習器からの予測を集約することにより、新しいデータに対するアンサンブル応答を予測できます。
作成
説明
アンサンブル回帰オブジェクトを作成するには、fitrensemble
を使用します。
プロパティ
BinEdges
— 数値予測子のビンのエッジ
p 個の数値ベクトルの cell 配列
この プロパティ は読み取り専用です。
数値予測子のビンのエッジ。p 個の数値ベクトルが含まれている cell 配列を指定します。p は予測子の個数です。各ベクトルには、数値予測子のビンのエッジを含めます。カテゴリカル予測子はビン化されないので、カテゴリカル予測子の場合は、この cell 配列の要素を空にします。
数値予測子がビン化されるのは、木学習器を使用してモデルに学習をさせるときに名前と値の引数 'NumBins'
として正の整数スカラーを指定した場合だけです。'NumBins'
の値が空 (既定) である場合、BinEdges
プロパティは空になります。
学習済みモデル mdl
の BinEdges
プロパティを使用することにより、ビン化された予測子データ Xbinned
を再現できます。
X = mdl.X; % Predictor data
Xbinned = zeros(size(X));
edges = mdl.BinEdges;
% Find indices of binned predictors.
idxNumeric = find(~cellfun(@isempty,edges));
if iscolumn(idxNumeric)
idxNumeric = idxNumeric';
end
for j = idxNumeric
x = X(:,j);
% Convert x to array if x is a table.
if istable(x)
x = table2array(x);
end
% Group x into bins by using the discretize
function.
xbinned = discretize(x,[-inf; edges{j}; inf]);
Xbinned(:,j) = xbinned;
end
Xbinned
に格納されます。カテゴリカル予測子の場合、Xbinned
の値は 0 になります。X
に NaN
が含まれている場合、対応する Xbinned
の値は NaN
になります。
CategoricalPredictors
— カテゴリカル予測子のインデックス
正の整数のベクトル | []
この プロパティ は読み取り専用です。
カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。CategoricalPredictors
には、対応する予測子がカテゴリカルであることを示すインデックス値が格納されます。インデックス値の範囲は 1 ~ p
です。p
はモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]
) になります。
データ型: single
| double
CombineWeights
— アンサンブルでの弱学習器の重みの結合方法
'WeightedAverage'
| 'WeightedSum'
この プロパティ は読み取り専用です。
アンサンブルでの弱学習器の重みの結合方法。'WeightedAverage'
または 'WeightedSum'
のいずれかとして返されます。
データ型: char
ExpandedPredictorNames
— 展開された予測子名
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
展開された予測子名。文字ベクトルの cell 配列として返されます。
モデルがカテゴリカル変数用のエンコーディングを使用している場合、ExpandedPredictorNames
には展開された変数を表す名前が格納されます。それ以外の場合、ExpandedPredictorNames
は PredictorNames
と同じです。
データ型: cell
FitInfo
— 当てはめの情報
数値配列
当てはめの情報。数値配列として返されます。FitInfoDescription
プロパティは、この配列の内容を記述します。
データ型: double
FitInfoDescription
— FitInfo
の情報の説明
文字ベクトル | 文字ベクトルの cell 配列
FitInfo
の情報の説明。文字ベクトルまたは文字ベクトルの cell 配列として返されます。
データ型: char
| cell
HyperparameterOptimizationResults
— ハイパーパラメーターの交差検証最適化の説明
BayesianOptimization
オブジェクト | ハイパーパラメーターおよび関連する値のテーブル
この プロパティ は読み取り専用です。
ハイパーパラメーターの交差検証最適化の説明。BayesianOptimization
オブジェクト、またはハイパーパラメーターと関連する値の table として返されます。作成時に名前と値のペア OptimizeHyperparameters
が空ではない場合、これは空ではありません。値は、作成時の名前と値のペア HyperparameterOptimizationOptions
の設定によって決まります。
'bayesopt'
(既定) —BayesianOptimization
クラスのオブジェクト'gridsearch'
または'randomsearch'
— 使用したハイパーパラメーター、観測された目的関数の値(交差検証損失)、および最低 (最良) から最高 (最悪) までの観測値の順位が格納されているテーブル
LearnerNames
— アンサンブル内の弱学習器の名前
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
アンサンブル内の弱学習器の名前。文字ベクトルの cell 配列として返されます。各学習器の名前は一度だけ現れます。たとえば、ツリーが 100 本のアンサンブルの場合は、LearnerNames
は {'Tree'}
になります。
データ型: cell
Method
— アンサンブルの作成方法
文字ベクトル
fitrensemble
がアンサンブルの作成に使用する方法。文字ベクトルとして返されます。
データ型: char
ModelParameters
— アンサンブルの学習に使用されるパラメーター
EnsembleParams
オブジェクト
アンサンブルの学習に使用されるパラメーター。EnsembleParams
オブジェクトとして返されます。ModelParameters
のプロパティには、アンサンブルのタイプ ('classification'
または 'regression'
のいずれか)、アンサンブルの作成に使用される Method
、およびその他のアンサンブルに応じたパラメーターが含まれます。
NumObservations
— 学習データに含まれている観測値の数
正の整数
この プロパティ は読み取り専用です。
学習データ内の観測値の数。正の整数として返されます。入力データまたは応答データに欠損値がある場合、NumObservations
は入力データの行数よりも少なくなることがあります。
データ型: double
NumTrained
— 学習済み弱学習器の数
正の整数
この プロパティ は読み取り専用です。
アンサンブル内の学習済み弱学習器の数。正の整数として返されます。
データ型: double
PredictorNames
— 予測子名
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
予測子名。文字ベクトルの cell 配列を指定します。PredictorNames
のエントリの順序は学習データと同じになります。
データ型: cell
ReasonForTermination
— fitrensemble
がアンサンブルへの弱学習器の追加を停止した理由
文字ベクトル
Regularization
— アンサンブルに regularize
を使用した結果
構造体
アンサンブルに regularize
メソッドを使用した結果。構造体として返されます。Regularization
とともに shrink
を使用して、再代入誤差を削減し、アンサンブルを縮小します。
データ型: struct
ResponseName
— 応答変数の名前
文字ベクトル
この プロパティ は読み取り専用です。
応答変数の名前。文字ベクトルとして返されます。
データ型: char
ResponseTransform
— 生の応答値を変換するための関数
'none'
(既定値) | 関数ハンドル | 関数名
生の応答値を変換するための関数。関数ハンドルまたは関数名として指定します。既定の設定は 'none'
です。これは @(y)y
、つまり変換なしを表します。関数ハンドルは、ベクトル (元の応答値) を受け入れて同じサイズのベクトル (変換した応答値) を返さなければなりません。
例: myfunction = @(y)exp(y)
を使用して、指数変換を入力ベクトルに適用する関数のハンドルを作成するとします。この場合、応答変換として 'ResponseTransform',myfunction
を指定できます。
データ型: char
| string
| function_handle
Trained
— 学習済みの回帰モデル
cell ベクトル
学習済みの回帰モデル。cell ベクトルとして返されます。対応するコンパクトな回帰モデルが cell ベクトルのエントリに格納されます。
Method
が 'LogitBoost'
または 'GentleBoost'
の場合、アンサンブルは Trained{j}
に格納されているオブジェクトの CompactRegressionLearner
プロパティに学習済み学習器 j
を格納します。つまり、学習済み学習器 j
にアクセスするには、ens.Trained{j}.CompactRegressionLearner
を使用します。
データ型: cell
TrainedWeights
— 学習済み弱学習器の重み
数値ベクトル
この プロパティ は読み取り専用です。
アンサンブル内の弱学習器の学習済みの重み。数値ベクトルとして返されます。TrainedWeights
には T
個の要素が含まれます。ここで、T
は learners
の弱学習器の数です。アンサンブルは、学習器からの重み付き予測を集約することによって、予測される応答を計算します。
データ型: double
W
— ツリー内のスケーリングされた重み
数値ベクトル
この プロパティ は読み取り専用です。
tree
内のスケーリングされた重み。数値ベクトルとして返されます。W
の長さは n
(学習データの行数) です。
データ型: double
X
— 予測子の値
実数行列 | テーブル
この プロパティ は読み取り専用です。
予測子の値。実数行列または table として返されます。X
の各列が 1 つの変数 (予測子) を表し、各行が 1 つの観測値を表します。
データ型: double
| table
Y
— 行の分類
categorical 配列 | 文字ベクトルの cell 配列 | 文字配列 | logical ベクトル | 数値ベクトル
この プロパティ は読み取り専用です。
X
の行に対応する行の分類。categorical 配列、文字ベクトルの cell 配列、文字配列、logical ベクトル、または数値ベクトルとして返されます。Y
の各行は、X
の対応する行の分類を表します。
データ型: single
| double
| logical
| char
| string
| cell
| categorical
オブジェクト関数
compact | アンサンブル回帰モデルのサイズの縮小 |
crossval | 機械学習モデルの交差検証 |
cvshrink | アンサンブル回帰の枝刈りと正則化の交差検証 |
gather | GPU からの Statistics and Machine Learning Toolbox オブジェクトのプロパティの収集 |
lime | Local Interpretable Model-agnostic Explanations (LIME) |
loss | アンサンブル回帰モデルの回帰誤差 |
partialDependence | 部分依存の計算 |
plotPartialDependence | 部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成 |
predict | Predict responses using regression ensemble model |
predictorImportance | 決定木の回帰アンサンブルに関する予測子の重要度の推定 |
regularize | アンサンブル回帰から学習器に最適な重みを特定する |
removeLearners | コンパクト アンサンブル回帰のメンバーの削除 |
resubLoss | アンサンブル回帰モデルの再代入損失 |
resubPredict | 再代入によるアンサンブル回帰の応答の予測 |
resume | アンサンブル回帰モデルの学習の再開 |
shapley | シャープレイ値 |
shrink | Prune regression ensemble |
例
ブースティング回帰アンサンブルの学習
carsmall
データ セットを読み込みます。重量 (Weight
) と気筒数 (Cylinders
) を使用して自動車の燃費 (MPG
) を説明するモデルを考えます。
load carsmall
X = [Weight Cylinders];
Y = MPG;
LSBoost
法を使用して、100 本の回帰木があるブースティング アンサンブルに学習をさせます。Cylinders
がカテゴリカル変数であることを指定します。
Mdl = fitrensemble(X,Y,'Method','LSBoost',... 'PredictorNames',{'W','C'},'CategoricalPredictors',2)
Mdl = RegressionEnsemble PredictorNames: {'W' 'C'} ResponseName: 'Y' CategoricalPredictors: 2 ResponseTransform: 'none' NumObservations: 94 NumTrained: 100 Method: 'LSBoost' LearnerNames: {'Tree'} ReasonForTermination: 'Terminated normally after completing the requested number of training cycles.' FitInfo: [100x1 double] FitInfoDescription: {2x1 cell} Regularization: []
Mdl
は、学習データも含まれている RegressionEnsemble
モデル オブジェクトです。
Mdl.Trained
は、アンサンブルを構成する学習済みの回帰木 (CompactRegressionTree
モデル オブジェクト) の 100 行 1 列の cell ベクトルが格納されているプロパティです。
1 番目の学習済み回帰木のグラフをプロットします。
view(Mdl.Trained{1},'Mode','graph')
既定の設定では、fitrensemble
は木のブースティング アンサンブルに対して浅い木を成長させます。
気筒数が 4、6、8 である 4,000 ポンドの自動車の燃費を予測します。
XNew = [4000*ones(3,1) [4; 6; 8]]; mpgNew = predict(Mdl,XNew)
mpgNew = 3×1
19.5926
18.6388
15.4810
ヒント
回帰木のアンサンブルの場合、Trained
プロパティには ens.NumTrained
個の CompactRegressionTree
モデル オブジェクトの cell ベクトルが格納されます。cell ベクトルの木 t
をテキストまたはグラフィックで表示するには、次のように入力します。
view(ens.Trained{t})
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
関数
predict
はコード生成をサポートします。Simulink® にアンサンブルの予測を統合するには、Statistics and Machine Learning Toolbox™ ライブラリにある RegressionEnsemble Predict ブロックを使用するか、MATLAB® Function ブロックを関数
predict
と共に使用します。fitrensemble
を使用してアンサンブルに学習させる場合、以下の制限が適用されます。名前と値の引数
ResponseTransform
の値を無名関数にすることはできません。回帰木に対するコード生成の制限が回帰木のアンサンブルにも適用されます。代理分岐は使用できません。つまり、名前と値の引数
Surrogate
の値は'off'
でなければなりません。
固定小数点コードの生成では、以下の追加制限が適用されます。
fitrensemble
を使用してアンサンブルに学習させる場合、名前と値の引数ResponseTransform
の値は'none'
(既定の設定) でなければなりません。カテゴリカル予測子 (
logical
、categorical
、char
、string
、またはcell
) はサポートされません。名前と値の引数CategoricalPredictors
は使用できません。カテゴリカル予測子をモデルに含めるには、モデルを当てはめる前にdummyvar
を使用してカテゴリカル予測子を前処理します。
詳細は、コード生成の紹介を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
次のオブジェクト関数は GPU 配列を完全にサポートしています。
次のオブジェクト関数は GPU 配列のサポートに制限があります。
オブジェクト関数は次のいずれかに該当する場合に GPU で実行されます。
モデルが GPU 配列を使用して当てはめられている。
オブジェクト関数に渡す予測子データが 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)