ROC曲线是凸的

时间:2015-06-12 14:01:20

标签: python roc auc

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

我是否正确地解释了这一点?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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

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

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