【发布时间】:2020-04-28 17:49:13
【问题描述】:
与最初拟合模型并运行 predict_proba 时相比,当我加载 CalibratedClassiferCV 并运行 predic_proba 时,我遇到了不同的预测。知道为什么会这样吗?数据和模型参数相同,但预测却大不相同。下面是我使用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)
但如果我要重新开始(即清除变量)、加载模型并进行预测,我的输出与上面的输出完全不同:
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)
正如我所说,第一组代码运行良好,但我正在创建一个机器学习管道,我不想每次获得新数据时都必须训练一个新模型,因为我想限制处理时间和我想评估相同模型超时的性能(这很关键)。任何见解都会有所帮助,谢谢!
【问题讨论】:
标签: python scikit-learn pickle calibration