ドキュメンテーション

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

predictorImportance

予測子の重要度の推定

構文

imp = predictorImportance(ens)
[imp,ma] = predictorImportance(ens)

説明

imp = predictorImportance(ens) は、アンサンブル内のすべての弱学習器の推定を合計することにより、ens の予測子の重要度の推定を計算します。imp は、このアンサンブルが学習に使用するデータ内にある入力予測子それぞれにつき 1 つの要素をもちます。値が高ければ、ens でこの予測子が重要であることを示します。

[imp,ma] = predictorImportance(ens) は、ens 内の学習器に代理分岐が含まれる場合、P 予測子の関連性予測尺度をもつ、P x P の行列を返します。詳細を参照してください。

入力引数

ens

関数 fitcensemble または compact メソッドで作成されたアンサンブル分類。

出力引数

imp

ens.X での予測子 (列) の数と同じ数の要素をもつ、行ベクトル。このエントリは、予測子の重要度の推定で、0 は、可能な限り最小の重要度を示します。

ma

P 予測子の関連性予測尺度をもつ、PP 列の行列。要素 ma(I,J) は、予測子 I が最適分割予測子となる予測子 J の代理分岐を平均化した関連性予測尺度です。predictorImportance は、アンサンブル内のすべてのツリーにおけるこの関連性予測尺度を平均化します。

すべて展開する

フィッシャーのアヤメのデータに含まれているすべての変数について予測子の重要度を推定します。

フィッシャーのアヤメのデータセットを読み込みます。

load fisheriris

AdaBoostM2 を使用してアンサンブル分類に学習をさせます。弱学習器として木の切り株を指定します。

t = templateTree('MaxNumSplits',1);
ens = fitcensemble(meas,species,'Method','AdaBoostM2','Learners',t);

すべての予測子変数について予測子の重要度を推定します。

imp = predictorImportance(ens)
imp = 1×4

    0.0004    0.0016    0.1266    0.0324

最初の 2 つの予測子は、アンサンブルにおいてあまり重要ではありません。

木に代理分岐が含まれているアンサンブルについて、フィッシャーのアヤメのデータに含まれているすべての変数に対する予測子の重要度を推定します。

フィッシャーのアヤメのデータセットを読み込みます。

load fisheriris

AdaBoostM2 を使用して 100 本の分類木のアンサンブルを成長させます。弱学習器として木の切り株を指定し、代理分岐も指定します。

t = templateTree('MaxNumSplits',1,'Surrogate','on');
ens = fitcensemble(meas,species,'Method','AdaBoostM2','Learners',t);

すべての予測子変数について予測子の重要度と関連性予測尺度を推定します。

[imp,ma] = predictorImportance(ens)
imp = 1×4

    0.0674    0.0417    0.1582    0.1537

ma = 4×4

    1.0000         0         0         0
    0.0115    1.0000    0.0022    0.0054
    0.3186    0.2137    1.0000    0.6391
    0.0392    0.0073    0.1137    1.0000

最初の 2 つの予測子は、予測子の重要度の推定の分析よりもはるかに重要度が高くなっています。

詳細

すべて展開する

アルゴリズム

要素 ma(i,j) は、予測子 j が最適分割予測子となる予測子 i の代理分岐を平均化した関連性予測尺度です。この平均は、予測子 i の最適分割、および予測子 j の代理分岐における関連性予測尺度の正の値を合計し、予測子 ij 間の関連性予測尺度が負になる分割も含めた、予測子 i の最適分割の合計数で除算することによって計算されます。