【发布时间】:2017-10-17 14:03:12
【问题描述】:
我正在使用sklearn 包构建逻辑回归模型,然后对其进行评估。具体来说,我想使用交叉验证来做到这一点,但无法通过cross_val_score 函数找出正确的方法。
根据我看到的documentation和一些examples,我需要传递函数模型、特征、结果和评分方法。但是,AUC 不需要预测,它需要概率,所以它可以尝试不同的阈值,并据此计算 ROC 曲线。那么这里的正确方法是什么?这个函数有'roc_auc'作为可能的评分方法,所以我假设它与它兼容,我只是不确定使用它的正确方法。示例代码 sn-p 下面。
from sklearn.linear_model import LogisticRegression
from sklearn.cross_validation import cross_val_score
features = ['a', 'b', 'c']
outcome = ['d']
X = df[features]
y = df[outcome]
crossval_scores = cross_val_score(LogisticRegression(), X, y, scoring='roc_auc', cv=10)
基本上,我不明白为什么我需要在这里将y 传递给我的cross_val_score 函数,而不是在逻辑回归模型中使用X 计算的概率。它只是自己做那部分吗?
【问题讨论】:
-
您的问题得到解决了吗?如果是这样,您应该用旁边的复选框标记正确答案。否则,有什么可以澄清的?
标签: python scikit-learn logistic-regression cross-validation roc