嗨,我需要校准lightgbm中的概率
下面是我的代码
cv_results = lgb.cv(参数, lgtrain, nfold = 10, 分层= False, num_boost_round = num_rounds, verbose_eval = 10, early_stopping_rounds = 50, 种子= 50)
best_nrounds = cv_results.shape [0]-1
lgb_clf = lgb.train(params, lgtrain, num_boost_round = 10000, valid_sets = [lgtrain,lgvalid], early_stopping_rounds = 50, verbose_eval = 10)
ypred = lgb_clf.predict(test,num_iteration = lgb_clf.best_iteration)
答案 0 :(得分:0)
我不确定LighGBM,但对于XGBoost,如果要校准概率,最好的方法是,最好的方法是使用sklearn中的CalibratedClassifierCV 。
您可以在这里找到它-https://scikit-learn.org/stable/modules/generated/sklearn.calibration.CalibratedClassifierCV.html
这里唯一要注意的是, CalibratedClassifierCV仅将sklearn的估计量作为输入,因此您可能不得不对XGBoost使用sklearn包装器,而不是传统的XGBoost API的.train函数。
您可以在此处找到XGBoost的sklearn包装器-https://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.XGBClassifier
希望它能回答您的问题。