ドキュメンテーション

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

predictorImportance

予測子の重要度の推定

構文

imp = predictorImportance(tree)

説明

imp = predictorImportance(tree) は、すべての予測子上の分割によるリスク変動を合算し、枝ノード数でこの和を除算することにより、tree での予測子の重要度の推定を計算します。

入力引数

tree

関数 fitctree または compact メソッドで作成された分類木。

出力引数

imp

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

すべて展開する

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

load fisheriris

分類木を成長させます。

Mdl = fitctree(meas,species);

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

imp = predictorImportance(Mdl)
imp = 1×4

         0         0    0.0907    0.0682

imp の最初の2 つの要素は 0 です。そのため、最初の 2 つの予測子では、アヤメ種を分類する Mdl の計算は開始されません。

予測子の重要度の推定は、代理分岐を使用する場合、予測子の順序には依存しませんが、代理分岐を使用しない場合には、予測子の順序に依存します。

前の例のデータ列の順序を並べ替え、別の分類木を成長させ、予測子の重要度の推定を計算します。

measPerm  = meas(:,[4 1 3 2]);
MdlPerm = fitctree(measPerm,species);
impPerm = predictorImportance(MdlPerm)
impPerm = 1×4

    0.1515         0    0.0074         0

この予測子の重要度の推定は、imp の並べ替えにはなっていません。

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

load fisheriris

分類木を成長させます。代理分岐の使用を指定します。

Mdl = fitctree(meas,species,'Surrogate','on');

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

imp = predictorImportance(Mdl)
imp = 1×4

    0.0791    0.0374    0.1530    0.1529

すべての予測子に多少の重要度があります。最初の 2 つの予測子は最後の 2 つほど重要ではありません。

前の例のデータ列の順序を並べ替え、代理分岐の使用を指定して別の分類木を成長させ、予測子の重要度の推定を計算します。

measPerm  = meas(:,[4 1 3 2]);
MdlPerm = fitctree(measPerm,species,'Surrogate','on');
impPerm = predictorImportance(MdlPerm)
impPerm = 1×4

    0.1529    0.0791    0.1530    0.0374

この予測子の重要度の推定は、imp の並べ替えになっています。

census1994 データセットを読み込みます。年齢、労働階級、教育レベル、婚姻区分、人種、性別、資本利得および損失、および 1 週間の勤務時間が与えられた個人の給与カテゴリを予測するモデルを考えます。

load census1994
X = adultdata(:,{'age','workClass','education_num','marital_status','race',...
    'sex','capital_gain','capital_loss','hours_per_week','salary'});

summary を使用して、カテゴリカル変数で表現されるカテゴリの個数を表示します。

summary(X)
Variables:

    age: 32561x1 double

        Values:

            Min        17  
            Median     37  
            Max        90  

    workClass: 32561x1 categorical

        Values:

            Federal-gov              960   
            Local-gov               2093   
            Never-worked               7   
            Private                22696   
            Self-emp-inc            1116   
            Self-emp-not-inc        2541   
            State-gov               1298   
            Without-pay               14   
            NumMissing              1836   

    education_num: 32561x1 double

        Values:

            Min              1       
            Median          10       
            Max             16       

    marital_status: 32561x1 categorical

        Values:

            Divorced                       4443      
            Married-AF-spouse                23      
            Married-civ-spouse            14976      
            Married-spouse-absent           418      
            Never-married                 10683      
            Separated                      1025      
            Widowed                         993      

    race: 32561x1 categorical

        Values:

            Amer-Indian-Eskimo      311 
            Asian-Pac-Islander     1039 
            Black                  3124 
            Other                   271 
            White                 27816 

    sex: 32561x1 categorical

        Values:

            Female    10771
            Male      21790

    capital_gain: 32561x1 double

        Values:

            Min               0     
            Median            0     
            Max           99999     

    capital_loss: 32561x1 double

        Values:

            Min               0     
            Median            0     
            Max            4356     

    hours_per_week: 32561x1 double

        Values:

            Min               1       
            Median           40       
            Max              99       

    salary: 32561x1 categorical

        Values:

            <=50K     24720  
            >50K       7841  

カテゴリカル変数で表現されるカテゴリの数は連続変数のレベル数と比較するとわずかなので、予測子分割アルゴリズムの標準 CART ではカテゴリカル変数よりも連続予測子が分割されます。

データセット全体を使用して分類木に学習をさせます。偏りの無い木を成長させるため、予測子の分割に曲率検定を使用するよう指定します。データには欠損観測値が含まれているので、代理分岐を使用するよう指定します。

Mdl = fitctree(X,'salary','PredictorSelection','curvature',...
    'Surrogate','on');

すべての予測子について分割によるリスク変動を合計し、この合計を分岐ノード数で除算することにより、予測子の重要度の値を推定します。棒グラフを使用して推定を比較します。

imp = predictorImportance(Mdl);

figure;
bar(imp);
title('Predictor Importance Estimates');
ylabel('Estimates');
xlabel('Predictors');
h = gca;
h.XTickLabel = Mdl.PredictorNames;
h.XTickLabelRotation = 45;
h.TickLabelInterpreter = 'none';

このケースでは、最も重要な予測子は capital_gain であり、次に重要なのは education_num です。

詳細

すべて展開する