OpenCV-Python实战(番外篇)——利用 KNN 算法识别手写数字
前言
K-最近邻 (k-nearest neighbours
, KNN
) 是监督学习中最简单的算法之一,KNN
可用于分类和回归问题,在博文《OpenCV-Python实战(13)——OpenCV与机器学习的碰撞》中,我们已经学习了如何在 OpenCV
中实现和训练 KNN
聚类算法,同时通过简单的示例了解了 KNN
算法的用法。在本文中,我们将学习如何使用 KNN
分类器执行手写数字识别,同时我们将从基础程序开始,并通过对其进行改进以提高其性能。
手写数字数据集 MNIST 介绍
为了保证完整性,从算法所用的训练数据讲起,训练数据是由 MNIST
手写数字组成的,MNIST
数据集来自美国国家标准与技术研究所,由来自 250 个不同人手写的数字构成,其中训练集包含 60000
张图片,测试集包含 10000
张图片,每个图片都有其标签,图片大小为 28*28
。许多机器学习库提供了加载 MNIST
数据集的方法,这里使用 keras
库进行加载:
# 导入 keras 库