Я выполнил сеточный поиск по логистической регрессии и установил оценку в 'roc_auc'.Grid_clf1.best_score_ дал мне auc 0,7557.После этого я хотел построить кривую 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))
Это даст мне AUC 0,50.