Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

Markov Chain MCMC 实时分析

这是一个基于马尔可夫链蒙特卡洛(MCMC)方法的实时分析工具,用于分析客户对话流程中的稳态路径。该工具通过可视化方式展示客户对话流程中各阶段之间的转移概率,并使用MCMC方法进行实时模拟分析。

🚀 核心功能

1. 数据文件管理

  • 文件选择器: 支持从预定义数据文件中选择或拖拽上传自定义JSON文件
  • 数据格式验证: 自动验证上传的JSON文件格式是否符合要求
  • 默认数据加载: 自动加载默认的客户对话转移矩阵数据

2. MCMC 参数配置

  • 迭代次数设置: 可配置MCMC分析的总迭代次数(默认10000次)
  • 预热步数设置: 可配置预热步数以排除初始不稳定状态(默认1000步)
  • 固定步数模式: 可选择固定步数模式,而非以"结束语"为终止条件

3. 实时分析控制

  • 开始分析: 启动MCMC实时分析过程
  • 停止分析: 中断当前分析过程
  • 重置功能: 清空当前分析结果并重置所有参数

4. 实时进度监控

  • 进度条显示: 实时显示已完成的迭代次数
  • 当前状态显示: 显示当前MCMC链所处的状态
  • 统计摘要: 显示有效样本数、总迭代数、预热步数等关键指标

5. 结果可视化

  • 状态频率分布: 以条形图形式显示各状态的访问频率
  • 最频繁状态: 突出显示访问频率最高的状态
  • 最常见行动路径: 显示出现频率最高的客户对话路径
  • 阶段组合统计: 分析不考虑顺序的阶段组合出现频率

📊 技术特性

算法实现

  • MCMC采样: 使用Metropolis-Hastings算法进行马尔可夫链采样
  • 概率转移: 基于转移概率矩阵进行状态转移
  • 批量处理: 采用批量处理提高UI响应性能
  • 烧入期处理: 自动排除预热期的数据以确保统计准确性

可视化设计

  • 响应式布局: 适配不同屏幕尺寸的设备
  • 渐变色彩: 使用现代化的渐变色彩方案
  • 动画效果: 包含平滑的过渡动画效果
  • 中文界面: 完全中文化的用户界面

数据处理

  • 状态约束: 自动应用状态约束("开场白"为起始状态,"结束语"为终止状态)
  • 概率归一化: 自动归一化转移概率确保行和为1
  • 路径追踪: 记录完整的状态转移路径
  • 频率统计: 实时统计各状态的访问频率

🛠️ 使用方法

快速开始

  1. 在浏览器中打开 mcmc_analysis_realtime.html
  2. 系统将自动加载默认的客户对话数据
  3. 根据需要调整MCMC参数(迭代次数、预热步数等)
  4. 点击"开始MCMC分析"按钮启动分析过程
  5. 观察实时更新的分析结果和进度信息

参数说明

  • 迭代次数: MCMC分析的总迭代次数,影响结果的准确性
  • 预热步数: 分析开始前的预热步数,用于达到稳态
  • 固定步数: 可选参数,指定每次路径的固定步数(留空则以"结束语"为终止条件)

数据文件格式

支持以下JSON格式的数据文件:

{
  "states": ["开场白", "介绍产品", "扩大需求", "探寻需求", "答疑解惑", "结束语", "获取信任", "试成交"],
  "transitions": [
    {
      "from": "开场白",
      "to": "介绍产品",
      "probability": 0.6
    },
    {
      "from": "开场白",
      "to": "探寻需求",
      "probability": 0.4
    }
    // ... 其他转移概率
  ]
}

📁 项目结构

