Python best_score_u的gridsearch cv的AUC分数与gridsearch cv最佳模型的AUC_roc_u分数不同
我对逻辑回归进行了网格搜索,并将得分设置为“roc_auc”。网格clf1.best评分给了我0.7557的auc。之后,我想画出最佳模型的ROC曲线。我看到的ROC曲线的AUC为0.50,我完全不理解这一点 我查看了预测的概率,发现它们都是0.0或1.0。因此,我认为这里出了问题,但我找不到问题所在 我的网格搜索cv代码如下所示:Python best_score_u的gridsearch cv的AUC分数与gridsearch cv最佳模型的AUC_roc_u分数不同,python,scikit-learn,logistic-regression,gridsearchcv,Python,Scikit Learn,Logistic Regression,Gridsearchcv,我对逻辑回归进行了网格搜索,并将得分设置为“roc_auc”。网格clf1.best评分给了我0.7557的auc。之后,我想画出最佳模型的ROC曲线。我看到的ROC曲线的AUC为0.50,我完全不理解这一点 我查看了预测的概率,发现它们都是0.0或1.0。因此,我认为这里出了问题,但我找不到问题所在 我的网格搜索cv代码如下所示: clf1 = Pipeline([('RS', RobustScaler()), ('LR', LogisticRegression(random_st
clf1 = Pipeline([('RS', RobustScaler()), ('LR',
LogisticRegression(random_state=1, solver='saga'))])
params = {'LR__C': np.logspace(-3, 0, 5),
'LR__penalty': ['l1']}
grid_clf1 = GridSearchCV(clf1, params, scoring='roc_auc', cv = 5,
n_jobs=-1)
grid_clf1.fit(X_train, y_train)
grid_clf1.best_estimator_
grid_clf1.best_score_
因此,最佳模型的AUC为0.7557。
然后,如果我自己计算模型的AUC:
y_pred_proba = grid_clf1.best_estimator_.predict_probas(X_test)[::,1]
print(roc_auc_score(y_test, y_pred_proba))
这给了我0.50的AUC。您的示例代码似乎有两个问题:
roc\u auc\u得分时使用测试组
roc\u auc\u评分
函数调用稍有不同。它可以扩展为np.mean(交叉分值(…)
因此,如果考虑到这一点,您将得到相同的评分值。您可以作为参考。谢谢您的回答!谷歌colab笔记本非常清楚地说明了这一点。我还有一个问题:cv结果和测试集结果之间的差异如此之大是否正常?或者我应该做更多的折叠以使它们彼此更接近?可能您的模型拟合过度,因此您应该预处理数据或尝试其他模型。我刚刚发现我对列车数据进行了标准化,而我没有对测试数据进行标准化。无论如何谢谢你!