交叉验证后对所有训练数据进行scikit-learn训练

时间:2014-03-23 21:22:51

标签: python scikit-learn

我正在使用scikit-learn来训练分类器。我也想进行交叉验证,但在交叉验证后,我想训练整个数据集。我发现cross_validation.cross_val_score()只返回分数。

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

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