问题
我正在尝试使用 scikit-learn 的 LogisticRegressionCV
,并将 roc_auc_score
作为评分指标。
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score
clf = LogisticRegressionCV(scoring=roc_auc_score)
但是当我试图拟合模型(clf.fit(X, y)
)时,它会抛出错误。
ValueError: average has to be one of (None, 'micro', 'macro', 'weighted', 'samples')
很不错。清楚地了解正在发生的事情:roc_auc_score
需要使用指定的average
参数进行调用,根据其官方文档和上面的错误信息。所以我尝试了一下。
clf = LogisticRegressionCV(scoring=roc_auc_score(average='weighted'))
但事实证明,仅仅使用可选参数调用roc_auc_score
是行不通的,因为这会引发另一个错误。
TypeError: roc_auc_score() takes at least 2 arguments (1 given)
问题
你有什么想法可以让我在使用LogisticRegressionCV
时,将roc_auc_score
作为评分指标,并指定一个参数来实现评分函数?
我在scikit-learn的GitHub repo中找不到相关讨论或SO问题,但肯定有人之前遇到过这个问题,对吧?
average
的默认值为“宏”,因此不应该导致错误。 - BrenBarn0.16.1
),但该版本的文档显示的也是同样的内容。 - Gyan Veda