File size: 6,419 Bytes
fd8e6f6
2bd15ff
 
 
 
 
 
 
 
 
fd8e6f6
 
 
2bd15ff
00eebd4
f5fc54c
00eebd4
f5fc54c
 
 
 
 
00eebd4
f5fc54c
00eebd4
 
 
 
 
 
 
 
 
f5fc54c
 
 
00eebd4
f5fc54c
00eebd4
 
 
 
 
f5fc54c
00eebd4
 
 
 
 
 
f5fc54c
00eebd4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f5fc54c
00eebd4
 
 
f5fc54c
 
 
00eebd4
 
 
 
f5fc54c
 
00eebd4
 
 
f5fc54c
00eebd4
 
 
 
 
 
 
 
 
 
f5fc54c
 
 
00eebd4
f5fc54c
00eebd4
 
f5fc54c
00eebd4
f5fc54c
00eebd4
 
 
f5fc54c
00eebd4
 
 
 
 
 
f5fc54c
 
 
 
 
00eebd4
f5fc54c
00eebd4
 
 
 
 
 
f5fc54c
 
 
00eebd4
f5fc54c
 
00eebd4
 
 
 
 
 
f5fc54c
 
67b051b
f5fc54c
 
 
00eebd4
 
 
 
 
 
 
 
 
 
f5fc54c
67b051b
 
00eebd4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
---
sdk: gradio
title: Insurance App Behavior
emoji: 🏥
colorFrom: purple
colorTo: gray
sdk_version: 6.14.0
python_version: '3.13'
app_file: app.py
pinned: false
tags:
- ml-intern
---

# 🏥 保险APP 用户行为分析模型训练平台 v3.0

基于最新研究论文构建的**工业级保险用户行为分析平台**,支持**7大功能模块**:演示模式、CSV上传、产品推荐、异常检测、模型管理、生存分析、帮助文档。

🔗 **在线体验**: https://huggingface.co/spaces/Stephanwu/insurance-app-behavior

---

## 📋 功能总览

