Main Content

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

ClassificationBaggedEnsemble

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

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

説明

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

構築

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

プロパティ

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 には、数値ベクトル、categorical ベクトル、logical ベクトル、文字配列、文字ベクトルの cell 配列のいずれかを指定できます。ClassNames のデータ型は、引数 Y のデータ型と同じです。(string 配列は文字ベクトルの cell 配列として扱われます)。

CombineWeights

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

Cost

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

ExpandedPredictorNames

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

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

FitInfo

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

FitInfoDescription

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

FResample

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

HyperparameterOptimizationResults

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

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

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

LearnerNames

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

Method

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

ModelParameters

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

NumObservations

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

NumTrained

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

PredictorNames

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

Prior

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

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 の対応する行の分類を表します。

オブジェクト関数

compactコンパクトなアンサンブル分類
compareHoldout新しいデータを使用して 2 つの分類モデルの精度を比較
crossvalアンサンブルの交差検証
edge分類エッジ
gatherGPU からの Statistics and Machine Learning Toolbox オブジェクトのプロパティの収集
limeLocal Interpretable Model-agnostic Explanations (LIME)
loss分類誤差
margin分類マージン
oobEdgeout-of-bag 分類エッジ
oobLossout-of-bag 分類誤差
oobMarginout-of-bag 分類マージン
oobPermutedPredictorImportance分類木のランダム フォレストに対する out-of-bag 予測子の並べ替えによる予測子の重要度の推定
oobPredictアンサンブルの out-of-bag 応答を予測する
partialDependence部分依存の計算
plotPartialDependence部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成
predict分類モデルのアンサンブルを使用して観測値を分類
predictorImportance決定木の分類アンサンブルに関する予測子の重要度の推定
removeLearnersコンパクトアンサンブル分類のメンバーの削除
resubEdge再代入による分類エッジ
resubLoss再代入による分類誤差
resubMargin再代入による分類マージン
resubPredict分類モデルのアンサンブル内の観測値を分類
resume学習アンサンブルの再開
shapleyシャープレイ値
testckfold交差検証の反復により 2 つの分類モデルの精度を比較

コピーのセマンティクス

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

すべて折りたたむ

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 = 
  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')

Figure Classification tree viewer contains an axes object and other objects of type uimenu, uicontrol. The axes object contains 60 objects of type line, text. One or more of the lines displays its values using only markers

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

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

L = resubLoss(Mdl)
L = 0

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

ヒント

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

view(ens.Trained{t})

拡張機能

バージョン履歴

R2011a で導入

すべて展開する