#python #machine-learning #linear-regression #xgboost #joblib
#python #машинное обучение #линейная регрессия #xgboost #joblib
Вопрос:
Я настроил модель с помощью GridSearchCV и сохранил ее с помощью joblib.
Позже я загружаю эту модель, и когда я применяю параметр score, он дает мне другую оценку.
почему это неправильно? Разве это не должно быть одинаково? Потому что X, y не меняется.
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2, random_state=42)
xgboost = XGBRegressor()
parameters = {
'nthread':[-1],
'objective':['reg:squarederror'],
'learning_rate': [.02, .03, .04],
'max_depth': [1,2,5],
'min_child_weight': [1,2],
'silent': [1],
'subsample': [.8,.9],
'colsample_bytree': [.7,.9],
'n_estimators': [100,150,200],
}
kf = KFold(n_splits=3, random_state=42, shuffle=True)
gs = GridSearchCV(estimator=xgboost, param_grid = parameters, cv = kf, n_jobs=-1, return_train_score=True, scoring='neg_mean_squared_error')
gs.fit(X_train, y_train)
model = gs.best_estimator_.fit(X_train, y_train)
joblib.dump(model, 'model.ml')
gs.score(X,y)
Это дает: -0.10654083232458161
Когда я загружаю эту модель
model = joblib.load('model.ml')
model.score(X,y)
Это дает: 0.16716786313061083