Neo*_*air 4 python roc scikit-learn cross-validation logistic-regression
我正在使用该sklearn软件包来构建逻辑回归模型,然后对其进行评估。具体来说,我想使用交叉验证来执行此操作,但无法找出使用该cross_val_score函数执行此操作的正确方法。
根据文档和我看到的一些示例,我需要向函数传递模型,特征,结果和评分方法。但是,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)
Run Code Online (Sandbox Code Playgroud)
基本上,我不明白为什么我需要传递y给我的cross_val_score功能在这里,而不是使用计算出的机率X在逻辑回归模型。它只是自己做那一部分吗?
所有监督学习方法(包括逻辑回归)都需要真实y值才能适合模型。
拟合模型后,我们通常希望:
cross_val_score为您提供模型预测的交叉验证得分。但是要对预测进行评分,首先需要进行预测,并且首先需要使预测适合模型,这需要X和(true)y。
cross_val_score如您所见,接受不同的评分指标。因此f1-score,例如,如果您选择,在此期间生成的模型预测cross-val-score将是类预测(来自模型的predict()方法)。而且,如果您选择roc_auc作为指标,则用于对模型评分的模型预测将是概率预测(根据模型的predict_proba()方法)。
| 归档时间: |
|
| 查看次数: |
5102 次 |
| 最近记录: |