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