尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
04-KNN案例:手写数字识别
1. 需求分析从数万个手写图像的数据集中正确识别数字。2. 数据集说明MNISTModified National Institute of Standards and Technology是手写数字识别标准数据集由美国国家标准与技术研究院改造而来是深度学习入门最经典的图像分类数据集。任务目标灰度手写数字 0~9 十分类图像规格单通道灰度图尺寸28×28 像素像素取值0纯黑~255纯白代表笔画灰度2.1 数据来源2.1.1 TensorFlow/Kerasfrom tensorflow.keras.datasets import mnist (x_train, y_train), (x_test, y_test) mnist.load_data()2.1.2 PyTorchfrom torchvision import datasets train_set datasets.MNIST(root./data, trainTrue, downloadTrue) test_set datasets.MNIST(root./data, trainFalse, downloadTrue)2.1.3 sklearn 内置小 MNIST 简介规模仅 1797 张8×8 灰度手写数字不是原版 28×28结构特征 64 维标签 0-9用途传统机器学习SVM、逻辑回归、KNN快速测试不适合深度学习from sklearn.datasets import load_digits3. 建模这里用sklearn中的小MNIST数据集训练速度快一点原理是一样的。3.1 加载包import joblib import numpy as np from sklearn.datasets import load_digits import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score from PIL import Image3.2 获取数据# 1. 加载数据 digits load_digits() x digits.data # 特征矩阵(1797, 64)1797张图每张8×864像素展平 y digits.target # 标签0-9数字 images digits.images # 原始8×8图像数组 print(x.shape) # (1797, 64) print(images.shape) # (1797, 8, 8) # 2. 可视化1张图片 plt.imshow(images[0], cmapgray) plt.title(f数字{y[0]}) plt.axis(off) plt.show()3.3 数据预处理缺失值、异常值处理这里不用归一化因为知道像素区间范围是[0,255]划分数据集# 归一化 x x / 255 # 划分数据集stratify: 按照y的类别比例进行分割 x_train, x_test, y_train, y_test train_test_split(x, y, test_size0.2, stratifyy, random_state21)3.4 特征工程3.4.1 特征提取这里不用3.4.2 特征预处理消除量纲动作归一化已经前置这里不用做3.5 模型训练网格搜索交叉验证这里用5折交叉验证# 创建模型对象 estimator KNeighborsClassifier() # 网格搜索交叉验证 param_dict {n_neighbors: [1,3,5,7,9]} # 超参数字典, 超参可能出现的值 estimator GridSearchCV(estimator, param_gridparam_dict, cv5) # 创建GridSearchCV模型对象 estimator.fit(x_train, y_train) # 交叉验证前的模型训练 print(f最优评分为{estimator.best_score_}) print(f最优超参组合为{estimator.best_params_}) print(f最优的估计器对象为{estimator.best_estimator_}) print(f具体的交叉验证结果为{estimator.cv_results_})3.6 模型评估# 1获取最优超参的模型对象 estimator estimator.best_estimator_ # 根据需要选择 # 2模型训练 estimator.fit(x_train, y_train) # 3模型预测 y_pre estimator.predict(x_test) # 4模型评估 print(f准确率{accuracy_score(y_test, y_pre)})3.7 模型保存joblib.dump(estimator, model/knn.pkl) # 保存路径可替换3.8 模型预测需要准备1张8*8的图片底色为黑色数字为白色因为数据集过于简单预测结果可能不准这里对28*28做了像素和灰度转换图片已经失真但仍然以下列方式预测原理不变示例图片# 1. 读取图片 img Image.open(image.png) # 展示原始图片 # plt.imshow(img, cmapgray) # plt.axis(off) # 关闭坐标轴 # plt.show() # 2. 像素灰度转换 # 灰度转换 gray_img img.convert(L) # 转为灰度图 L模式单通道灰度 # 像素转换 new_size (8, 8) # 自定义像素大小 resized_gray gray_img.resize(new_size) # 展示像素灰度转换后的图片 # plt.imshow(resized_gray, cmapgray) # plt.axis(off) # 关闭坐标轴 # plt.show() # 3. 数据结构转换 # 灰度图转为数组 img_array np.array(resized_gray) img_model img_array.reshape(1, -1) # 形状从: (8, 8) (1, 64) # 归一化 img_model img_model / 255 # 4. 加载模型 estimator joblib.load(model.pkl) # 5. 预测 y_pre estimator.predict(img_model) print(f该图片的数字是: {y_pre})附件
RELATED

