2016-08-29 3 views
0

예측 모델에 가장 중요한 기능을 찾으려고합니다.Python의 임의 포리스트 회귀 분석기의 중요 기능

현재 나는 그런

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

그것의 더 블랙 박스 타입의 방법을, 나는 그것이 기능에 대한 중요도를 사용하는 것 방법을 이해 아니에요 단지의로 sklearn의 붙박이 속성을 사용하고 있습니다. 이 작업을 수행하는 더 나은 방법이 있습니까?

+0

아마 당신은 분명히 할 수 있습니다 : 당신은이 방법에 대한 결함이 무엇입니까? –

+0

블랙 박스 형식의 방법이 더 많아서 기능에 대한 중요성을 강조하기 위해 어떤 방법을 사용하는지 이해하지 못했습니다. 죄송합니다. 질문에이 내용이 표시되어 있어야합니다. – kage77

+0

질문에 답변을 추가하면 답변 할 수 있습니다. –

답변

1

의사 결정 트리의 경우 중요한 기능은 블랙 박스가 아닙니다. DecisionTreeRegressor 설명서에서 :

기능의 중요성은 해당 기능에 의해 가져 기준의 (표준화 된) 총 환원로 계산된다. 지니 (Gini) 중요성으로도 알려져 있습니다 ( ).

포리스트의 경우 포리스트의 다른 트리 전체에서 평균을 유지합니다. 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이 질문에 대한 답변을 했습니까? –

관련 문제