我不想在xgboost中使用predict_proba()
或predict()
,而是想获得IF… THEN…
格式的逻辑来计算预测概率,只是想知道是否有办法这个吗?
答案 0 :(得分:0)
嗯..我不认为 xgboost 用IF ELSE逻辑来实现。但是您可以使用以下包装器:
import xgboost as xgb
def new_predict_wrapper(old_predict):
def newp(*args, **kwargs):
old_preds = old_predict(*args, **kwargs)
new_preds = [1 if pred > 0.5 else 0 for pred in old_preds]
return new_preds
return newp
new_pred_func = new_predict_wrapper(xgb.Booster.predict)
您可以在包装器中添加IF ELSE逻辑,因为我现在已将阈值保持设置为0.5。而不是使用旧的预测,而是像这样使用new_pred_func
:
pred_y = new_pred_func(unlabeled_data)