Я сталкиваюсь с различными предсказаниями, когда загружаю свой CalibratedClassiferCV и запускаювести на Предикат по сравнению с тем, когда я вначале соответствовал модели и запускал предикат. Есть идеи, почему это может быть? Данные и параметры модели совпадают, но прогнозы сильно различаются. Ниже приведен мой код с использованием pickle, но я пробовал также и с joblib с теми же результатами.
Следующее работает отлично:
#Train and fit model
clf=RandomForestClassifier(random_state=0, n_estimators=1800, max_features='auto', max_depth=100, min_samples_split=2, min_samples_leaf=1, bootstrap=False)
cccv=CalibratedClassifierCV(clf,method='sigmoid',cv=5)
cccv.fit(X_train, y_train)
#save model
filename='TESTwCV_04272020.sav'
pickle.dump(cccv,open(filename,'wb'))
#load model and make predictions from loaded model
model = pickle.load(open(filename,'rb'))
cccv_final_probs=model.predict_proba(X_final)[:,1]
cccv_final_pred=model.predict(X_final)
Но если бы я запустил fre sh ( очистить переменные), загрузить модель и сделать прогнозы, мой вывод сильно отличается от вывода выше:
filename='TESTwCV_04272020.sav'
model = pickle.load(open(filename,'rb'))
cccv_final_probs=model.predict_proba(X_final)[:,1]
cccv_final_pred=model.predict(X_final)
Как я уже говорил, первый набор кода работает нормально, но я создаю ML конвейер, и мне не нужно обучать новую модель каждый раз, когда я получаю новые данные, так как я хочу ограничить время обработки и хочу оценить производительность той же модели в сверхурочное время (это очень важно). Любые идеи будут полезны, спасибо!