彩票数据分析系统
项目概述
本项目是一个彩票数据分析系统,支持双色球和大乐透的数据管理、统计分析和智能选号功能。系统采用前后端分离架构,提供直观的用户界面和强大的数据分析能力。
技术栈
后端
- 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
安装和运行
快速启动 ⭐ 推荐
使用一键启动脚本(推荐方式):
# 确保已安装Python 3.8+和Node.js 16+
python start_system.py
脚本会自动:
- 检查Python版本和依赖
- 启动后端服务(端口8000)
- 启动前端服务(端口5173)
- 显示访问地址和使用说明
手动启动
后端
- 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
- 安装依赖
cd backend
pip install -r requirements.txt
- 配置数据库
- 创建 MySQL/PostgreSQL 数据库
- 修改
backend/app/core/database.py中的数据库连接配置
- 启动服务
uvicorn main:app --reload --host 0.0.0.0 --port 8000
前端
- 安装依赖
cd frontend
npm install
- 启动开发服务器
npm run dev
- 构建生产版本
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唯一性判断) - 插入顺序为开奖日期升序,保证历史数据先入库,最新数据最后入库
- 实时显示更新结果和新增记录数量
- 更新完成后自动刷新首页最新开奖信息
手动更新
cd backend
python update_lottery.py
自动定时更新
cd backend
python schedule_update.py
系统会在每天凌晨2点自动检查并更新数据。
高级分析功能 ⭐
- 进入"高级分析"页面
- 选择彩票类型(双色球/大乐透)
- 选择分析类型:
- 遗漏值分析: 查看各号码的遗漏期数
- 和值分析: 分析红球和值的分布规律
- AC值分析: 邻号差值分析
- 质合比分析: 质数与合数比例
- 012路分析: 除3余数分布
- 跨度分析: 号码跨度统计
- 综合分析: 多维度整合分析
- 设置分析期数(10-500期)
- 点击"分析"按钮查看结果
智能预测功能 ⭐
- 进入"智能预测"页面
- 选择彩票类型
- 设置训练期数(建议100-500期)
- 点击"训练模型"按钮
- 训练完成后,可选择以下预测方法:
- 机器学习预测: 基于AI算法的预测
- 模式预测: 基于统计模式的预测
- 集成预测: 多方法综合预测
- 查看预测结果和置信度
数据查询
- 在查询表单中输入查询条件
- 点击"查询"按钮
- 查看查询结果
统计分析
- 进入统计分析页面
- 选择要分析的彩票类型
- 查看统计图表
智能选号
- 进入智能选号页面
- 选择彩票类型和选号策略
- 设置生成注数
- 点击"生成号码"按钮
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}- 集成预测
常见问题
-
数据库连接失败
- 检查数据库服务是否启动
- 验证数据库连接配置是否正确
-
前端无法连接后端
- 确认后端服务是否正常运行
- 检查前端环境配置中的 API 地址是否正确
-
数据导入失败
- 检查 JSON 文件格式是否正确
- 确认数据库表结构是否完整
-
机器学习预测失败
- 确保历史数据充足(建议至少100期)
- 检查训练参数设置是否合理
开发计划
- 添加高级数据分析功能
- 实现机器学习预测系统
- 优化数据可视化展示
- 添加用户认证功能
- 实现数据备份和恢复
- 优化数据导入性能
- 添加更多统计分析功能
- 实现自定义选号策略
- 添加移动端适配
- 实现数据导出功能增强
贡献指南
- Fork 项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建 Pull Request
许可证
MIT License
更新日志
v2.0.0 (2024-01-XX)
- ✨ 新增高级数据分析功能
- ✨ 新增机器学习预测系统
- ✨ 新增遗漏值、和值、AC值等分析
- ✨ 新增质合比、012路、跨度分析
- ✨ 优化数据可视化展示
- 🔧 更新依赖包版本
- 📝 完善API文档
v1.0.0 (2024-01-XX)
- 🎉 初始版本发布
- ✨ 基础数据管理功能
- ✨ 基础统计分析
- ✨ 智能选号功能
- ✨ 前后端分离架构
Description
Languages
Python
50.8%
Vue
33.5%
CSS
8.3%
Shell
3.9%
JavaScript
3.4%
Other
0.1%