rushjais/transaction-pattern-analyzer
GitHub: rushjais/transaction-pattern-analyzer
一个针对商业交易数据的异常检测原型,通过特征工程和多种检测方法识别可疑支出行为。
Stars: 0 | Forks: 0
# 金融交易模式分析器
利用特征工程和无监督异常检测技术,检测商业交易数据中的异常支出行为。
## 概述
本项目通过一个现实的探索性原型探讨了这个问题——它并非生产系统。重点在于**特征工程和可解释性**,而非模型复杂性。
## 笔记本
打开 `transaction_analysis.ipynb` 查看完整分析:
1. 合成数据集生成(6,400 笔交易,5 家企业,12 个月)
2. 探索性分析
3. 特征工程 — 10 个上下文特征
4. 三种异常检测方法对比
5. 可视化与结果
6. 客观的局限性与后续步骤
7. SQL 实现 — SQLite 中的核心异常逻辑
## 核心思想
原始交易金额本身是糟糕的异常信号。一笔 10,000 美元的付款对某家企业来说可能是常规操作,而对另一家来说则可能触目惊心。有趣的工作在于构建**具备上下文感知的特征**:
| 特征 | 捕捉内容 |
|---|---|
| `amount_zscore_biz` | 在*该账户的*历史记录中是否异常? |
| `amount_zscore_vendor` | 在*该供应商关系*中是否异常? |
| `is_new_vendor` | 是否为首次向该收款方付款? |
| `rolling_7d_count` | 本周交易频率是否激增? |
| `is_near_duplicate` | 48 小时内是否存在相同金额 + 相同供应商? |
## 方法
| 方法 | 描述 |
|---|---|
| 基于规则的评分 | 人类可读的阈值,完全可审计 |
| Z-score 复合 | 统计基线,对 SQL 友好 |
| Isolation Forest | 基于树的无监督 ML |
| SQL 查询 | SQLite 中的核心异常逻辑 — 生产就绪 |
## 技术栈
Python · pandas · NumPy · scikit-learn · matplotlib · SQLite
*一个探索金融科技/企业银行业务背景下异常检测的组合项目。*
标签:Apex, pandas, Python, scikit-learn, SQLite, Z-score, 业务交易, 云计算, 交易分析, 代码示例, 孤立森林, 开源安全, 异常检测, 支出监控, 数据分析, 无后门, 无监督学习, 机器学习, 欺诈检测, 特征工程, 规则引擎, 逆向工具, 金融科技, 金融风控