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