メインコンテンツ

ClassificationEnsemble

アンサンブル分類器

説明

ClassificationEnsemble は、学習済みの弱学習器モデルのセット、およびそれらの学習器が学習を行ったデータを結合します。このオブジェクトでは、弱学習器からの予測を集約することにより、新しいデータに対するアンサンブル応答を予測できます。学習に使用したデータが格納されているため、再代入予測を計算でき、必要に応じて学習を再開することもできます。

作成

アンサンブル分類オブジェクト (ens) の作成には fitcensemble を使用します。

プロパティ

すべて展開する

アンサンブルのプロパティ

この プロパティ は読み取り専用です。

弱学習器の重みの結合に使用された方法。'WeightedAverage' または 'WeightedSum' のいずれかとして返されます。

データ型: char

この プロパティ は読み取り専用です。

当てはめの情報。数値配列として返されます。FitInfoDescription プロパティは、この配列の内容を記述します。

データ型: double

この プロパティ は読み取り専用です。

FitInfo の情報の説明。文字ベクトルまたは文字ベクトルの cell 配列として返されます。

データ型: char | cell

この プロパティ は読み取り専用です。

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

データ型: cell

この プロパティ は読み取り専用です。

fitcensemble でアンサンブルの作成に使用された方法。文字ベクトルとして返されます。

データ型: char

この プロパティ は読み取り専用です。

アンサンブルの学習に使用されるパラメーター。EnsembleParams オブジェクトとして返されます。ModelParameters のプロパティには、アンサンブルのタイプ ('classification' または 'regression' のいずれか)、アンサンブルの作成に使用される Method、およびその他のアンサンブルに応じたパラメーターが含まれます。

この プロパティ は読み取り専用です。

アンサンブル内の学習済み弱学習器の数。正の整数として返されます。

データ型: double

この プロパティ は読み取り専用です。

fitcensemble 関数がアンサンブルへの弱学習器の追加を停止した理由。文字ベクトルとして返されます。

データ型: char

この プロパティ は読み取り専用です。

学習済み弱学習器。cell ベクトルとして返されます。対応するコンパクトな分類モデルが cell ベクトルのエントリに格納されます。

データ型: cell

この プロパティ は読み取り専用です。

学習済み弱学習器の重み。数値ベクトルとして返されます。TrainedWeights には NumTrained 個の要素が含まれます。ここで、NumTrained はアンサンブル内の弱学習器の数です。アンサンブルは、学習器からの重み付き予測を集約することによって、予測される応答を計算します。

データ型: double

学習器 j で予測子 i が使用されていることを示すインジケーター。PNumTrained 列のサイズの logical 行列として返されます。ここで、P は学習データ内の予測子 (列) の数です。UsePredForLearner(i,j) は、学習器 j で予測子 i が使用されている場合は true、それ以外の場合は false になります。それぞれの学習器で、予測子の順序は学習データにおける列の順序と同じになります。

アンサンブルのタイプが Subspace でない場合、UsePredForLearner のエントリはすべて true になります。

データ型: logical

予測子のプロパティ

この プロパティ は読み取り専用です。

数値予測子のビンのエッジ。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 になります。

データ型: cell

この プロパティ は読み取り専用です。

カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。CategoricalPredictors には、対応する予測子がカテゴリカルであることを示すインデックス値が格納されます。インデックス値の範囲は 1 ~ p です。p はモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。

データ型: single | double

この プロパティ は読み取り専用です。

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

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

データ型: cell

この プロパティ は読み取り専用です。

予測子名。文字ベクトルの cell 配列を指定します。PredictorNames のエントリの順序は学習データと同じになります。

データ型: cell

この プロパティ は読み取り専用です。

予測子の値。実数行列または table として返されます。X の各列が 1 つの変数 (予測子) を表し、各行が 1 つの観測値を表します。

データ型: double | table

応答のプロパティ

この プロパティ は読み取り専用です。

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

データ型: double | logical | char | cell | categorical

この プロパティ は読み取り専用です。

応答変数の名前。文字ベクトルとして返されます。

データ型: char

この プロパティ は読み取り専用です。

X の観測値に対応するクラス ラベル。categorical 配列、文字ベクトルの cell 配列、文字配列、logical ベクトル、または数値ベクトルとして返されます。Y の各行は、X の対応する行の分類を表します。

データ型: single | double | logical | char | string | cell | categorical

その他のデータのプロパティ

この プロパティ は読み取り専用です。

ハイパーパラメーターの交差検証最適化の説明。BayesianOptimization オブジェクト、またはハイパーパラメーターと関連する値の table として返されます。モデルを作成するときに名前と値の引数 OptimizeHyperparameters が空以外であった場合、このプロパティは空以外になります。HyperparameterOptimizationResults の値は、モデル作成時の HyperparameterOptimizationOptionsOptimizer オプションの設定に依存します。

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

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

