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)
|