сохраненная модель с joblib дает разные оценки

#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