读回已保存的LGBMClassifier模型

我训练了LGBMClassifier模型并以这种方式保存在文件中:

clf = lgb.LGBMClassifier( ... )
clf.fit(X_train,y_train,**fit_params)
clf.booster_.save_model("model1.txt")

##Predictions
y_pred = clf.predict_proba(X_data,num_iteration=clf.best_iteration_)[:,1]

现在,我要使用保存的模型进行另一个预测。但是如果我这样做:

## new predictions:

    clf_fs = lgb.Booster(model_file='model1.txt')
    y_pred2 = clf_fs.predict_proba(X_data2,num_iteration=clf_fs.best_iteration_)[:,1]

我有一个错误

AttributeError: 'Booster' object has no attribute 'predict_proba'

我知道cls_fs是类Booster的对象,而不是类LGBMClassifier的对象,并且我可以使用clf_fs.predict(),但是如何获取来自已保存的增强文件及其所有特定属性的LGBMClassifier对象?

wjli44 回答:读回已保存的LGBMClassifier模型

与此问题相关的Github主题https://medium.com/@shahidfoy/how-to-set-up-angular-7-angular-2-with-express-and-mongodb-on-bitnami-google-cloud-platform-d4a5a1873c1b得出结论(强调我):

  

很遗憾,这是不可能。您不应混淆sklearn和标准火车界面。   请阅读本期How to create LGBMClassifier from booster?,并使用joblib保存/加载您的sklearn模型。

在上面提到的(现已关闭)#1217中,一名Microsoft开发人员正在研究项目#1217 issue at Github,在这种情况下:

  

booster.predict()实际上将返回概率

所以您不需要predict_proba

本文链接:https://www.f2er.com/3164882.html

大家都在问