Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python best_score_u的gridsearch cv的AUC分数与gridsearch cv最佳模型的AUC_roc_u分数不同_Python_Scikit Learn_Logistic Regression_Gridsearchcv - Fatal编程技术网

Python best_score_u的gridsearch cv的AUC分数与gridsearch cv最佳模型的AUC_roc_u分数不同

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

我对逻辑回归进行了网格搜索,并将得分设置为“roc_auc”。网格clf1.best评分给了我0.7557的auc。之后,我想画出最佳模型的ROC曲线。我看到的ROC曲线的AUC为0.50,我完全不理解这一点

我查看了预测的概率,发现它们都是0.0或1.0。因此,我认为这里出了问题,但我找不到问题所在

我的网格搜索cv代码如下所示:

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_AUC分数。在装配过程中,使用列车组,当调用
    roc\u auc\u得分时使用测试组
  • 交叉验证评分与简单的
    roc\u auc\u评分
    函数调用稍有不同。它可以扩展为
    np.mean(交叉分值(…)

  • 因此,如果考虑到这一点,您将得到相同的评分值。您可以作为参考。

    谢谢您的回答!谷歌colab笔记本非常清楚地说明了这一点。我还有一个问题:cv结果和测试集结果之间的差异如此之大是否正常?或者我应该做更多的折叠以使它们彼此更接近?可能您的模型拟合过度,因此您应该预处理数据或尝试其他模型。我刚刚发现我对列车数据进行了标准化,而我没有对测试数据进行标准化。无论如何谢谢你!