时尚搭配推荐系统
基于Flask的智能服装搭配推荐系统,采用协同过滤和内容过滤的混合推荐算法,支持虚拟试穿和个性化建议。
功能特色
🤖 智能推荐
- 混合推荐算法: 结合协同过滤和内容过滤
- 个性化推荐: 基于用户身材、偏好、场合定制
- 实时推荐: 根据用户行为动态调整
- 推荐解释: 提供推荐理由说明
👗 虚拟试穿
- 3D试衣间: 在线虚拟试穿功能
- 多角度查看: 正面、侧面、背面视角
- 尺寸调节: 根据身高体型调整
- 试穿记录: 保存历史试穿记录
📊 数据分析
- 可视化图表: 使用ECharts展示数据
- 用户行为分析: 浏览、评分、收藏统计
- 热门商品排行: 实时热门服装排行
- 推荐效果分析: 算法性能评估
👤 用户管理
- 用户注册登录: 完整的认证系统
- 个人资料管理: 身材、偏好设置
- 评分收藏: 对服装进行评分和收藏
- 历史记录: 浏览和试穿历史
🛡️ 管理后台
- 服装管理: 添加、编辑、删除服装
- 用户管理: 用户信息查看和管理
- 数据统计: 系统数据统计分析
- 权限控制: 管理员权限管理
技术架构
后端技术
- 框架: Flask 2.3.3
- 数据库: MySQL (使用PyMySQL)
- ORM: SQLAlchemy
- 认证: Flask-Login
- 推荐算法: scikit-learn, surprise
- 数据处理: pandas, numpy
前端技术
- UI框架: Bootstrap 5.3.0
- 图表库: ECharts 5.4.2
- 图标: Font Awesome 6.4.0
- 交互: JavaScript (ES6+)
数据结构
- DataFrame: 大量使用pandas DataFrame进行数据处理
- 向量化: TF-IDF特征提取和向量化计算
- 相似度计算: 余弦相似度算法
项目结构
fashion_recommendation_system/
├── app.py # 主应用文件
├── config.py # 配置文件
├── run.py # 启动脚本
├── recommendation_engine.py # 推荐算法引擎
├── ai_advisor.py # AI顾问模块
├── requirements.txt # 依赖列表
├── database_init.sql # 数据库初始化
├── templates/ # HTML模板
│ ├── base.html
│ ├── index.html
│ ├── login.html
│ ├── register.html
│ ├── dashboard.html
│ ├── recommendations.html
│ ├── virtual_try_on.html
│ ├── analytics.html
│ └── ...
├── static/ # 静态文件
│ ├── css/
│ │ └── style.css
│ ├── js/
│ │ └── main.js
│ └── uploads/
└── README.md
快速开始
环境要求
- Python 3.8+
- MySQL 5.7+
- pip
访问系统
打开浏览器访问: http://localhost:5000
默认账户
- 管理员: admin / admin123
- 测试用户: testuser / test123
配置说明
数据库配置
在 config.py 中修改数据库连接:
python
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://username:password@localhost/fashion_db'
推荐算法参数
在 recommendation_engine.py 中调整算法参数:
python
CONTENT_WEIGHT = 0.6 # 内容推荐权重
COLLABORATIVE_WEIGHT = 0.4 # 协同过滤权重
MIN_RATINGS_FOR_CF = 5 # 协同过滤最小评分数量
功能使用
用户注册
- 访问注册页面
- 填写基本信息(用户名、邮箱、密码)
- 完善身材信息(身高、体重、体型)
- 选择风格偏好
- 提交注册
获取推荐
- 登录后进入个人推荐页面
- 系统根据个人信息自动推荐
- 可以根据场合、季节筛选
- 对推荐服装进行评分
虚拟试穿
- 点击服装详情页的"虚拟试穿"按钮
- 在试衣间选择搭配服装
- 调整身高和体型参数
- 切换不同角度查看效果
- 保存试穿照片
查看分析
- 进入数据分析页面
- 查看各类统计图表
- 了解个人喜好趋势
- 导出数据报表
API接口
用户认证
POST /login- 用户登录POST /register- 用户注册GET /logout- 用户退出
推荐接口
GET /api/recommendations/<user_id>- 获取推荐POST /api/rate_clothing- 服装评分GET /api/outfit_recommendations- 搭配推荐
数据接口
GET /api/analytics- 分析数据GET /api/user_stats- 用户统计POST /api/save_outfit- 保存搭配
推荐算法
协同过滤
- SVD算法: 基于矩阵分解的隐式反馈
- KNN算法: 基于用户的最近邻推荐
- 相似度计算: 余弦相似度
内容过滤
- TF-IDF特征: 文本特征提取
- 特征向量化: 服装属性向量化
- 相似度匹配: 内容相似度计算
混合推荐
- 加权融合: 结合多种推荐结果
- 动态权重: 根据数据质量调整权重
- 冷启动处理: 新用户推荐策略
功能截图


















常见问题
Q: 数据库连接失败
A: 检查MySQL服务是否启动,确认用户名密码正确
Q: 推荐结果不准确
A: 增加用户评分数据,调整算法参数
Q: 虚拟试穿加载慢
A: 优化图片大小,使用CDN加速
Q: 内存使用过高
A: 优化DataFrame操作,添加数据缓存