MarkovAnalysis/
├── mcmc_analysis_realtime.html    # 主HTML文件,包含所有前端代码
├── README.md                     # 项目说明文档
├── CLAUDE.md                     # Claude Code项目文档
├── .csv/                         # 原始CSV数据文件目录
│   ├── transition_matrix_li.csv  # 李姓客户数据
│   └── transition_matrix_zhao.csv # 赵姓客户数据
├── data/                         # 处理后的JSON数据目录
├── scripts/                      # 数据处理脚本目录
│   └── process_data.py           # CSV到JSON转换脚本
├── .venv/                        # Python虚拟环境目录
└── backups/                      # 备份文件目录

🧮 算法原理

马尔可夫链蒙特卡洛 (MCMC)

MCMC是一种用于从复杂概率分布中采样的统计方法。在本应用中,我们使用MCMC来模拟客户对话流程,通过以下步骤:

  1. 初始化: 从"开场白"状态开始
  2. 转移概率: 根据转移矩阵中的概率进行状态转移
  3. 采样: 记录访问的每个状态
  4. 收敛: 经过预热期后,链达到稳态分布
  5. 统计: 基于采样结果计算稳态概率

状态转移机制

  • 从当前状态获取所有可能的转移
  • 根据转移概率构建累积分布函数
  • 生成随机数以确定下一个状态
  • 重复此过程直到达到指定迭代次数

路径分析

  • 路径追踪: 记录从"开场白"到"结束语"的完整路径
  • 频率统计: 统计每条路径的出现频率
  • 组合分析: 分析不考虑顺序的阶段组合

🎨 界面设计

颜色编码

  • 开场白: #ff6b6b (红色)
  • 介绍产品: #4ecdc4 (青色)
  • 扩大需求: #45b7d1 (蓝色)
  • 探寻需求: #96ceb4 (绿色)
  • 答疑解惑: #feca57 (黄色)
  • 结束语: #ff9ff3 (粉色)
  • 获取信任: #54a0ff (天蓝色)
  • 试成交: #5f27cd (紫色)

布局结构

  • 侧边栏: 包含数据选择、参数设置和控制面板
  • 主面板: 显示实时分析结果和统计信息
  • 响应式设计: 适配桌面和移动设备

🔧 开发与扩展

数据处理脚本

scripts/process_data.py 负责将CSV格式的原始数据转换为JSON格式,便于前端使用。

扩展功能

  • 稳态概率计算: 通过求解线性方程组计算理论稳态概率
  • 路径优化: 分析最优客户对话路径
  • A/B测试: 比较不同策略下的客户流程效果

性能优化

  • 批量处理: 每帧处理多个MCMC步骤以提高性能
  • UI更新优化: 定期更新UI而非每步更新
  • 内存管理: 有效管理路径历史记录

📈 分析指标

状态统计

  • 访问频率: 每个状态在MCMC链中的访问次数
  • 稳态概率: 每个状态的长期访问概率
  • 最频繁状态: 访问次数最多的状态

路径分析

  • 最常见路径: 出现频率最高的客户对话路径
  • 路径长度: 每条路径的步骤数
  • 阶段组合: 不考虑顺序的阶段集合出现频率

性能指标

  • 收敛速度: MCMC链达到稳态的速度
  • 混合质量: 链的探索效率
  • 统计有效性: 有效样本数与总迭代数的比率

🌐 应用场景

客户关系管理

  • 优化客户对话流程
  • 识别关键转换节点
  • 提高客户转化率

销售流程优化

  • 分析销售漏斗
  • 识别瓶颈阶段
  • 优化销售策略

产品设计

  • 理解用户行为模式
  • 优化用户体验
  • 改进产品功能

📚 参考资料

  • 马尔可夫链: 用于建模状态转移的数学系统
  • 蒙特卡洛方法: 使用随机采样解决数值问题的算法
  • 转移矩阵: 描述系统从一个状态转移到另一个状态的概率
  • 稳态分布: 马尔可夫链在长期运行后的状态分布

🤝 贡献

欢迎提交Issue和Pull Request来改进此项目。主要贡献方向包括:

  • 算法优化
  • 界面改进
  • 功能扩展
  • 文档完善

📄 许可证

本项目为开源项目,欢迎用于学习和研究目的。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages