python – 在sklearn中使用交叉验证和AUC-ROC作为逻辑回归模型
我正在使用sklearn包来构建逻辑回归模型,然后对其进行评估.具体来说,我想使用交叉验证,但无法通过cross_val_score函数找出正确的方法.
根据我看到的documentation和examples,我需要传递模型,特征,结果和评分方法的功能.然而,AUC不需要预测,它需要概率,因此它可以尝试不同的阈值并基于此计算ROC曲线.那么这里的正确方法是什么?这个函数有’roc_auc’作为一种可能的评分方法,所以我假设它与它兼容,我只是不确定使用它的正确方法.下面的示例代码段. 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计算的概率.它只是自己做那个部分吗? 解决方法
所有监督学习方法(包括逻辑回归)都需要真实的y值才能适合模型.
在拟合模型后,我们通常希望: >做出预测,和 cross_val_score为您提供模型预测的交叉验证分数.但是为了对预测进行评分,它首先需要进行预测,并且要做出预测,首先需要拟合模型,这需要X和(真)y. 您注意到cross_val_score接受不同的评分指标.因此,如果您选择f1-score,则在交叉val-score期间生成的模型预测将是类预测(来自模型的predict()方法).如果您选择roc_auc作为度量标准,则用于对模型进行评分的模型预测将是概率预测(来自模型的predict_proba()方法). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |