Main Content

RegressionPartitionedEnsemble

パッケージ: classreg.learning.partition
スーパークラス: RegressionPartitionedModel

交差検証したアンサンブル回帰

説明

RegressionPartitionedEnsemble は、交差検証の学習アンサンブルで学習を行ったアンサンブル回帰のセットです。次のうち 1 つ以上の kfold メソッドを使用した交差検証により、分類の品質を評価します。kfoldfunkfoldLoss、または kfoldPredict。すべての "kfold" メソッドでは、学習用データの観測値で学習したモデルを使用して、学習用データにはない観測値に対する応答を予測します。たとえば、データを 5 つに分割して交差検証を行うとします。その場合、学習用データには常にデータのおよそ 4/5 が含まれることになり、検定用データにはおよそ 1/5 が含まれます。Trained{1} に保存された最初のモデルは、最初の 1/5 が除外された XY で学習を行い、Trained{2} に保存された 2 番目のモデルは、2 番目の 1/5 が除外された XY で学習を行います。kfoldPredict を呼び出すとき、最初のモデルを使用してデータの最初の 1/5 に対する予測を計算し、2 番目のモデルを使用して 2 番目の 1/5 に対する予測を計算する、というように処理を続けます。つまり、すべての観測値に対する応答は、kfoldPredict によって、実際の観測値なしで学習したモデルを使用して計算されます。

構築

cvens = crossval(ens) は、アンサンブル回帰 ens から交差検証済みのアンサンブルを作成します。構文の詳細は、crossval メソッドのリファレンス ページを参照してください。

cvens = fitrensemble(X,Y,Name,Value) は、Name'crossval''kfold''holdout''leaveout'、または 'cvpartition' のいずれかである場合、交差検証済みのアンサンブルを作成します。構文の詳細は、fitrensemble 関数のリファレンス ページを参照してください。

入力引数

ens

関数 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 はモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。

CrossValidatedModel

交差検証済みモデルの名前。文字ベクトル。

Kfold

交差検証木で使用される分割数で、正の整数。

ModelParameters

tree のパラメーターを保持しているオブジェクト。

NumObservations

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

NumTrainedPerFold

Kfold 要素のベクトル。各エントリには、この交差検証分割内の学習済み学習器の数が含まれます。

Partition

交差検証アンサンブルの作成に使用されるクラス cvpartition の分割。

PredictorNames

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

ResponseName

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

ResponseTransform

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

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

ens.ResponseTransform = @function

Trainable

交差検証の学習アンサンブルで学習したアンサンブルの cell 配列。すべてのアンサンブルは完全な状態で、学習データと重みが含まれています。

Trained

交差検証の学習アンサンブルで学習したコンパクトなアンサンブルの cell 配列。

W

スケールされた weights、長さ n のベクトル、X の行の数。

X

予測子の値の行列または table。X の各列が 1 つの変数を表し、各行が 1 つの観測値を表します。

Y

X と同じ行数の数値列ベクトル。Y の各エントリは X の対応する行のデータに対する応答です。

オブジェクト関数

gatherGPU からの Statistics and Machine Learning Toolbox オブジェクトのプロパティの収集
kfoldLoss交差検証された分割済みの回帰モデルの損失
kfoldPredict交差検証済み回帰モデル内の観測値に対する応答の予測
kfoldfun回帰での関数の交差検証
resume学習アンサンブルの再開

コピーのセマンティクス

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

すべて折りたたむ

分割されたアンサンブル回帰を作成し、分割の交差検証損失を調べます。

carsmall データセットを読み込みます。

load carsmall;

変数のサブセットを作成します。

XX = [Cylinders Displacement Horsepower Weight];
YY = MPG;

アンサンブル モデルを作成します。

rens = fitrensemble(XX,YY);

交差検証済みのアンサンブルを rens から作成します。

rng(10,'twister') % For reproducibility
cvrens = crossval(rens);

交差検証損失を確認します。

L = kfoldLoss(cvrens,'mode','individual')
L = 10×1

   21.4489
   48.4388
   28.2560
   17.5354
   29.9441
   49.5254
   51.2372
   31.0152
   31.6388
    8.9607

L は、アンサンブル内の学習済み学習器のそれぞれに対する交差検証損失が格納されているベクトルです。

拡張機能