Python 交叉验证后,让scikit对所有培训数据进行学习培训

Python 交叉验证后,让scikit对所有培训数据进行学习培训,python,scikit-learn,Python,Scikit Learn,我正在使用scikit学习训练分类器。我还想做交叉验证,但在交叉验证之后,我想对整个数据集进行培训。我发现cross_validation.cross_val_score()只返回分数 编辑:我想用我所有的数据来训练交叉验证分数最好的分类器。只需计算交叉验证分数,然后训练你的模型。这些是独立的步骤: >>> scores = cross_val_score(model, X_train, y_train, cv=5) >>> model.fit(X_train

我正在使用scikit学习训练分类器。我还想做交叉验证,但在交叉验证之后,我想对整个数据集进行培训。我发现cross_validation.cross_val_score()只返回分数


编辑:我想用我所有的数据来训练交叉验证分数最好的分类器。

只需计算交叉验证分数,然后训练你的模型。这些是独立的步骤:

>>> scores = cross_val_score(model, X_train, y_train, cv=5)
>>> model.fit(X_train, y_train)

我的建议是不要使用性能最好的交叉验证拆分。这可能会给你带来高偏见的问题。毕竟,性能恰巧是好的,因为测试时使用的折叠恰好与训练时使用的数据相匹配。当你把它推广到现实世界时,这可能不会发生

我从Andrew Ng那里得到的一个策略是拥有一辆火车、DEV和测试套件。我首先将您的数据集拆分为测试和训练集。然后在训练集上使用交叉折叠验证,有效地将训练集分为训练集和开发集。进行交叉验证以验证您的模型,并存储精度、召回率和其他指标以构建ROC曲线。求平均值并报告这些值。您还可以使用您的dev集调优超参数


接下来,用整个训练集训练模型,然后用你的保持测试集验证模型。

只是为了澄清-你想用你所有的数据训练交叉验证得分最好的分类器,对吗?这似乎很奇怪,交叉验证的目的是避免过拟合,在验证数据上运行哪种方法更容易呢?@Greg这实际上是正确的。