ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

ClassificationBaggedEnsemble

パッケージ: classreg.learning.classif
スーパークラス: ClassificationEnsemble

リサンプリングにより成長させたアンサンブル分類

説明

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

構築

バギングされたアンサンブル分類オブジェクトを作成するには、fitcensemble を使用します。バギング (ランダム フォレストなどのバギング) を使用するには、fitcensemble の名前と値のペアの引数 'Method''Bag' に設定します。

プロパティ

BinEdges

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

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

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

ClassNames

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

CombineWeights

ens による弱学習器の重みの結合法を説明する文字ベクトル。'WeightedSum' または 'WeightedAverage' のどちらかになります。

ExpandedPredictorNames

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

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

FitInfo

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

FitInfoDescription

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

FResample

0 から 1 までの数値のスカラー。FResample は、アンサンブルの構築時に、すべての弱学習器のために無作為にリサンプリングされた学習データ fitcensemble です。

HyperparameterOptimizationResults

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

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

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

Method

ens を作成する方法を表す文字ベクトル。

ModelParameters

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

NumTrained

ens の学習済みの弱学習器の数、スカラー。

PredictorNames

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

ReasonForTermination

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

Replace

アンサンブルが復元抽出 (true) または非復元抽出 (false) のどちらで学習したかを示す論理値。

ResponseName

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

ScoreTransform

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

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

ens.ScoreTransform = 'function'

または

ens.ScoreTransform = @function

Trained

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

TrainedWeights

ens の弱学習器のための学習済み重みを表す数値ベクトル。 TrainedWeights には T 個の要素があり、Tlearners の弱学習器の数を表します。

UseObsForLearner

NNumTrained 列の logical 行列。N は学習データに含まれている観測値の個数、NumTrained は学習済みの弱学習器の個数です。UseObsForLearner(I,J) は、観測値 I を学習器 J の学習に使用した場合は true、それ以外の場合は false になります。

W

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

X

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

Y

X と同じ行数の categorical 配列、文字ベクトルの cell 配列、文字配列、logical ベクトルまたは数値ベクトル。Y の各行は、X の対応する行の分類を表します。

メソッド

oobEdgeout-of-bag 分類エッジ
oobLossout-of-bag 分類誤差
oobMarginout-of-bag 分類マージン
oobPermutedPredictorImportance分類木のランダム フォレストに対する out-of-bag 予測子の並べ替えによる予測子の重要度の推定
oobPredictアンサンブルの out-of-bag 応答を予測する

継承メソッド

compactコンパクトなアンサンブル分類
crossval交差検証を使用したアンサンブル
resubEdge再代入による分類エッジ
resubLoss再置換による分類誤差
resubMargin再代入による分類マージン
resubPredict分類モデルのアンサンブル内の観測値を分類
resume学習アンサンブルの再開
edge分類エッジ
loss分類誤差
margin分類マージン
predict分類モデルのアンサンブルを使用して観測値を分類
predictorImportance予測子の重要度の推定
removeLearnersコンパクトアンサンブル分類のメンバーの削除

コピーのセマンティクス

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

すべて折りたたむ

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

load ionosphere

すべての測定値を使用して、100 本の分類木があるバギングされたアンサンブルに学習をさせることができます。

Mdl = fitcensemble(X,Y,'Method','Bag')

'Method''Bag' である場合、fitcensemble は既定の木テンプレート オブジェクト templateTree() を弱学習器として使用します。この例では、再現性を得るため、木テンプレート オブジェクトを作成するときに 'Reproducible',true を指定し、このオブジェクトを弱学習器として使用します。

rng('default') % For reproducibility
t = templateTree('Reproducible',true); % For reproducibiliy of random predictor selections
Mdl = fitcensemble(X,Y,'Method','Bag','Learners',t)
Mdl = 
  classreg.learning.classif.ClassificationBaggedEnsemble
             ResponseName: 'Y'
    CategoricalPredictors: []
               ClassNames: {'b'  'g'}
           ScoreTransform: 'none'
          NumObservations: 351
               NumTrained: 100
                   Method: 'Bag'
             LearnerNames: {'Tree'}
     ReasonForTermination: 'Terminated normally after completing the requested number of training cycles.'
                  FitInfo: []
       FitInfoDescription: 'None'
                FResample: 1
                  Replace: 1
         UseObsForLearner: [351x100 logical]


  Properties, Methods

MdlClassificationBaggedEnsemble モデル オブジェクトです。

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

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

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

既定の設定では、fitcensemble はバギングされたアンサンブルに対して深い決定木を成長させます。

標本内誤分類率を推定します。

L = resubLoss(Mdl)
L = 0

L は、学習データの分類について Mdl が完璧であることを示す 0 です。

ヒント

分類木のバギングされたアンサンブルの場合、ensTrained プロパティには ens.NumTrained 個の CompactClassificationTree モデル オブジェクトが含まれている cell ベクトルが格納されます。cell ベクトルの木 t をテキストまたはグラフィックで表示するには、次のように入力します。

view(ens.Trained{t})

拡張機能

R2011a で導入