Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

RegressionEnsemble

パッケージ: classreg.learning.regr
スーパークラス: CompactRegressionEnsemble

説明

RegressionEnsemble は、学習済みの弱学習器モデルのセット、およびそれらの学習器が学習を行ったデータを結合します。この関数では、弱学習器からの予測を集約することにより、新しいデータに対するアンサンブル応答を予測できます。

構築

アンサンブル回帰オブジェクトを作成するには、fitrensemble を使用します。

プロパティ

BinEdges

数値予測子のビンのエッジ。p 個の数値ベクトルが含まれている cell 配列を指定します。p は予測子の個数です。各ベクトルには、数値予測子のビンのエッジを含めます。カテゴリカル予測子はビン化されないので、カテゴリカル予測子の場合は、この cell 配列の要素を空にします。

数値予測子がビン化されるのは、木学習器を使用してモデルに学習をさせるときに名前と値の引数 'NumBins' として正の整数スカラーを指定した場合だけです。'NumBins' の値が空 (既定) である場合、BinEdges プロパティは空になります。

学習済みモデル mdlBinEdges プロパティを使用することにより、ビン化された予測子データ 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
数値予測子の場合、1 からビンの個数までの範囲にあるビンのインデックスが Xbinned に格納されます。カテゴリカル予測子の場合、Xbinned の値は 0 になります。XNaN が含まれている場合、対応する Xbinned の値は NaN になります。

CategoricalPredictors

カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。CategoricalPredictors には、対応する予測子がカテゴリカルであることを示すインデックス値が格納されます。インデックス値の範囲は 1 ~ p です。p はモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。

CombineWeights

アンサンブルが学習器の予測を結合する方法を表す文字ベクトル。

ExpandedPredictorNames

展開された予測子名。文字ベクトルの cell 配列として格納されます。

モデルがカテゴリカル変数用のエンコーディングを使用している場合、ExpandedPredictorNames には展開された変数を表す名前が格納されます。それ以外の場合、ExpandedPredictorNamesPredictorNames と同じです。

FitInfo

近似情報の数値配列。FitInfoDescription プロパティは、この配列の内容を記述します。

FitInfoDescription

配列 FitInfo の意味を表す文字ベクトル。

LearnerNames

アンサンブルに含まれている弱学習器の名前をもつ文字ベクトルの cell 配列。各学習器の名前は一度だけ現れます。たとえば、ツリーが 100 本のアンサンブルの場合は、LearnerNames{'Tree'} になります。

HyperparameterOptimizationResults

ハイパーパラメーターの交差検証最適化の説明。BayesianOptimization オブジェクト、またはハイパーパラメーターおよび関連する値が含まれているテーブルとして格納されます。作成時に名前と値のペア OptimizeHyperparameters が空ではない場合、これは空ではありません。値は、作成時の名前と値のペア HyperparameterOptimizationOptions の設定によって決まります。

  • 'bayesopt' (既定) — BayesianOptimization クラスのオブジェクト

  • 'gridsearch' または 'randomsearch' — 使用したハイパーパラメーター、観測された目的関数の値(交差検証損失)、および最低 (最良) から最高 (最悪) までの観測値の順位が格納されているテーブル

Method

fitrensemble がアンサンブル学習に使用したアルゴリズムの名前をもつ文字ベクトル。

ModelParameters

ens の学習に使用されるパラメーター。

NumObservations

学習データにある観測値の数を含む数値スカラー。

NumTrained

アンサンブル学習済みの学習器の数、正のスカラー。

PredictorNames

予測子変数の名前の cell 配列。並びは X に現れる順です。

ReasonForTermination

fitrensemble がアンサンブルへの弱学習器の追加を停止した理由を表す文字ベクトル。

Regularization

regularize メソッドの結果を含む構造体。Regularization とともに shrink を使用して、再代入誤差を削減し、アンサンブルを縮小します。

ResponseName

応答変数 Y の名前をもつ文字ベクトル。

ResponseTransform

スコア変換用の関数ハンドル、または組み込みの変換関数を表す文字ベクトル。'none' は変換なしを意味します。等価的には、'none'@(x)x です。

ドット表記を使用して関数 ResponseTransform を追加または変更します。

ens.ResponseTransform = @function

Trained

学習済みの学習器、コンパクトな回帰モデルの cell 配列。

TrainedWeights

アンサンブルが学習器に割り当てた重みの数値ベクトル。アンサンブルは、学習器からの重み付き予測を集約することによって、予測される応答を計算します。

W

スケールされた weights、長さ n のベクトル、X の行の数。W の要素の合計は 1 です。

X

アンサンブルに学習させた予測子の値の行列または table。X の各列が 1 つの変数を表し、各行が 1 つの観測値を表します。

Y

アンサンブルを学習させた X と同じ行数をもつ、数値列ベクトル。Y の各エントリは X の対応する行のデータに対する応答です。

オブジェクト関数

compactコンパクトなアンサンブル回帰の作成
crossval交差検証を使用したアンサンブル
cvshrink縮小 (枝刈り) アンサンブルの交差検証
gatherGPU からの Statistics and Machine Learning Toolbox オブジェクトのプロパティの収集
limeLocal Interpretable Model-agnostic Explanations (LIME)
loss回帰誤差
partialDependence部分従属の計算
plotPartialDependence部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成
predict回帰モデルのアンサンブルの使用による応答の予測
predictorImportance回帰アンサンブルの予測子の重要度の推定
regularize再代入誤差とペナルティー項を最小限にするための重み検索
removeLearnersコンパクト アンサンブル回帰のメンバーの削除
resubLoss再代入による回帰誤差
resubPredict再代入によるアンサンブル応答の予測
resume学習アンサンブルの再開
shapleyシャープレイ値
shrinkアンサンブルでの枝刈り

コピーのセマンティクス

値。値のクラスがコピー操作に与える影響については、オブジェクトのコピーを参照してください。

すべて折りたたむ

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: []


  Properties, Methods

Mdl は、学習データも含まれている RegressionEnsemble モデル オブジェクトです。

Mdl.Trained は、アンサンブルを構成する学習済みの回帰木 (CompactRegressionTree モデル オブジェクト) の 100 行 1 列の cell ベクトルが格納されているプロパティです。

1 番目の学習済み回帰木のグラフをプロットします。

view(Mdl.Trained{1},'Mode','graph')

{"String":"Figure Regression tree viewer contains an axes object and other objects of type uimenu, uicontrol. The axes object contains 36 objects of type line, text.","Tex":[],"LaTex":[]}

既定の設定では、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})

拡張機能

バージョン履歴

R2011a で導入