# Optimizing the KNN Algorithm for Cat and Dog Recognition project using Lazypredictor **Repository Path**: ipa-project01-palette/optimizing-the-knn-algorithm-for-cat-and-dog-recognition-project-using-lazypredictor ## Basic Information - **Project Name**: Optimizing the KNN Algorithm for Cat and Dog Recognition project using Lazypredictor - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-05 - **Last Updated**: 2025-11-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 猫狗分类(LazyPredict 快速选模 + Gradio 推理) 本项目用 LazyPredict 对多种经典分类器做快速对比,自动选择准确率最高的模型;然后用 Gradio 提供图片上传推理。全流程仅依赖 CPU 和“flat”特征(把图片转成 32x32 灰度并展平为 1024 维)。 **目录结构(保留的核心文件)** - `train.py`:用 LazyPredict 评估并保存最佳模型到 `models/best_model.pkl` - `webapp.py`:Gradio 推理应用 - `util.py`:数据读取与 flat 特征构建(支持目录或 zip) - `requirements.txt`:依赖清单 - `cat_dog_data.zip`:示例数据(若有) ## 快速开始 环境要求:已安装 Python 3.9+,且可使用 `pip` 安装依赖。 1) 安装依赖(使用你的系统 Python,无需虚拟环境) ```powershell pip install -r requirements.txt ``` 2) 训练并保存最佳模型(会自动探测数据路径) ```powershell python .\train.py ``` 说明:脚本会在以下路径中按顺序查找训练数据: - `../data/train`(文件夹,包含以 `cat.`/`dog.` 开头的图片) - `../data/train.zip`(zip 包) - `./cat_dog_data.zip`(仓库根目录) 首次运行会生成并缓存 `X.pkl`/`y.pkl`,后续训练更快。训练结束后,会在控制台打印模型排行榜,并保存最佳模型到 `models\best_model.pkl`。 3) 启动推理 Web 应用 ```powershell python .\webapp.py ``` 浏览器打开本地链接,上传一张图片即可得到“cat/dog”的预测(若模型支持概率则一并显示)。 ## 常见问题 - 没读取到样本:请检查数据路径是否存在,以及图片命名是否包含 `cat.`/`dog.` 前缀(或上级目录名为 `cat`/`dog`)。 - 想替换自己的数据:把你的数据放到 `../data/train` 或 `../data/train.zip`,结构/命名同上。 - 想减少评估时间:可在 `train.py` 中限制 LazyPredict 的模型集合(例如过滤掉耗时较长的模型)。 ## 许可证与作者信息 学号: 202352320205 年级: 2023 专业: 智能科学与技术 班级: 2 班