首页 文章

ROC曲线是凸的

提问于
浏览
0

我正在使用逻辑回归与一个多类分类器'sub_grade'进行默认频率的ROC图(和AUC计算) . 假设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曲线根据频率对分类进行排序 . 结果意味着具有最高pct默认值的类具有最低的预测发生概率 .

我正确地解释了吗?

2 回答

  • 0

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

    这种情况很少发生,可以通过预测概率轻松纠正 1 - current_probability .

    可能发生这种情况的原因:

    • 培训和测试数据模式差别很大,或者没有真正的全局模式 .

    • 你的模型非常难以适应 .

    在你的情况下,由于你只使用一个特征,因此不太可能因参数太多而过度拟合,我想你的特征和你的目标之间没有全局相关性,因此你只适合噪声 .

  • 0

    更新:问题在于我如何使用lm分类器 . 如果特征分类器的顺序颠倒,则系数改变符号 . 我一定不明白这一点 .

相关问题