Вот пример кода:
Код: Выделить всё
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 = xgb_model.best_iteration
Есть ли как добиться этого без повторного обучения?
Обратите внимание, что, к сожалению, .feature_importances_ не имеет опции iteration_range.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ions-up-to
Мобильная версия