# OPTIMAL_KNN_MNIST_QUESTION **Repository Path**: li-kun-zhe/optimal_knn_mnist_question ## Basic Information - **Project Name**: OPTIMAL_KNN_MNIST_QUESTION - **Description**: 本项目使用gradio应用在 minist 上训练的最有 KNN 模型就行手写数字识别。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 297 - **Created**: 2025-09-19 - **Last Updated**: 2025-09-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 最佳 KNN 手写数字识别 ![训练过程](modle_training.png) ![效果图](%E6%95%88%E6%9E%9C%E5%9B%BE1.png) ![输入图片说明](%E6%95%88%E6%9E%9C%E5%9B%BE2.png) ![输入图片说明](%E6%95%88%E6%9E%9C%E5%9B%BE3.png) ## 项目简介 这个项目包含两个主要的Python脚本:`optimal_knn.py` 和 `optimal_knn_webapp.py`。 `optimal_knn.py` 脚本用于找出最优的K值,以便在K近邻分类器中使用。它首先加载手写数字数据集,然后尝试不同的K值,找出能够使模型准确率最高的K值。最后,它将最优的KNN模型保存到一个pickle文件中。 `optimal_knn_webapp.py` 脚本使用[Gradio](https://www.gradio.app/)库创建一个web应用,该应用可以接收用户的手写数字图像输入,然后使用之前保存的最优KNN模型进行预测,最后返回预测的数字。Gradio库使得创建这个用户友好的界面变得简单快捷。 ## 安装 以下是安装步骤: 1. 克隆这个仓库到你的本地机器上。 2. 建议使用虚拟环境管理依赖。 3. 安装所需的 Python 库: ```bash pip install -r requirements.txt ``` ## 使用 ### 1. 训练最优的 KNN 模型 运行 `optimal_knn.py`,脚本会完成以下工作: - 自动加载手写数字数据集并分割训练/测试集; - 评估 K=1 到 40 的 KNN 模型,使用 tqdm 展示进度; - 保存准确率折线图至 `accuracy_plot.pdf`; - 将最优模型保存为 `best_knn_model.pkl`。 ```bash python optimal_knn.py ``` ### 2. 启动 Gradio Web 应用 确认已经生成 `best_knn_model.pkl` 后,运行下列命令启动 Web 应用: ```bash python optimal_knn_webapp.py ``` 浏览器会自动打开,或按照终端提示访问链接,在 Sketchpad 中绘制数字并查看预测结果。 ## 个人信息 - 学号: 202352320206 - 年级: 2023 - 专业: 智能科学与技术 - 班级: 2班