| Tab | 功能 | 模型/方法 | 参考文献 |
|------|------|----------|---------|
| 🎲 演示 | 合成数据训练 | GBDT + Random Forest | sklearn |
| 📁 CSV上传 | 真实数据训练 | GBDT + RF + 自动特征工程 | sklearn |
| 🎯 产品推荐 | DIN深度学习 | PyTorch + LocalActivationUnit | [DIN KDD 2018](https://arxiv.org/abs/1706.06978) |
| 🔍 异常检测 | TabBERT | PyTorch + Transformer + Focal Loss | [TabBERT](https://arxiv.org/abs/2011.01843) |
| 💾 模型管理 | HF Hub 保存/加载 | joblib + torch.save | HuggingFace Hub |
| ⏱️ 生存分析 | Cox-PH + DeepSurv | lifelines + PyTorch Neural Cox-PH | [DeepSurv](https://arxiv.org/abs/1606.00931) |
| ❓ 帮助 | 完整文档 | - | - |

---

## 🎯 六大核心模型

### 1. 用户流失预测 (ChurnPrediction)
**方法**: Gradient Boosting + Random Forest
- 输入: 30+维用户行为统计特征
- 输出: 流失概率
- 评估: AUC-ROC, F1-Score, AP, 5折交叉验证

### 2. 保险产品推荐 (DIN)
**方法**: Deep Interest Network (KDD 2018)
- **核心**: LocalActivationUnit 注意力机制
- **输入**: 用户历史行为序列 + 候选保险产品
- **输出**: 购买概率 + 注意力权重可视化
- ** insight**: 用户兴趣表示随候选产品动态变化

### 3. 异常行为检测 (TabBERT)
**方法**: TabularBERT + Focal Loss
- **核心**: 层次化Transformer + 不平衡数据处理
- **损失**: Focal Loss (α=0.25, γ=2.0) — 聚焦难分异常样本
- **输入**: 理赔记录多维特征
- **输出**: 异常分数 + 最佳阈值推荐

### 4. 生存分析 (Survival Analysis)
**统计方法**: lifelines Cox-PH + Kaplan-Meier
- **输入**: 用户年龄、性别、收入、保单类型、保额
- **输出**: 生存函数 S(t) = P(T > t)
- **可视化**: KM曲线、Cox系数、风险分层

**深度方法**: DeepSurv (Neural Cox-PH)
- **架构**: MLP预测log hazard ratio
- **损失**: Cox partial likelihood
- **优势**: 学习非线性特征交互
- **评估**: Concordance Index (C-index)

### 5. 模型管理 (HF Hub)
**保存**: 一键上传 sklearn + PyTorch 模型到 Hugging Face Hub
**加载**: 从 Hub 下载模型, 恢复训练指标和可视化

---

## 📊 数据格式

### CSV 上传格式

```csv
user_id,session_id,timestamp,event_type,page_id,product_id,amount
user_001,sess_001,1704067200000,page_view,home,,
user_001,sess_001,1704067230000,product_view,product,health_basic,
user_001,sess_001,1704067260000,quote_request,quote,health_basic,50000
user_001,sess_001,1704067290000,payment_success,payment,health_basic,50000
```

**必需列**: `user_id`, `session_id`, `timestamp`, `event_type`, `page_id`

**可选列**: `product_id`, `amount`, `label`(流失标签)

### 事件类型 (30种)

| 类别 | 事件 |
|------|------|
| **浏览** | page_view, product_view, premium_calculator, article_read, faq_view, product_compare |
| **交互** | quote_request, form_submit, document_upload, chat_init, call_init, video_consult, quote_result_view |
| **转化** | policy_select, payment_init, payment_success, policy_issued |
| **理赔** | claim_init, claim_doc_upload, claim_review, claim_approved, claim_rejected |
| **续保** | renewal_reminder, renewal_click, renewal_complete, policy_cancel |
| **其他** | login, logout, app_uninstall |

---

## 🚀 使用方式

### 在线使用
直接访问: https://huggingface.co/spaces/Stephanwu/insurance-app-behavior

### 本地运行

```bash
# 克隆仓库
git clone https://huggingface.co/spaces/Stephanwu/insurance-app-behavior

# 安装依赖 (torch 较大, 需几分钟)
pip install -r requirements.txt

# 启动
python app.py
```

---

## ⚠️ 不平衡数据处理

保险场景数据高度不平衡 (流失率 < 5%, 欺诈率 < 1%):

| 技术 | 实现 | 适用场景 |
|------|------|---------|
| **类别权重** | `class_weight='balanced'` | Random Forest |
| **Focal Loss** | `α=0.25, γ=2.0` | PyTorch 深度学习 |
| **上采样** | SMOTE / 重采样 | 训练前预处理 |
| **评估指标** | **不用 Accuracy**, 用 F1 + PR-AUC | 所有不平衡场景 |

---

## 📦 文件结构

```
Stephanwu/insurance-app-behavior/
├── app.py              (86 KB)  主程序 — 7个Tab完整功能
├── models.py           (23 KB)  深度学习模型定义 (DIN, TabBERT, Transformer)
├── README.md           (7 KB)   完整文档
├── requirements.txt    (188 B)  依赖清单
└── .gitattributes      (1.5 KB) Git配置
```

---

## 📚 参考文献

| 论文 | 应用 | arXiv | 会议 |
|------|------|-------|------|
| Deep Interest Network | 产品推荐 | [1706.06978](https://arxiv.org/abs/1706.06978) | KDD 2018 |
| SDIM | 长期行为建模 | [2205.10249](https://arxiv.org/abs/2205.10249) | SIGIR 2022 |
| FMLP-Rec | 去噪序列推荐 | [2202.13556](https://arxiv.org/abs/2202.13556) | WWW 2022 |
| TabBERT/TabFormer | 表格时序异常检测 | [2011.01843](https://arxiv.org/abs/2011.01843) | - |
| Transformer Churn | 非合约流失预测 | [2309.14390](https://arxiv.org/abs/2309.14390) | - |
| DeepSurv | 生存分析 | [1606.00931](https://arxiv.org/abs/1606.00931) | JAMIA 2018 |
| RNN Survival | 购买时序预测 | [2304.00575](https://arxiv.org/abs/2304.00575) | - |
| Focal Loss | 不平衡分类 | [1708.02002](https://arxiv.org/abs/1708.02002) | ICCV 2017 |

---

## 🔧 技术栈

| 组件 | 库 | 版本 |
|------|-----|------|
| Web UI | Gradio | ≥4.0.0 |
| 数据处理 | Pandas, NumPy | ≥2.0.0, ≥1.24.0 |
| 机器学习 | scikit-learn | ≥1.3.0 |
| 深度学习 | PyTorch | ≥2.0.0 |
| 可视化 | Matplotlib, Seaborn | ≥3.7.0, ≥0.12.0 |
| 生存分析 | lifelines | ≥0.28.0 |
| 模型持久化 | joblib | ≥1.3.0 |
| 模型托管 | huggingface-hub | ≥0.23.0 |

---

## 📄 许可证

MIT License

**作者**: [Stephanwu](https://huggingface.co/Stephanwu)