paper2skills Playbook

用户行为轨迹模式挖掘与预测 - 变阶马尔可夫模型

Skill-Trajectory-Pattern-Mining · 14-用户分析

experimentforecastingoptimizationrecommendation客服与VOC推荐与搜索WF-C 客服分诊WF-D 选品扫描WF-E Review监控
年化 ROI5000 万
实现难度⭐⭐⭐☆☆
业务优先级⭐⭐⭐⭐⭐
业务视角
适用角色运营负责人 / 用户增长负责人 · CMO · 产品经理
适用平台Amazon 买家分层 · DTC 站 LTV 预测 · Klaviyo/Brevo 邮件分群
什么情况下用有大量老客户,但不知道谁是高价值客户、谁快要流失;新客获取成本越来越高,老客复购却上不去
成功是什么样的用户按 RFM/LTV 分层精准触达,高价值用户留存率提升,老客贡献收入占比从 30% 提升到 50%
业务痛点
老客复购率上不去不知道哪些用户要流失了所有用户用同一套活动买过一次就不见了

1. 解决的问题

母婴电商需要桑基图展示用户从首页→搜索→PDP→加购→支付的流量宽度

2. 核心算法逻辑

三步法闭环:① 改进 DBSCAN 密度聚类识别典型轨迹模式(用 LCS 相似度替代欧氏距离);② 频繁子轨迹挖掘(FPTree 变体,支持度阈值筛选高频页面序列);③ 变阶马尔可夫模型(VariableOrder Markov, VOM)预测下一步页面。

3. 业务应用场景

业务问题:母婴电商需要桑基图展示用户从首页→搜索→PDP→加购→支付的流量宽度。当前只知道每页 PV,不知道页面间的转移概率,无法渲染 Sankey。

| 字段 | 类型 | 示例 | |------|------|------| | `session_id` | string | `"sess_20250101_u001"` | | `user_id` | string | `"u001"` | | `page_type` | string | `"HOME"/"SEARCH"/"CAT"/"PDP"/"CART"/"ORDER"/"PAY"` | | `page_name` | string | `"/product/12345"` | | `dwell_time_sec` | int | `45`(秒) | | `event_time`

| 缩写 | 页面类型 | 说明 | |------|---------|------| | `HOME` | 首页 | 品牌官网/平台首页 | | `SEARCH` | 搜索结果页 | 关键词搜索 | | `CAT` | 品类页 | 奶粉/纸尿裤等类目 | | `PDP` | 商品详情页 | Product Detail Page | | `CART` | 购物车 | | | `ORDER` | 订单确认页 | | | `PAY` | 支付页 | | | `REVIEW` | 评论页 | | | `PROMOTION` | 促销活动页 | |

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

5000 万

7. 代码模板

代码块数量:8 · 路径:未检测到

"""
Trajectory Pattern Mining & Variable-Order Markov Prediction
轨迹模式挖掘与变阶马尔可夫预测

功能:
  1. 数据预处理(session 清洗、页面类型映射)
  2. LCS-based 轨迹相似度计算
  3. 改进 DBSCAN 聚类(r-neighborhood)
  4. 频繁子轨迹挖掘
  5. 变阶马尔可夫转移概率矩阵构建
  6. 下一步页面预测(带停留时间权重)
  7. 输出 Plotly/ECharts 桑基图 JSON

依赖: pip install numpy pandas scikit-learn
"""

import json
import math
from collections import defaultdict, Counter
from typing import Dict, List, Optional, Tuple

import numpy as np
import pandas as pd


# ─────────────────────────────────────────────
# 1. 数据结构定义
# ─────────────────────────────────────────────

# 母婴电商页面类型标准映射
PAGE_TYPE_MAP = {
    "/": "HOME",
    "/index": "HOME",
    "/search": "SEARCH",
    "/category": "CAT",
    "/product": "PDP",
    "/cart": "CART",
    "/checkout": "ORDER",
    "/payment": "PAY",
    "/review": "REVIEW",
    "/promotion": "PROMO",
}

# Sankey 展示用的页面顺序(漏斗层级)
FUNNEL_ORDER = ["HOME", "SEARCH", "CAT", "PDP", "REVIEW", "CART", "ORDER", "PAY", "PROMO"]


# ─────────────────────────────────────────────
# 2. 数据预处理
# ─────────────────────────────────────────────

class TrajectoryPreprocessor:
    """
    用户轨迹序列预处理器
    - 过滤停留时间异常(< min_dwell 或 > max_dwell)
    - 过滤超长 session(> max_pages)
    - 合并超节点(重复子序列压缩)
    """

    def __init__(

8. 论文来源

未自动抽取;请查看原始 Skill 卡片。