如何为 mnist 数据集中的交叉验证准备数据?

数据挖掘 scikit-学习 喀拉斯 交叉验证 极简主义
2022-02-13 03:40:37

如何对 MNIST 数据集使用 k 折交叉验证?我阅读了有关 sci-kit learn 的文章文档,在该示例中,他们使用整个 iris 数据集进行交叉验证。

from sklearn.model_selection import cross_val_score
clf = svm.SVC(kernel='linear', C=1)
scores = cross_val_score(clf, iris.data, iris.target, cv=5)
scores                                              

例如在 keras 中导入 mnist 数据集时

from keras.datasets import mnist
(Xtrain,Ytrain),(Xtest,Ytest)=mnist_load()

在这个数据集中已经划分为 test 和 train ,所以要对整个数据集应用交叉验证,我们需要将 Xtrain 和 Xtest 作为一个实体来利用整个数据。

3个回答

对于 MNIST 数据,您需要做的是,对您的训练数据应用交叉验证以检查模型的性能。然后,如果您对模型的性能感到满意,您可以在整个训练集上对其进行训练。之后,您将使用经过训练的模型对测试数据集进行预测。

from sklearn.model_selection import cross_val_score
clf = svm.SVC(kernel='linear', C=1)
scores = cross_val_score(clf, iris.data, iris.target, cv=5)
scores

他们没有使用整个数据进行交叉验证(这只是一种错觉)

cv参数是整数时,cross_val_score 默认使用KFoldorStratifiedKFold策略,如果估算器派生自ClassifierMixin..

所以它在通话中是一种自动化的..

检查这个 kaggle 内核链接

您可以在测试集上验证您的结果,或者如果您想使用 KFold,那么您可以首先连接训练集和测试集,然后使用 KFold 拆分来评估您的结果。希望能帮助到你!