# 使用集成学习优化(KNN 算法识别猫狗)项目 **Repository Path**: qiqizi-ha/faiss_dog_cat_question-1 ## Basic Information - **Project Name**: 使用集成学习优化(KNN 算法识别猫狗)项目 - **Description**: 使用集成学习优化(KNN 算法识别猫狗)项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-10-29 - **Last Updated**: 2024-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目描述 本项目旨在通过集成学习算法对 KNN 猫狗识别项目进行优化。项目中使用了多种集成学习算法,包括但不限于 VotingClassifier(投票分类器)、StackingClassifier(堆叠分类器)、BaggingClassifier(装袋分类器)、AdaBoostClassifier(自适应提升分类器)和 GradientBoostingClassifier(梯度提升分类器)等,来提高猫狗识别的准确率。 # 功能 本项目实现了以下功能: - 使用多种集成学习算法对 KNN 猫狗识别进行优化。 - 支持从预先生成的 X.pkl 和 y.pkl 二进制文件中加载数据用于模型训练和评估。 - 在训练过程中记录每个集成学习算法模型的训练用时和评估用时,并打印日志。 - 能够保存准确率最高的集成学习模型为二进制文件。 - 把保存模型用Gradio部署为一个网页应用ensumble_webapp.py,可以通过点击上传一个图片,然后通过模型判断该图片是猫还是狗 # 依赖 本项目依赖以下库: - numpy - sklearn - xgboost - pickle - logging - time # 使用 1. 安装依赖库 2. 确保已经有预训练生成的 X.pkl 和 y.pkl 数据文件。 3. 运行训练脚本 ```bash python train_ensemble.py ``` 4. 查看训练结果 - 训练过程中会在控制台打印出每个模型的训练时间、预测时间和准确率信息。 - 训练完成后,程序会将准确率最高的模型保存为 best_ensemble_model.pkl 文件。 # 注意 - 本项目使用Python 3.8及以上版本进行开发和测试。 - 项目中的集成学习算法参数可根据实际情况进行调整,以进一步优化模型性能。 - 若在运行过程中出现库未定义等错误,请检查相关库是否正确安装。 - 本项目使用sklearn库中的K近邻分类器作为对比实验。 - 本项目使用logging库记录日志。 ![alt text](6222eece16f165ddd04803414e21df7.png) ![alt text](6de2f5f58a1e12404c0f6996482aaf4.png) ![alt text](eb5ab7667b3a33ec4af23edbf044841.png) ![alt text](777d3b8467719791227f2ad3bddcbbf.png) ![alt text](599b1f95d47db168f55535b37466f8c.png) ![alt text](edb403112dac206bb9ca79da8f4fd92.png) ## 个人信息 - 学号: 202252320203 - 年级: 22级 - 专业: 智能科学与技术 - 班级: 二班