我正在使用逻辑回归与一个多类分类器'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 回答
ROC-AUC得分低于0.5意味着您的分类器预测比随机更差,即您从列车数据中学习的模式与之后在测试数据中发现的相反 .
这种情况很少发生,可以通过预测概率轻松纠正
1 - current_probability
.可能发生这种情况的原因:
培训和测试数据模式差别很大,或者没有真正的全局模式 .
你的模型非常难以适应 .
在你的情况下,由于你只使用一个特征,因此不太可能因参数太多而过度拟合,我想你的特征和你的目标之间没有全局相关性,因此你只适合噪声 .
更新:问题在于我如何使用lm分类器 . 如果特征分类器的顺序颠倒,则系数改变符号 . 我一定不明白这一点 .