相关推荐

大模型与提示词工程:核心概念与实战指南

大模型与提示词工程:核心概念与实战指南

1. 大模型基础概念解析 大模型(Large Language Model)之所以被称为"大",核心在于其庞大的参数量。以当前主流的大模型为例,参数量通常在数十亿到数千亿级别。这种规模带来的直接效果是模型能够捕捉更复杂的语言模式和知…

📅 2026/10/8 12:25:01
上海交大《动手学大模型》:一份覆盖攻防全栈的 LLM 实践教程深度解读

上海交大《动手学大模型》:一份覆盖攻防全栈的 LLM 实践教程深度解读

已收集到足够的交叉验证信息, 上海交大《动手学大模型》:一份覆盖攻防全栈的 LLM 实践教程深度解读 原项目地址:github.com/Lordog/dive-into-llms主讲教师:张倬胜(上海交通大学 BCMI 实验室)当前版本&…

📅 2026/10/8 3:36:24
Windows账户锁定问题诊断与解决指南

Windows账户锁定问题诊断与解决指南

1. 问题现象与初步诊断当你在Windows环境下尝试访问局域网共享文件夹时,突然弹出一条令人困惑的错误提示:"引用的账户当前已锁定,且可能无法访问"。这个报错通常发生在以下几种典型场景:使用域账户登录后访问共享资源频…

📅 2026/10/9 2:13:35
MORE NEWS

更多资讯

📰

洋浦电工证培训多久拿证,怕考不过白交培训费?别急,看过来

洋浦电工证培训多久拿证,怕考不过白交培训费?别急,看过来 怕考不过白交培训费?洋浦电工证培训多久拿证?这些问题几乎是所有想考电工证的朋友们最关心的。特别是在鹤壁这样水利工程从业者众多的地方,电工证几乎是从事相关工作的“入场券”,但不少人因为…

📰

电工证几年需要审保姆级教程:实操考试心里没底怕挂科?这样备考稳过

电工证几年需要审保姆级教程:实操考试心里没底怕挂科?这样备考稳过 实操考试心里没底怕挂科?别急,这篇保姆级教程帮你从零开始规划,从备考到复审,每一步都给你安排得明明白白,专为焦作初次报考人员量身打造。别再被那些复杂的流程和考试内容吓到,跟着…

📰

电工证可以入户广州?网上查询流程全解,学历不高也能报!

电工证可以入户广州?网上查询流程全解,学历不高也能报! 你是不是也这样想:学历不高,怕电工证考不上?其实,广州入户政策早就放开了不少限制,只要你的电工证 网上查询…

📰

化州办电工证怕考不过白交培训费?内部消息来了!

化州办电工证怕考不过白交培训费?内部消息来了! 怕考不过白交培训费?别急, 化州办电工证 的内部消息我来告诉你,不是随便找个培训机构就能过,选对了方法,考过其实并不难,而且这证在手里,找工作、升职加薪都有用。…

📰

化州办电工证怎么考?2026河南最新政策来了,别再被坑

化州办电工证怎么考?2026河南最新政策来了,别再被坑 你是不是正在为找工作发愁?特种作业证是很多岗位的硬门槛,特别是电工证,几乎是建筑、电力、制造业等行业的“入场券”。2026年河南最新政策已经落地, 化州办电工证…

📰

中级电工证考试占分怎么分配?工地太忙也能拿下上岗必备证书

中级电工证考试占分怎么分配?工地太忙也能拿下上岗必备证书 工地太忙根本没时间复习考试,每天跑现场、盯进度、带班组,哪还有空看书?但中级电工证作为 上岗必备…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