この プロパティ は読み取り専用です。

学習データ内の観測値の数。正の整数として返されます。入力データまたは応答データに欠損値がある場合、NumObservations は入力データの行数よりも少なくなることがあります。

データ型: double

この プロパティ は読み取り専用です。

当てはめに使用される元の予測子データ X の行。n 要素の logical ベクトルとして返されます。ここで、nX の行数です。オブジェクトの作成に X のすべての行を使用する場合、RowsUsed は空の配列 ([]) になります。

データ型: logical

この プロパティ は読み取り専用です。

アンサンブル内のスケーリングされた重み。数値ベクトルとして返されます。W の長さは n (学習データの行数) です。W の要素の合計は 1 です。

データ型: double

他の分類のプロパティ

この プロパティ は読み取り専用です。

誤分類コスト。正方数値行列として返されます。Cost には K 個の行および列が含まれ、K はクラスの数です。

Cost(i,j) は、真のクラスが i である点をクラス j に分類するコストです。Cost の行と列の順序は、ClassNames のクラスの順序に対応します。

データ型: double

この プロパティ は読み取り専用です。

各クラスの事前確率。K 要素の数値ベクトルとして返されます。ここで、K は応答内の一意のクラスの数です。Prior の要素の順序は、ClassNames のクラスの順序に対応します。

データ型: double

スコアを変換するための関数。関数ハンドルまたは組み込みの変換関数の名前として指定します。"none" は変換なしを意味します。つまり、"none"@(x)x と同じ意味になります。組み込みの変換関数の一覧とカスタム変換関数の構文については、ScoreTransform (ツリー) または ScoreTransform (アンサンブル) を参照してください。

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

Mdl.ScoreTransform = "function"
% or
Mdl.ScoreTransform = @function

データ型: char | string | function_handle

オブジェクト関数

compact機械学習モデルのサイズの縮小
compareHoldout新しいデータを使用して 2 つの分類モデルの精度を比較
crossval機械学習モデルの交差検証
edgeアンサンブル分類モデルの分類エッジ
gatherGather properties of Statistics and Machine Learning Toolbox object from GPU
limeLocal Interpretable Model-agnostic Explanations (LIME)
lossアンサンブル分類モデルの分類損失
marginアンサンブル分類モデルの分類マージン
partialDependence部分依存の計算
plotPartialDependence部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成
predictアンサンブル分類モデルを使用したラベルの予測
predictorImportance決定木の分類アンサンブルに関する予測子の重要度の推定
resubEdgeアンサンブル分類モデルの再代入分類エッジ
resubLossアンサンブル分類モデルの再代入分類損失
resubMarginアンサンブル分類モデルの再代入分類マージン
resubPredict再代入によるアンサンブル分類の観測値の分類
resumeアンサンブル分類モデルの学習の再開
shapleyシャープレイ値
testckfold交差検証の反復により 2 つの分類モデルの精度を比較

すべて折りたたむ

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

load ionosphere

すべての測定値と AdaBoostM1 法を使用して、100 本の分類木があるブースティング アンサンブルに学習させます。

Mdl = fitcensemble(X,Y,'Method','AdaBoostM1')
Mdl = 
  ClassificationEnsemble
             ResponseName: 'Y'
    CategoricalPredictors: []
               ClassNames: {'b'  'g'}
           ScoreTransform: 'none'
          NumObservations: 351
               NumTrained: 100
                   Method: 'AdaBoostM1'
             LearnerNames: {'Tree'}
     ReasonForTermination: 'Terminated normally after completing the requested number of training cycles.'
                  FitInfo: [100×1 double]
       FitInfoDescription: {2×1 cell}


  Properties, Methods

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

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 36 objects of type line, text. One or more of the lines displays its values using only markers

既定の設定では、fitcensemble は木のブースティング アンサンブルに対して浅い木を成長させます。

X の平均のラベルを予測します。

predMeanX = predict(Mdl,mean(X))
predMeanX = 1×1 cell array
    {'g'}

ヒント

分類木のアンサンブルの場合、ensTrained プロパティにはコンパクトな分類モデルの ens.NumTrained 行 1 列の cell ベクトルが格納されます。cell ベクトルの木 t をテキストまたはグラフィックスで表示するには、次のように入力します。

  • view(ens.Trained{t}.CompactRegressionLearner) (LogitBoost または GentleBoost を使用して集約されたアンサンブルの場合)。

  • view(ens.Trained{t}) (他のすべての集約法の場合)。

拡張機能

すべて展開する

バージョン履歴

R2011a で導入

すべて展開する