我正在进行默认频率的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默认值的类具有最低的预测发生概率。
我是否正确地解释了这一点?
答案 0 :(得分:0)
更新:问题在于我如何使用lm分类器。如果要素分类器的顺序颠倒,则系数会改变符号。我一定不明白这一点。
答案 1 :(得分:0)
ROC-AUC得分低于0.5意味着您的分类器预测比随机差,即您从列车数据中学到的模式与之后在测试数据中找到的相反。
这种情况很少发生,可以通过预测概率1 - current_probability
轻松纠正。
可能发生这种情况的原因:
在你的情况下,由于你只使用一个特征,因此不太可能因参数太多而过度拟合,我猜你的特征与目标之间没有全局相关性,因此你只适合噪声。