Я пытался использовать XGBregressor в Python.Это, безусловно, одна из лучших техник ML, которые я использовал. Однако в некоторых наборах данных у меня очень высокая обучаемость в R-квадрате, но она действительно плоха в прогнозировании или тестировании.Я пытался поиграть с гаммой, глубиной и подвыборкой, чтобы уменьшить сложность модели или убедиться, что она не переоснащена, но между тренировкой и тестированием есть огромная разница.Мне было интересно, может ли кто-нибудь помочь мне с этим:
Ниже приведен код, который я использую:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30,random_state=100)
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(X_train)
xgb = xgboost.XGBRegressor(colsample_bytree=0.7,
gamma=0,
learning_rate=0.01,
max_depth=1,
min_child_weight=1.5,
n_estimators=100000,
reg_alpha=0.75,
reg_lambda=0.45,
subsample=0.8,
seed=1000)
Вот результат обучения по сравнению с тестированием:
Обучение: MAE: 0,10 R ^ 2: 0,99
Тестирование: MAE: 1,47 R ^ 2: -0,89