0

我有一个简单的 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 有什么类似的吗?

4

0 回答 0