# 彩票数据分析系统 ## 项目概述 本项目是一个彩票数据分析系统,支持双色球和大乐透的数据管理、统计分析和智能选号功能。系统采用前后端分离架构,提供直观的用户界面和强大的数据分析能力。 ## 技术栈 ### 后端 - Python 3.8+ - FastAPI - SQLAlchemy - MySQL/PostgreSQL - Pydantic - Scikit-learn (机器学习) - NumPy (数值计算) - Pandas (数据处理) ### 前端 - Vue 3 - Vite - Element Plus - ECharts - Pinia - Vue Router ## 系统功能 ### 1. 数据管理 - 双色球和大乐透历史数据导入 - 数据查询和筛选 - 数据导出 - 手动数据录入 - **自动数据更新** ⭐ 新功能 ### 2. 基础统计分析 - 号码出现频率统计 - 热门号码分析 - 冷门号码分析 - 数据可视化展示 ### 3. 高级数据分析 ⭐ 新功能 - **遗漏值分析**: 分析各号码的遗漏期数 - **和值分析**: 统计红球和值的分布规律 - **AC值分析**: 邻号差值分析 - **质合比分析**: 质数与合数的比例分析 - **012路分析**: 除3余数分析 - **跨度分析**: 最大最小号码差值分析 - **综合分析**: 多维度数据整合分析 ### 4. 智能预测系统 ⭐ 新功能 - **机器学习预测**: 基于历史数据的AI预测 - **模式预测**: 基于统计模式的预测 - **集成预测**: 多方法综合预测 - **预测模型训练**: 可自定义训练参数 - **预测结果评估**: 预测准确率统计 ### 5. 智能选号 - 随机选号 - 频率选号 - 热门号码选号 - 冷门号码选号 - 自定义选号策略 ## 项目结构 ``` lottery/ ├── backend/ # 后端代码 │ ├── app/ │ │ ├── api/ # API 路由 │ │ │ ├── endpoints/ # 基础API端点 │ │ │ └── v1/ # API版本1 │ │ ├── core/ # 核心配置 │ │ ├── models/ # 数据模型 │ │ ├── schemas/ # 数据验证 │ │ └── services/ # 业务逻辑 │ │ ├── analysis_service.py # 基础分析服务 │ │ ├── advanced_analysis.py # 高级分析服务 ⭐ │ │ └── prediction_service.py # 预测服务 ⭐ │ ├── requirements.txt # 依赖包 │ └── main.py # 入口文件 ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 组件 │ │ ├── router/ # 路由配置 │ │ ├── views/ # 页面 │ │ │ ├── AdvancedAnalysis.vue # 高级分析页面 ⭐ │ │ │ └── Prediction.vue # 预测页面 ⭐ │ │ ├── App.vue # 根组件 │ │ └── main.js # 入口文件 │ ├── package.json # 依赖配置 │ └── vite.config.js # Vite 配置 └── README.md # 项目文档 ``` ## 开发环境要求 - Python 3.8+ - Node.js 16+ - MySQL 8.0+ 或 PostgreSQL 12+ - npm 或 yarn ## 安装和运行 ### 快速启动 ⭐ 推荐 使用一键启动脚本(推荐方式): ```bash # 确保已安装Python 3.8+和Node.js 16+ python start_system.py ``` 脚本会自动: - 检查Python版本和依赖 - 启动后端服务(端口8000) - 启动前端服务(端口5173) - 显示访问地址和使用说明 ### 手动启动 #### 后端 1. 创建虚拟环境 ```bash python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows ``` 2. 安装依赖 ```bash cd backend pip install -r requirements.txt ``` 3. 配置数据库 - 创建 MySQL/PostgreSQL 数据库 - 修改 `backend/app/core/database.py` 中的数据库连接配置 4. 启动服务 ```bash uvicorn main:app --reload --host 0.0.0.0 --port 8000 ``` #### 前端 1. 安装依赖 ```bash cd frontend npm install ``` 2. 启动开发服务器 ```bash npm run dev ``` 3. 构建生产版本 ```bash npm run build ``` ## 使用说明 ### 数据导入与更新说明 #### 数据导入 - 支持通过前端页面或API导入双色球、大乐透历史数据(JSON格式)。 - 导入时,系统会自动根据 `open_time`(开奖日期)升序排序,确保数据库 `id=1` 为最早的开奖数据。 - 导入过程自动去重:只导入数据库中未出现过的开奖日期数据。 - 支持 pandas DataFrame 或 JSON 文件导入。 #### 数据自动/手动更新 ⭐ 新功能 - **前端更新功能**: 在首页提供"更新双色球"、"更新大乐透"、"更新全部"三个按钮 - **API更新接口**: 支持通过API接口更新数据 - `POST /api/v1/lottery/update/ssq` - 更新双色球数据 - `POST /api/v1/lottery/update/dlt` - 更新大乐透数据 - `POST /api/v1/lottery/update/all` - 更新所有彩票数据 - 更新逻辑: - 从聚合数据API自动获取最新开奖记录 - 只插入数据库中未出现过的开奖日期(`open_time` 唯一性判断) - 插入顺序为开奖日期升序,保证历史数据先入库,最新数据最后入库 - 实时显示更新结果和新增记录数量 - 更新完成后自动刷新首页最新开奖信息 ##### 手动更新 ```bash cd backend python update_lottery.py ``` ##### 自动定时更新 ```bash cd backend python schedule_update.py ``` 系统会在每天凌晨2点自动检查并更新数据。 ### 高级分析功能 ⭐ 1. 进入"高级分析"页面 2. 选择彩票类型(双色球/大乐透) 3. 选择分析类型: - **遗漏值分析**: 查看各号码的遗漏期数 - **和值分析**: 分析红球和值的分布规律 - **AC值分析**: 邻号差值分析 - **质合比分析**: 质数与合数比例 - **012路分析**: 除3余数分布 - **跨度分析**: 号码跨度统计 - **综合分析**: 多维度整合分析 4. 设置分析期数(10-500期) 5. 点击"分析"按钮查看结果 ### 智能预测功能 ⭐ 1. 进入"智能预测"页面 2. 选择彩票类型 3. 设置训练期数(建议100-500期) 4. 点击"训练模型"按钮 5. 训练完成后,可选择以下预测方法: - **机器学习预测**: 基于AI算法的预测 - **模式预测**: 基于统计模式的预测 - **集成预测**: 多方法综合预测 6. 查看预测结果和置信度 ### 数据查询 1. 在查询表单中输入查询条件 2. 点击"查询"按钮 3. 查看查询结果 ### 统计分析 1. 进入统计分析页面 2. 选择要分析的彩票类型 3. 查看统计图表 ### 智能选号 1. 进入智能选号页面 2. 选择彩票类型和选号策略 3. 设置生成注数 4. 点击"生成号码"按钮 ## API 文档 启动后端服务后,访问以下地址查看 API 文档: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ### 新增API端点 ⭐ #### 高级分析API - `GET /api/v1/advanced-analysis/missing-value/{lottery_type}` - 遗漏值分析 - `GET /api/v1/advanced-analysis/sum-value/{lottery_type}` - 和值分析 - `GET /api/v1/advanced-analysis/ac-value/{lottery_type}` - AC值分析 - `GET /api/v1/advanced-analysis/prime-composite/{lottery_type}` - 质合比分析 - `GET /api/v1/advanced-analysis/road-012/{lottery_type}` - 012路分析 - `GET /api/v1/advanced-analysis/span/{lottery_type}` - 跨度分析 - `GET /api/v1/advanced-analysis/comprehensive/{lottery_type}` - 综合分析 #### 预测API - `POST /api/v1/prediction/train/{lottery_type}` - 训练预测模型 - `GET /api/v1/prediction/predict/{lottery_type}` - 机器学习预测 - `GET /api/v1/prediction/pattern/{lottery_type}` - 模式预测 - `GET /api/v1/prediction/ensemble/{lottery_type}` - 集成预测 ## 常见问题 1. 数据库连接失败 - 检查数据库服务是否启动 - 验证数据库连接配置是否正确 2. 前端无法连接后端 - 确认后端服务是否正常运行 - 检查前端环境配置中的 API 地址是否正确 3. 数据导入失败 - 检查 JSON 文件格式是否正确 - 确认数据库表结构是否完整 4. 机器学习预测失败 - 确保历史数据充足(建议至少100期) - 检查训练参数设置是否合理 ## 开发计划 - [x] 添加高级数据分析功能 - [x] 实现机器学习预测系统 - [x] 优化数据可视化展示 - [ ] 添加用户认证功能 - [ ] 实现数据备份和恢复 - [ ] 优化数据导入性能 - [ ] 添加更多统计分析功能 - [ ] 实现自定义选号策略 - [ ] 添加移动端适配 - [ ] 实现数据导出功能增强 ## 贡献指南 1. Fork 项目 2. 创建特性分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 许可证 MIT License ## 更新日志 ### v2.0.0 (2024-01-XX) - ✨ 新增高级数据分析功能 - ✨ 新增机器学习预测系统 - ✨ 新增遗漏值、和值、AC值等分析 - ✨ 新增质合比、012路、跨度分析 - ✨ 优化数据可视化展示 - 🔧 更新依赖包版本 - 📝 完善API文档 ### v1.0.0 (2024-01-XX) - 🎉 初始版本发布 - ✨ 基础数据管理功能 - ✨ 基础统计分析 - ✨ 智能选号功能 - ✨ 前后端分离架构