在 lightgbm 或 XGBoost 中校准概率
Calibrating Probabilities in lightgbm or XGBoost
嗨,我需要帮助校准 lightgbm 中的概率
下面是我的代码
cv_results = lgb.cv(参数,
火车,
n倍=10,
分层=假,
num_boost_round = num_rounds,
verbose_eval=10,
early_stopping_rounds = 50,
种子 = 50)
best_nrounds = cv_results.shape[0] - 1
lgb_clf = lgb.train(参数,
火车,
num_boost_round=10000 ,
valid_sets=[lgtrain,lgvalid],
early_stopping_rounds=50,
verbose_eval=10)
ypred = lgb_clf.predict(测试, num_iteration=lgb_clf.best_iteration)
我不确定 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
我希望它能回答你的问题。
嗨,我需要帮助校准 lightgbm 中的概率
下面是我的代码
cv_results = lgb.cv(参数, 火车, n倍=10, 分层=假, num_boost_round = num_rounds, verbose_eval=10, early_stopping_rounds = 50, 种子 = 50)
best_nrounds = cv_results.shape[0] - 1
lgb_clf = lgb.train(参数, 火车, num_boost_round=10000 , valid_sets=[lgtrain,lgvalid], early_stopping_rounds=50, verbose_eval=10)
ypred = lgb_clf.predict(测试, num_iteration=lgb_clf.best_iteration)
我不确定 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
我希望它能回答你的问题。