创建一个简单的书写识别系统,使用KNN算法来识别手写数字。分别使用手写KNN算法和调用scikit-learn
库来实现。在数据处理过程中,将使用一个常见的手写数字数据集,如MNIST数据集。
数据集
我们将使用MNIST数据集,它包含60000个训练样本和10000个测试样本。每个样本是一个28x28像素的灰度图像,表示0-9之间的手写数字。
手写KNN算法
我们首先手写一个KNN算法来实现书写识别系统。
import numpy as np
from collections import Counter
from sklearn.datasets import fetch_openml
from sklearn.model_selection import train_test_split
# 加载MNIST数据集
mnist = fetch_openml('mnist_784')
X, y = mnist.data, mnist.target.astype(np.int)
# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42