Sklearn 机器学习 手写数字识别 使用K近邻算法做分类
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖
本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】
Sklearn 机器学习 手写数字识别 使用K近邻算法做分类
在机器学习中,K近邻(K-Nearest Neighbors, KNN)是一种简单直观却非常有效的分类方法。
本文将使用 Sklearn 提供的手写数字数据集,通过 KNN 算法实现分类识别,并进行可视化与模型评估。
📌 一、K近邻算法简介
K近邻算法是一种 基于实例的监督学习方法,它通过比较测试样本与训练样本的距离,选取距离最近的 K 个邻居,并根据邻居类别进行投票,最终将测试样本分类到得票最多的类别中。
主要特点:
- 优点:简单易理解、无需显式训练过程、适合小规模数据。
- 缺点:计算量较大、对噪声敏感、K 值选择需谨慎。
- 常用距离度量:欧氏距离、曼哈顿距离、闵可夫斯基距离等。
📊 二、数据集介绍
本实验使用 Sklearn 内置的 load_digits
数据集,包含 1797 张 8×8 像素的灰度手写数字图片,每个样本的标签为 0~9 之间的数字。
from sklearn.datasets import load_digitsdigits = load_digits()
print("数据集样本数:", digits.data.shape[0])
print("特征维度:", digits.data.shape[1])
print("标签类别:", set(digits.target))
输出示例:
数据集样本数: 1797
特征维度: 64
标签类别: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
🛠 三、数据可视化
我们先简单展示前几个手写数字样本,直观感受数据结构。
import matplotlib.pyplot