【发布时间】:2015-05-27 07:51:31
【问题描述】:
我已经使用 scikit-learn 模块在 python 中编写了一个代码来执行具有递归特征消除和交叉验证的 SVM 分类:
svc = SVC(kernel="linear")
rfecv = RFECV(estimator=svc, step=1, cv=StratifiedKFold(y_train, 2), scoring='f1')
svc.fit(X_train, y_train)
rfecv.fit(X_train, y_train)
不幸的是,我不明白为什么使用交叉验证模型 (rfecv.fit) 时的输出分类与默认模型 (svc.fit) 不同。基于预测分数 (f1) 的值,交叉验证模型是否代表性能最佳的模型?如果是,如何提取有关该模型训练和验证的数据的信息?
此外,任何人都可以解释为什么(根据 scikit-learn 文档:http://scikit-learn.org/stable/modules/cross_validation.html)我们需要提供一个测试集进行最终评估,即使我们使用了交叉验证(似乎浪费数据我)?据我所知,这种最终评估称为保持方法,是最简单的交叉验证。
【问题讨论】:
标签: python machine-learning scikit-learn classification svm