g25ai1020-lab/Capstone-Project-Group-4
GitHub: g25ai1020-lab/Capstone-Project-Group-4
面向银行场景的金融分析平台,整合ETL数据管道、金融指标分析、股价预测和欺诈检测功能,提供端到端的数据工程与建模解决方案。
Stars: 0 | Forks: 0
# Nexus Bank 金融分析毕业项目 — Team 4
## 团队成员
|--------|-------------|---------|
Devabhakthuni Vijay Sai Krishna | G25AI1016 | g25ai1016@iitj.ac.in
Divya Daiyya | G25AI1017 | g25ai1017@iitj.ac.in |
Durgesh Pandey | G25AI1018 | g25ai1018@iitj.ac.in |
Gautam Pant | G25AI1019 | g25ai1019@iitj.ac.in |
Gundlapalli Venkata Suneel Kumar | G25AI1020 | g25ai1020@iitj.ac.in |
## 项目概述
本项目的主要目标是:
- 构建自动化的金融数据摄入 pipeline。
- 清洗和验证金融与交易数据集。
- 构造金融指标和分析特征。
- 使用时间序列模型预测股票价格走势。
- 利用机器学习检测欺诈交易。
- 高效存储和管理大规模数据集。
- 创建用于业务洞察的交互式 dashboard。
- 展示适用于银行应用的可扩展数据工程实践。
### 核心功能
## 数据工程:
- 自动化金融数据获取
- 批处理和流式摄入工作流
- 数据质量验证
- 缺失值处理
- 重复项移除
- 异常值检测
- 数据库索引与优化
- PostgreSQL 表分区
## 金融分析:
- 移动平均线 (MA7, MA30)
- 指数移动平均线 (EMA12, EMA26)
- 相对强弱指数 (RSI-14)
- 布林带
- 波动率指标
- 投资组合风险分析
- 相关性分析
## 机器学习
- 股票价格预测
- ARIMA 时间序列预测
- 滚动验证
- MAE, RMSE, MAPE 评估
## 欺诈检测
- 逻辑回归
- 随机森林分类
- 精确率
- 召回率
- F1 分数
- ROC-AUC 评估
## Dashboard 与可视化
- 交互式 Plotly Dashboard
- 股票价格趋势
- 风险热力图
- 波动率分析
- 欺诈活动时间线
- 投资组合分析
### 使用的技术
## 编程语言:
- Python
- SQL
## 库:
- Pandas
- NumPy
- Scikit-Learn
- Statsmodels
- Plotly
- yfinance
- Matplotlib
- Seaborn
## 数据库
- SQLite
- PostgreSQL
## 工具
- Git
- GitHub
- Jupyter Notebook
## 解决方案架构
数据源
│
├── Yahoo Finance
├── FRED
├── Kaggle Fraud Dataset
│
▼
数据获取层
│
▼
数据清洗与验证
│
▼
特征工程
│
├── 移动平均线
├── RSI
├── 波动率
├── 布林带
├── EMA 指标
│
▼
数据库存储
│
├── SQLite
└── PostgreSQL 分区
│
▼
机器学习模型
│
├── ARIMA 预测
├── 逻辑回归
└── 随机森林
│
▼
分析 Dashboard
│
▼
业务洞察与建议
## 运行顺序 (scripts/ 文件夹):
1. 01_data_acquisition.py (--mode sample | --mode live) -- 现已包含 FX 汇率
2. 02_data_cleaning.py -- 现在也会清洗 FX 汇率
3. 02b_eda.py (探索性数据分析)
4. 03_pipeline_storage.py (SQLite 批量加载器 + 索引)
5. 03a_streaming_ingestion.py (新增:仅追加的流式摄入演示)
6. 03b_postgres_partitioning.py (新增:真正的 PostgreSQL RANGE 分区 + 证明)
7. 04_feature_engineering.py
8. 05_modeling_forecasting.py
9. 06_modeling_fraud.py
10. 07_visualization.py (静态图表)
11. 07b_interactive_dashboard.py (交互式 Plotly dashboard)
## 本次更新的改动
- **新增 FX 汇率**:EURUSD, GBPUSD, USDJPY,获取和清洗方式与股票价格相同
(任务书明确要求包含“股票价格、FX 汇率”)。
- **真正分离的流式与批处理**:03a_streaming_ingestion.py 是一个真正的仅追加轮询循环 (streaming_ticks 表),与替换整表的批量加载器不同。
- **真正的数据库分区**:03b_postgres_partitioning.py 构建了真正的 PostgreSQL
`PARTITION BY RANGE (date)` 表 (每年一个) —— 而不仅仅是 SQLite 索引。证明位于
evidence/postgres_partitioning_proof.txt:展示了真实的每个分区行数以及
EXPLAIN ANALYZE 查询计划,确认了分区裁剪 (仅扫描匹配年份的分区)。
- 需要运行中的 PostgreSQL 实例 —— 有关连接设置,请参阅脚本 docstring
(`CREATE USER`, `CREATE DATABASE`, 安装 psycopg2-binary)。
## 关键输出
- data/clean/ -> 清洗后的数据集,包括 fx_rates_clean.csv
- db/nexus_bank.db -> SQLite 数据仓库 (批处理 + 流式表)
- evidence/postgres_partitioning_proof.txt -> 真正的分区证明 (查询计划、行数)
- charts/ -> 10 张静态 PNG 图表 (6 张核心 + 4 张 EDA)
- dashboard/nexus_bank_dashboard.html -> 直接在任何浏览器中打开;交互式
## 提交前
- [ ] 将此文件夹推送到 GitHub 仓库,并将 URL 添加到报告中
- [ ] 如果可能,运行 01_data_acquisition.py --mode live 并更新指标
- [ ] 填写报告中的截图占位符
- [ ] 要求 Claude 更新报告文本 (第 4、7 节) 以反映 FX/流式/分区
## 业务影响:
该解决方案展示了金融机构如何利用现代数据工程和机器学习技术来
- 改善投资组合监控
- 增强欺诈检测能力
- 支持风险管理
- 自动化金融分析工作流
- 实现数据驱动的决策制定
该项目为未来的银行分析计划提供了可扩展的基础。
## 未来增强功能:
- 基于 LSTM 的股票预测
- 实时流式分析
- 基于 Streamlit 的实时 dashboard
- 高级欺诈检测模型
- 云原生部署
- MLOps pipeline 自动化
- 企业级数据湖集成
标签:Apex, ETL流水线, 后端开发, 多线程, 数据工程, 时间序列预测, 机器学习, 欺诈检测, 测试用例, 逆向工具, 金融数据分析