# OPTIMAL_KNN_MNIST_QUESTION **Repository Path**: YXY0216/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**: 308 - **Created**: 2025-09-19 - **Last Updated**: 2025-10-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MNIST KNN 手写数字识别 ![model training process](model_training.jpeg) ![webapp screen shot](screen_shot.jpeg) ## 项目简介 本项目基于MNIST数据集,采用K近邻(KNN)算法实现手写数字识别,并通过数据增强(平移、旋转、加噪声)提升模型泛化能力。包含两个主要脚本: - `optimal_knn.py`:自动寻找最优K值,训练KNN模型并保存,支持数据增强和PCA降维。 - `optimal_knn_webapp.py`:基于Gradio的Web应用,用户可在画板上手写数字,模型实时预测结果。 ## 依赖环境 - Python 3.8+ - numpy - matplotlib - scikit-learn - joblib - tqdm - gradio - tensorflow - scipy 安装依赖: ```bash pip install numpy matplotlib scikit-learn joblib tqdm gradio tensorflow scipy ``` ## 使用说明 1. 运行 `optimal_knn.py`,自动下载MNIST数据集,完成数据增强、训练、模型保存和准确率曲线绘制。 2. 运行 `optimal_knn_webapp.py`,启动Web界面。 3. 在浏览器打开 http://127.0.0.1:7860 ,用白色画笔在黑色背景上手写数字(28x28),点击提交即可获得预测结果。 ## 主要特性 - 支持MNIST全量数据,训练集自动增强,提升KNN泛化能力。 - 自动标准化、PCA降维,提升KNN效率。 - Web端输入与训练集风格完全一致,识别准确率高。 - 结果可视化,自动保存最优模型和准确率曲线。 ## 个人信息 - 学号: 202352320208 - 年级: 2023 - 专业: 智能科学与技术 - 班级: 二班