Main Content

RegressionPartitionedModel

パッケージ: classreg.learning.partition

交差検証済みの回帰モデル

説明

RegressionPartitionedModel は、交差検証の学習集合で学習を行った回帰モデルのセットです。次のうち 1 つ以上の kfold メソッドを使用した交差検証により、回帰の品質を評価します。kfoldPredictkfoldLosskfoldfun です。すべての "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 によって、実際の観測値なしで学習したモデルを使用して計算されます。

構築

CVMdl = crossval(Mdl) は、回帰モデル (Mdl) から交差検証済みの回帰モデルを作成します。

あるいは、

  • CVNetMdl = fitrnet(X,Y,Name,Value)

  • CVTreeMdl = fitrtree(X,Y,Name,Value)

Name'CrossVal''KFold''Holdout''Leaveout'、または 'CVPartition' である場合、交差検証されたモデルを作成します。構文の詳細については、fitrnet および fitrtree を参照してください。

入力引数

Mdl

回帰モデル。次のいずれかを指定します。

  • fitrnet を使用して学習させたニューラル ネットワーク回帰モデル

  • fitrtree を使用して学習させた回帰木

プロパティ

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 には、カテゴリカル予測子が含まれている予測子データの列に対応するインデックス値が格納されます。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。

CrossValidatedModel

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

Kfold

交差検証済みモデルで使用される分割数。正の整数。

ModelParameters

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

NumObservations

X および Y に格納されている学習データ内の観測値の個数。数値スカラーを指定します。

Partition

交差検証済みモデルに使用されるクラス cvpartition の分割。

PredictorNames

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

ResponseName

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

ResponseTransform

生の応答値 (平均二乗誤差) を変換するための関数ハンドル。関数ハンドルは、応答値の行列を受け入れ、同じサイズの行列を返さなければなりません。既定の文字ベクトル 'none'@(x)x、つまり変換なしを表します。

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

CVMdl.ResponseTransform = @function

Trained

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

W

スケーリングされた weights。長さ n のベクトル、X の観測値の数。

X

予測子の値の行列または table。

Y

数値列ベクトル。Y の各エントリは、X で該当する観測の応答値です。

オブジェクト関数

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

コピーのセマンティクス

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

すべて折りたたむ

標本データを読み込みます。Horsepower および Weight データを格納する変数 X を作成します。

load carsmall
X = [Horsepower Weight];

標本データを使用して回帰木を構築します。

cvtree = fitrtree(X,MPG,'crossval','on');

Horsepower および Weight を燃費の予測子変数 (MPG) として使用し、carsmall データの交差検証誤差を評価します。

L = kfoldLoss(cvtree)
L = 25.5338

拡張機能