Случайный лес: почему корреляция признаков не соответствует важности характеристик? - PullRequest
0 голосов
/ 26 января 2019

Я сгенерировал набор данных с 15 функциями. Функция 9-15 линейно зависит от функции 1-7 (я сгенерировал данные таким образом.) Этот корреляционный график доказывает такое поведение:

corr = pd.DataFrame(X, columns=['F1', 'F2', 'F3', 'F4', 'F5',
                            'F6', 'F7', 'F8', 'F9', 'F10',
                            'F11', 'F12', 'F13', 'F14', 'F15']).corr()

sns.heatmap(corr)

enter image description here Когда я чертю значения объектов из случайного леса, я ожидаю, что эти сильно коррелирующие объекты не будут иметь значения. Так что это удивляет меня:

clf = RandomForestClassifier(n_estimators=5)
clf.fit(X_train, y_train)

feature_names = ['F1', 'F2', 'F3', 'F4', 'F5',
                 'F6', 'F7', 'F8', 'F9', 'F10',
                 'F11', 'F12', 'F13', 'F14', 'F15']

importances = pd.DataFrame(clf.feature_importances_, index=feature_names,
                           columns=['importance']).sort_values('importance', ascending=False)

importances.plot(kind='barh')

enter image description here

Почему функция 9-15 важна в конце концов? Что произойдет, если я применю PCA к данным?

...