在上一篇我们已然训练了一个用于对数字图像识别的模型,但我们目前还不知道该模型在识别数字图像效率如何?所以,本文将对该模型进行评估。
使用交叉验证衡量准确性
评估模型的一个好方法是使用交叉验证
,让我们使用cross_val_score()
函数来评估我们的 SGDClassifier
模型,使用三折的 k 折交叉验证。k-fold 交叉验证
意味着将训练集
分成 k 个折叠(在本例中是三个),然后训练模型 k 次
,每次取出一个不同的折叠进行评估:
当您看到这组数字,是不是感到很兴奋?毕竟所有交叉验证折叠
的准确率(预测准确率)均超过了 95%。然而,在您兴奋于这组数字前,还是让我们来看看一个假分类器
,它只是将每张图片归入最常见的类别,在本例中就是负类别
(即非 5):
from sklearn.dummy import DummyClassifier
dummy_clf = DummyClassifier()
dummy_clf.fit(X_train, y_train_5)
print(any(dummy_clf.predict(X_train))) # prints False: no 5s detected
您能猜出这个模型的准确度吗?让我们一探究竟:
没错,它的准确率超过 90%!这只是因为只有大约 10% 的图片是 5,所以如果你总