встроенный метод выбора функций, показывающий неправильные функции

#python #machine-learning #random-forest

#python #машинное обучение #случайный лес

Вопрос:

при выборе функций (встроенный метод) я получаю неправильные функции.

код выбора функций:

 # create the random forest model
model = RandomForestRegressor(n_estimators=120)

# fit the model to start training.
model.fit(X_train[_columns], X_train['delay_in_days'])

# get the importance of the resulting features.
importances = model.feature_importances_

# create a data frame for visualization.
final_df = pd.DataFrame({"Features": X_train[_columns].columns, "Importances":importances})
final_df.set_index('Importances')

# sort in descending order 
final_df = final_df.sort_values('Importances',ascending=False)

#visualising feature importance
pd.Series(model.feature_importances_, index=X_train[_columns].columns).nlargest(10).plot(kind='barh')
 
 _columns #my some selected features 
 

введите описание изображения здесь

вот список функций, как вы можете видеть, total_open_amount — очень важная функция, но когда я добавляю 3 лучших функции в свою модель, я получаю -ve R2_Score. но если я удалю total_open_amount из моей модели, я получу приличный R2_Score.

мой вопрос в том, что является причиной этого?(весь набор данных, тест выбираются случайным образом из набора данных размером = 100000)

 clf = RandomForestRegressor()
clf.fit(x_train, y_train)

# Predicting the Test Set Results
predicted = clf.predict(x_test)
 

Ответ №1:

Это обоснованное предположение, поскольку вы не предоставили сами данные. Глядя на названия ваших функций, наиболее важными функциями являются имена клиентов и общее количество открытых. Я полагаю, что это функции с большим количеством уникальных значений.

Если вы проверите страницу справки для случайного леса, в ней упоминается:

Внимание: важность функций на основе примесей может вводить в заблуждение для функций с большим количеством элементов (много уникальных значений). См. sklearn.inspection.permutation_importance в качестве альтернативы.

Это также упоминается в публикации Strobl и др.:

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

Я бы попробовал с важностью перестановки и посмотрел, получу ли я те же результаты.