2016-08-05 2 views
1

Я построил конвейер в Scikit-Learn с двумя шагами: один для построения функций, а второй - RandomForestClassifier.Как извлечь функции из конвейера Sklearn

Хотя я могу сохранить этот конвейер, посмотреть различные этапы и различные параметры, заданные в шагах, я хотел бы иметь возможность исследовать значения признаков из полученной модели.

Возможно ли это?

ответ

7

А, да, это так.

Вы перечислите определить этап, на котором вы хотите проверить, оценщик:

Например:

pipeline.steps[1] 

который возвращает:

('predictor', 
RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini', 
      max_depth=None, max_features='auto', max_leaf_nodes=None, 
      min_samples_leaf=1, min_samples_split=2, 
      min_weight_fraction_leaf=0.0, n_estimators=50, n_jobs=2, 
      oob_score=False, random_state=None, verbose=0, 
      warm_start=False)) 

Вы можете получить доступ к шагу модели непосредственно:

pipe.steps [1] [1] .feature_importances_

+0

И чтобы получить название функций, вы можете посмотреть на pipe.steps [0] [1] .get_feature_names() – Devon