#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 и др.:
Мы показываем, что измерения важности переменных случайного леса являются разумным средством для выбора переменных во многих приложениях, но ненадежны в ситуациях, когда потенциальные переменные-предсказатели различаются по масштабу измерения или количеству категорий.
Я бы попробовал с важностью перестановки и посмотрел, получу ли я те же результаты.