2016-08-29 7 views
0

私の予測モデルにとって最も重要な機能を見つけようとしています。Pythonのランダムフォレストリグレッサーの重要性

現在、私はそれがブラックボックスタイプの方法のそのより多くが、私はそれが機能への重要性を重み付けするために使用するどのような方法で理解していないよというだけだな

Model = Model.fit(Train_Features, Labels_Train) 
print(Model.feature_importances_) 

としてsklearnの作り付けの属性を使用しています。これを行うためのよりよいアプローチはありますか?

+0

おそらく、あなたはこの方法が不足していると思いますか? –

+0

それはブラックボックス型の方法のほうが多かったのですが、私はどのような方法を使って機能に重点を置くのか理解していません。私の謝罪は、質問にこれを明記していたはずです – kage77

+0

あなたの質問にその明確化を加えて、私は答えます –

答えて

1

決定木に関しては、重要な点はブラックボックスではありません。 DecisionTreeRegressorのドキュメントから:

機能の重要性は、その機能によってもたらされる基準の(正規化された)総 減少として計算されます。ジニの重要性としては、 も知られています。

フォレストの場合は、フォレスト内の異なるツリー全体で平均します。 source codeを確認してください:

def feature_importances_(self): 
    """Return the feature importances (the higher, the more important the 
     feature). 
    Returns 
    ------- 
    feature_importances_ : array, shape = [n_features] 
    """ 
    if self.estimators_ is None or len(self.estimators_) == 0: 
     raise NotFittedError("Estimator not fitted, " 
          "call `fit` before `feature_importances_`.") 

    all_importances = Parallel(n_jobs=self.n_jobs, 
           backend="threading")(
     delayed(getattr)(tree, 'feature_importances_') 
     for tree in self.estimators_) 

    return sum(all_importances)/len(self.estimators_) 
+0

@ kage77この回答はあなたの質問をしましたか? –

関連する問題