Как вычислить Feature_importances_ на XGBoost, учитывая только итерации до best_iteration?Python

Программы на Python
Ответить
Anonymous
 Как вычислить Feature_importances_ на XGBoost, учитывая только итерации до best_iteration?

Сообщение Anonymous »

Я обучил модель XGBRegressor с ранней остановкой. Насколько я понял, model.feature_importances_ вычисляет важность функций, рассматривая ВСЮ историю (т. е. учитывая также итерации «терпения», количественно определяемые Early_stopping_rounds). Тем не менее, мне нужны значения функций, вычисленные на модели только до best_iteration.
Вот пример кода:

Код: Выделить всё

from xgboost import XGBRegressor
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split

# Prepare data
X, y = make_regression(n_samples=1000, n_features=20, noise=0.1)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)

# Train the model with early stopping
xgb_model = XGBRegressor(n_estimators=1000, early_stopping_rounds=100, eval_metric="rmse")
xgb_model.fit(X_train, y_train, eval_set=[(X_val, y_val)], verbose=False)

xgb_model.feature_importances_
Но это дает мне представление о важности функций с учетом всей модели, а не только до best_iteration:

Код: Выделить всё

best_iteration = xgb_model.best_iteration
Я не могу повторно обучить новый XGBRegressor с помощью n_estimators=best_iteration, потому что это почти удвоит время работы (этот фрагмент является частью гораздо большего кода).
Есть ли как добиться этого без повторного обучения?
Обратите внимание, что, к сожалению, .feature_importances_ не имеет опции iteration_range.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ions-up-to
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»