Main Content

ClassificationPartitionedEnsemble

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

交差検証アンサンブル分類

説明

ClassificationPartitionedEnsemble は、交差検証の学習アンサンブルで学習を行ったアンサンブル分類のセットです。次のうち 1 つ以上の kfold メソッドを使用した交差検証により、分類の品質を評価します。それらは kfoldPredictkfoldLosskfoldMarginkfoldEdge および kfoldfun です。

すべての "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 = fitcensemble(X,Y,Name,Value) は、Name'CrossVal''KFold''Holdout''Leaveout'、または 'CVPartition' の 1 つである場合、交差検証アンサンブルを作成します。構文の詳細は、fitcensemble 関数のリファレンス ページを参照してください。

プロパティ

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

ClassNames

重複が削除された Y の要素のリスト。ClassNames には、数値ベクトル、カテゴリカル変数のベクトル、logical ベクトル、文字配列、文字ベクトルの cell 配列のいずれかを指定できます。ClassNames は、引数 Y のデータと同じデータ型です。(string 配列は文字ベクトルの cell 配列として扱われます)。

Combiner

すべての分割を結びつける cell 配列。

Cost

正方行列。Cost(i,j) は真のクラスが i である点をクラス j に分類するコストです (行は真のクラス、列は予測したクラスに対応します)。Cost の行と列の順序は、ClassNames のクラスの順序に対応します。Cost の行および列の数は、応答に含まれている一意なクラスの数です。このプロパティは読み取り専用です。

CrossValidatedModel

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

KFold

交差検証アンサンブルで使用される分割数、正の整数値。

ModelParameters

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

NumObservations

アンサンブル学習に使用されるデータ点の数、正の整数値。

NumTrainedPerFold

アンサンブルの各部分の学習に使用される弱学習器の数、正の整数値。

Partition

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

PredictorNames

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

Prior

各クラスの事前確率の数値ベクトル。Prior の要素の順序は、ClassNames のクラスの順序に対応します。Prior の要素数は、応答に含まれている一意なクラスの数です。このプロパティは読み取り専用です。

ResponseName

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

ScoreTransform

スコア変換用の関数ハンドル、または組み込みの変換関数を表す文字ベクトル。'none' は変換なしを意味します。等価的には、'none'@(x)x です。組み込みの変換関数のリストとカスタム変換関数の構文は、fitctree を参照してください。

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

ens.ScoreTransform = 'function'

または

ens.ScoreTransform = @function

Trainable

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

Trained

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

W

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

X

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

Y

数値ベクトル、categorical ベクトル、logical ベクトル、文字配列、または文字ベクトルの cell 配列。Y の各行は、X の対応する行のデータに対する応答です。

オブジェクト関数

gatherGPU からの Statistics and Machine Learning Toolbox オブジェクトのプロパティの収集
kfoldEdge交差検証済み分類モデルの分類エッジ
kfoldLoss交差検証済み分類モデルの分類損失
kfoldMargin交差検証済み分類モデルの分類マージン
kfoldPredict交差検証済み分類モデルの観測値の分類
kfoldfun分類での関数の交差検証
resume交差検証分割における学習器の学習の再開

コピーのセマンティクス

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

すべて折りたたむ

フィッシャーのアヤメのデータをモデル化したアンサンブル分類について、k 分割交差検証誤差を評価します。

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

load fisheriris

AdaBoostM2 を使用して 100 本のブースティング分類木のアンサンブルに学習をさせます。

t = templateTree('MaxNumSplits',1); % Weak learner template tree object
ens = fitcensemble(meas,species,'Method','AdaBoostM2','Learners',t);

ens から交差検証済みのアンサンブルを作成し、k 分割交差検証誤差を求めます。

rng(10,'twister') % For reproducibility
cvens = crossval(ens);
L = kfoldLoss(cvens)
L = 0.0533

拡張機能

バージョン履歴

すべて展開する

R2022a での動作変更