ROC曲线是凸的

2024-04-19 12:04:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个默认频率的ROC图(和AUC计算),使用logistic回归和一个多类分类器“sub-grade”。假设lcd是一个包含初始数据的数据帧。在

Xtrain, Xtest, ytrain, ytest  =  train_test_split(X,y,test_size=0.50,random_state=123)
# Assign only sub_grade as a feature, Default as response
X = lcd['sub_grade']
y = lcd['Default']

Xtrain, Xtest, ytrain, ytest  =  train_test_split(X,y,test_size=0.50,random_state=123)

logreg = lm.LogisticRegression()
logreg.fit(Xtrain, ytrain)
probas = logreg.predict_proba(Xtest)

# Get classification probabilities from log reg 
y_probas = logreg.predict_proba(Xtest)[:,1]
# Generate ROC Curve from ytest and y_probas
fpr, tpr, thresholds= roc_curve(ytest, y_probas)

结果ROC曲线为凸形,AUC评分为~0.35。为什么会这样?我认为ROC曲线是根据频率来排序的。结果表明,违约率最高的类具有最低的预测发生概率。在

我正确地解释了吗?在


Tags: 数据testlcdtrain频率splitgraderoc
2条回答

ROC-AUC得分低于0.5意味着您的分类器预测的结果比随机差,即您从列车数据中学习到的模式与随后在测试数据中发现的模式相反。在

这种情况很少发生,而且可以通过预测概率1 - current_probability很容易纠正。在

发生这种情况的原因:

  • 训练和测试数据模式差别很大,或者没有真正的全局模式。在
  • 你的模型很难适应。在

在您的例子中,由于您只使用一个特征,因此不太可能由于太多的参数而过度拟合,我想您的特征和目标之间没有全局相关性,因此您只拟合噪声。在

更新:问题在于我如何使用lm分类器。如果特征分类器的顺序颠倒,则系数变符号。我不能理解这一点。在

相关问题 更多 >