【发布时间】:2020-09-26 15:23:54
【问题描述】:
使用GridSearchCV,我尝试将AUC 最大化为LogisticRegression Classifier
clf_log = LogisticRegression(C=1, random_state=0).fit(X_train, y_train)
from sklearn.model_selection import GridSearchCV
grid_params = {'penalty': ['l1','l2'], 'C': [0.001,0.01,0.1,1,10,100], 'max_iter' : [100]}
gs = GridSearchCV(clf_log, grid_params, scoring='roc_auc', cv=5)
gs.fit(X_train, y_train)`
我得到了0.7630647186779661 的gs.best_score_ 和gs.best_estimator_ 和gs.best_params_,分别如下:
<< LogisticRegression(C=10, class_weight=None, dual=False, fit_intercept=True,
intercept_scaling=1, l1_ratio=None, max_iter=100,
multi_class='auto', n_jobs=None, penalty='l2',
random_state=0, solver='lbfgs', tol=0.0001, verbose=0,
warm_start=False) >>
{'C': 10, 'max_iter': 100, 'penalty': 'l2'}
但是,当我将这些参数重新引入我原来的 clf_log 时,我只得到了 AUC 和 0.5359918677005525。我错过了什么(我认为:简历部分)?如何获得和复制相同的结果?谢谢!
【问题讨论】:
-
你从哪里得到 0.53 AUC?那是当你对你的 X_test 执行时?因为据我了解,GridSearchCV 正在应用 k 折验证,并且只查看您的训练数据。那么,也许您过度拟合了,或者您的测试数据集与您的训练数据集有很大不同?
-
0.53 使用相同的训练数据。
-
但是如果您想评估您的分类器,通常您必须针对从未通过的测试数据进行评估。你甚至适合你的 GridSearchCV 吗?我看到您对 LogisticRegression 应用拟合,但您也必须调用 gs.fit(),因为这将执行所有交叉折叠验证
-
是 gs.fit(X_train, y_train) 已运行。
-
如果我在下面的回答对您有所帮助,请考虑支持并接受它。它会帮助我、您和其他试图回答类似问题的人。
标签: python scikit-learn auc gridsearchcv