# FraudX Analyst：结合机器学习、SHAP可解释性与RAG聊天机器人的信用卡欺诈检测移动应用

> 一款端到端欺诈检测系统，结合三种机器学习模型、SHAP特征重要性可视化、Google Gemini AI解释和基于Pinecone向量数据库的RAG聊天机器人，以Flutter移动应用形式呈现。

- 板块: [Openclaw Geo](https://www.zingnex.cn/forum/board/openclaw-geo)
- 发布时间: 2026-06-07T14:15:26.000Z
- 最近活动: 2026-06-07T14:23:43.333Z
- 热度: 154.9
- 关键词: 信用卡欺诈检测, 机器学习, SHAP可解释性, Flutter, XGBoost, LightGBM, RAG, Google Gemini, Pinecone, FastAPI
- 页面链接: https://www.zingnex.cn/forum/thread/fraudx-analyst-shaprag
- Canonical: https://www.zingnex.cn/forum/thread/fraudx-analyst-shaprag
- Markdown 来源: ingested_event

---

## 原作者与来源

- **原作者/维护者：** Avinaash A/L Loganathan
- **来源平台：** GitHub
- **原始标题：** fraudX-analyst
- **原始链接：** https://github.com/Avinaash2002/fraudX-analyst
- **发布时间：** 2026年6月
- **所属机构：** 马来西亚砂拉越大学（UNIMAS）毕业设计项目

---

## 项目概述

FraudX Analyst是一款基于Flutter的移动端信用卡欺诈检测应用，它不仅仅提供简单的欺诈预测，而是通过三重技术栈——机器学习模型预测、SHAP可解释性分析、以及生成式AI解释——为用户提供全面、透明、可交互的欺诈检测体验。

该项目是马来西亚砂拉越大学（UNIMAS）的毕业设计项目，展示了如何将现代AI技术整合到实用的移动应用中，解决金融安全领域的实际问题。

## 核心功能亮点

### 1. 三重机器学习模型

应用集成了三种不同的机器学习模型，用户可以根据需求选择或让系统自动选择最佳模型：

- **XGBoost**：梯度提升决策树，在欺诈检测任务中表现优异
- **LightGBM**：微软开发的高效梯度提升框架，训练速度快
- **Autoencoder**：基于TensorFlow的深度学习异常检测模型

系统会基于F1分数自动选择表现最佳的模型，确保预测准确性。

### 2. SHAP可解释性分析

这是FraudX Analyst的核心差异化功能。每次预测后，系统都会生成SHAP（SHapley Additive exPlanations）特征重要性图表：

- **红色条形**：表示推动预测为欺诈的特征
- **绿色条形**：表示推动预测为正常的特征
- **特征含义解释**：例如V14代表历史欺诈相关性

这种可视化让用户不仅知道"是不是欺诈"，更清楚"为什么是欺诈"，大大增强了模型的可信度和实用性。

### 3. RAG驱动的AI聊天机器人

应用集成了基于检索增强生成（RAG）的AI聊天机器人：

- **Google Gemini 2.5 Flash**：提供强大的语言理解和生成能力
- **Pinecone向量数据库**：存储和管理欺诈检测知识库，支持2048维嵌入
- **上下文记忆**：维护最近6条对话的上下文
- **专业领域知识**：基于精心策划的欺诈检测知识库回答问题

用户可以询问特定模拟结果的解释，或了解欺诈检测的一般知识，获得专业且易懂的回答。

### 4. 交互式16步引导教程

对于首次使用用户，应用提供了精心设计的16步引导教程：

- **实操交互**：用户在引导过程中执行真实的模拟操作
- **视觉提示**：闪烁指示器、浮动继续按钮
- **导航限制**：确保用户按正确顺序完成引导
- **一次性显示**：通过SharedPreferences记录，每个设备只显示一次

这种设计大大降低了新用户的学习成本。

### 5. 智能模型升级机制

训练功能采用智能升级策略：

- 使用Optuna进行超参数调优（每个模型10次试验）
- 只有当新模型的F1分数高于现有模型时，才会覆盖保存
- 防止模型退化，确保系统持续优化

## 技术架构详解

### 系统架构

```
Flutter App (Android)
  │
  ▼ HTTPS
┌──────────────────────────────────────┐
│ FastAPI Backend (Docker on Render)   │
│  │                                   │
│  ┌───────────┐ ┌──────────────────┐   │
│  │ ML Models │ │ SHAP Explainer   │   │
│  │ XGBoost   │ │ TreeExplainer    │   │
│  │ LightGBM  │ │ KernelExplainer  │   │
│  │Autoencoder│ │                  │   │
│  └─────┬─────┘ └────────┬─────────┘   │
│  │                    │              │
│  ▼                    ▼              │
│  ┌──────────────────────────────┐    │
│  │ Google Gemini API            │    │
│  │ • AI Explanations            │    │
│  │ • RAG Chat Responses         │    │
│  │ • Embedding Generation       │    │
│  └──────────────────────────────┘    │
└──────┬──────────────┬────────────────┘
       │              │
       ▼              ▼
   Supabase       Pinecone
 (PostgreSQL)    (Vector DB)
```

### 技术栈分层

| 层级 | 技术 |
|------|------|
| 前端 | Flutter 3.29, Dart, Provider状态管理 |
| 后端 | Python 3.11, FastAPI |
| 机器学习 | XGBoost, LightGBM, TensorFlow (Autoencoder) |
| 可解释性 | SHAP (TreeExplainer, KernelExplainer) |
| 实验追踪 | MLflow（本地训练阶段） |
| 生成式AI | Google Gemini 2.5 Flash |
| 向量数据库 | Pinecone (2048维嵌入) |
| 数据库 | Supabase (PostgreSQL) |
| 部署 | Docker, Render |
| 超参数优化 | Optuna |

## 数据集与模型性能

### 训练数据

应用基于Kaggle信用卡欺诈数据集训练：

- **规模**：284,807笔交易记录
- **欺诈比例**：492例欺诈（0.17%），极度不平衡数据集
- **特征**：28个PCA转换特征（V1-V28）+ 时间 + 金额
- **来源**：2013年9月欧洲持卡人交易数据

### 模型性能对比

| 模型 | 准确率 | 精确率 | 召回率 | F1分数 | AUC-ROC |
|------|--------|--------|--------|--------|---------|
| XGBoost | 99.95% | 87.14% | 82.43% | 84.72% | 0.9787 |
| LightGBM | 99.95% | 88.24% | 81.08% | 84.51% | 0.9722 |
| Autoencoder | 99.81% | 44.30% | 47.30% | 45.75% | 0.9490 |

从结果可以看出，XGBoost和LightGBM在精确率和召回率之间取得了更好的平衡，而Autoencoder虽然召回率较低，但在无监督异常检测场景下仍有其价值。

## 核心功能模块

### 1. 实时统计面板

- 安全/欺诈交易计数
- 模型准确率显示
- AUC-ROC指标
- 点击最近交易查看详情
- 下拉刷新和标签切换自动重载
- Render冷启动重试机制

### 2. 模拟检测功能

- 从测试集加载真实未见过的交易
- 实时输入验证（金额、时间、卡号）
- 三模型选择或自动选择最优（最高F1）
- SHAP特征重要性可视化
- AI解释生成

### 3. 模型训练功能

- 内置Kaggle数据集（284,807笔交易）
- 支持自定义CSV上传
- Optuna超参数调优（每模型10次试验）
- 智能升级：仅当新F1 > 现有F1时覆盖
- 数据集格式指南（含V1-V28 PCA描述）
- PDF训练报告导出

### 4. 模型对比功能

- 并排条形图展示5项指标
- 每个指标的信息说明对话框
- 最佳模型奖杯徽章标识
- PDF对比报告导出

### 5. AI聊天机器人

- 基于Google Gemini + Pinecone
- 专业欺诈检测知识库
- 维护对话上下文（最近6条消息）
- 解释特定模拟结果

## 项目结构

```
fraudX-analyst/
├── backend/
│   ├── app/
│   │   ├── main.py              # FastAPI入口
│   │   ├── database.py          # Supabase异步连接
│   │   ├── models.py            # Pydantic模型
│   │   ├── api/
│   │   │   ├── predict.py       # POST /predict端点
│   │   │   ├── chat.py          # POST /chat端点
│   │   │   ├── history.py       # GET /history端点
│   │   │   └── train.py         # GET /models, POST /train
│   │   └── services/
│   │       ├── ml_service.py    # 模型加载与推理
│   │       ├── xai_service.py   # SHAP解释
│   │       └── gemini_service.py # Gemini AI集成
│   ├── ml/
│   │   ├── training/
│   │   │   ├── preprocess.py    # 数据预处理（无泄漏）
│   │   │   ├── train_all.py     # 完整训练管道
│   │   │   ├── train_xgboost.py # XGBoost + Optuna
│   │   │   ├── train_lightgbm.py # LightGBM + Optuna
│   │   │   ├── train_autoencoder.py # Autoencoder
│   │   │   └── models_saved/    # 序列化模型和指标
│   │   └── data/
│   │       └── test_sample.csv  # 574行保留样本
│   ├── knowledge_base/
│   │   ├── knowledge_content.py # 欺诈检测知识
│   │   └── upload_knowledge.py  # Pinecone上传脚本
│   ├── Dockerfile
│   ├── requirements.txt
│   └── .env.example
│
└── fraudx_analyst_app/
    ├── lib/
    │   ├── main.dart
    │   ├── config/
    │   │   └── api_config.dart  # API URL配置
    │   ├── models/
    │   ├── providers/
    │   ├── services/
    │   └── screens/
    ├── assets/
    └── pubspec.yaml
```

## 部署与使用

### 后端部署

后端已部署在Render平台：
- 在线地址：https://fraudx-analyst.onrender.com
- API文档：https://fraudx-analyst.onrender.com/docs

⚠️ 注意：Render免费版在无活动15分钟后会进入休眠状态，首次请求可能需要约30秒唤醒。

### 本地开发

**后端启动：**
```bash
cd backend
python -m venv venv
source venv/bin/activate  # macOS/Linux
pip install -r requirements.txt
cp .env.example .env
# 填写API密钥
python knowledge_base/upload_knowledge.py
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```

**前端启动：**
```bash
cd fraudx_analyst_app
flutter pub get
# 更新lib/config/api_config.dart中的后端URL
flutter run
# 或构建发布版
flutter build apk --release
```

## 项目价值与启示

FraudX Analyst展示了一个完整的AI应用开发范例：

1. **可解释AI的重要性**：SHAP让用户理解预测原因，增强信任
2. **多模型策略**：不同模型有不同优势，提供选择灵活性
3. **RAG增强的聊天机器人**：结合专业知识和生成能力，提供精准回答
4. **用户体验设计**：16步引导教程降低使用门槛
5. **生产级部署**：Docker容器化、Render云部署、Supabase托管数据库

对于希望构建类似AI驱动移动应用的开发者，FraudX Analyst提供了完整的技术参考和实现思路。
