我有一个简单的 XGBClassifier
model = XGBClassifier()
我用来拟合模型(X 是预测特征,Y 是二进制目标):
model.fit(X, Y)
如果我想从我刚刚训练的 XGBClassifier 模型中计算概率,那么我使用以下代码:
y_pred_proba = []
for i in range(len(X)):
y_pred_proba.append(0)
y_pred_proba[i] = model.predict_proba(X.iloc[[i]]).ravel()[1]
但是我如何获得日志(赔率)?如果我应用以下公式:
ln(odds) = ln(probability / (1-probability))
我会得到赔率。我猜你不能把概率转换成这么简单的赔率。我猜你需要一个 sigmoid 函数,对吧?
我知道默认的 XGBClassifier 目标函数是逻辑回归。是否有输出 XGBClassifier 的日志(赔率)的命令?
如果我适合这样的逻辑回归:
import sklearn
model_adult = sklearn.linear_model.LogisticRegression(max_iter=10000)
model_adult.fit(X, Y)
然后我可以通过这段代码生成 log(odds) 输出:
print(model_adult.predict_log_proba(X))
XGBClassifier 有什么类似的吗?