research-on-frequent-pattern-mining-based-on-hotspot-trajectories

Draft Research Proposal

轨迹热点挖掘的基础概念与公式

1. 关系(Relation)

给定集合 A = { a 1 , a 2 , . . . , a n } A = { a 1 , a 2 , . . . , a n } A={a_(1),a_(2),...,a_(n)}A=\{a_1,a_2,...,a_n\}A={a1,a2,...,an} B = { b 1 , b 2 , . . . , b m } B = { b 1 , b 2 , . . . , b m } B={b_(1),b_(2),...,b_(m)}B=\{b_1,b_2,...,b_m\}B={b1,b2,...,bm},如果元素 a i a i a_(i)a_iai b j b j b_(j)b_jbj 之间存在关系,则定义如下:
  • 单向关系 a i b j a i b j a_(i)rarrb_(j)a_i \to b_jaibj a i b j a i b j a_(i)larrb_(j)a_i \leftarrow b_jaibj
  • 双向关系 a i b j a i b j a_(i)harrb_(j)a_i \leftrightarrow b_jaibj

2. 并置模式(Co-location)

定义集合 A , B A , B A,BA,BA,B 之间的关系集合 R A B R A B R_(AB)R_{AB}RAB 为并置模式:
R A B = { a b b a a b a A , b B } R A B = { a b b a a b a A , b B } R_(AB)={a rarr b vv b rarr a vv a harr b∣a in A,b in B}R_{AB} = \{a \to b \lor b \to a \lor a \leftrightarrow b \mid a\in A, b\in B\}RAB={abbaabaA,bB}

3. 参与集(Participation Set)

集合 A , B A , B A,BA,BA,B 之间的所有关系所含元素的集合:
C = { a , b a A , b B , a b b a } C = { a , b a A , b B , a b b a } C={AA a,AA b∣a in A,b in B,EE a rarr b vv EE b rarr a}C=\{\forall a,\forall b \mid a\in A,b\in B,\exists a\to b \lor \exists b\to a\}C={a,baA,bB,abba}

4. 参与度(Participation Rate)

衡量集合 A , B A , B A,BA,BA,B 之间关系的强度:
γ A B = | C | | A | + | B | γ A B = | C | | A | + | B | gamma_(AB)=(|C|)/(|A|+|B|)\gamma_{AB}=\frac{|C|}{|A|+|B|}γAB=|C||A|+|B|

5. 频繁并置(Prevalent Co-location)

若参与度满足阈值 γ m i n γ m i n gamma_(min)\gamma_{min}γmin,则称为频繁并置模式集合:
P R A B = { R A B γ A B γ m i n } P R A B = { R A B γ A B γ m i n } PR_(AB)={R_(AB)∣gamma_(AB) >= gamma_(min)}PR_{AB}=\{R_{AB}\mid\gamma_{AB}\geq\gamma_{min}\}PRAB={RABγABγmin}

6. 轨迹序列(Trajectory Sequence)

由物理空间中 k k kkk 个坐标点按照时间顺序线性连接构成:
R = { N , E } R = { N , E } R={N,E}R = \{N, E\}R={N,E}
其中:
  • N = { n 1 , n 2 , . . . , n k } N = { n 1 , n 2 , . . . , n k } N={n_(1),n_(2),...,n_(k)}N=\{n_1,n_2,...,n_k\}N={n1,n2,...,nk} (轨迹点集合)
  • E = { e 1 , e 2 , . . . , e k 1 } E = { e 1 , e 2 , . . . , e k 1 } E={e_(1),e_(2),...,e_(k-1)}E=\{e_1,e_2,...,e_{k-1}\}E={e1,e2,...,ek1} (轨迹边集合)

7. 轨迹序列集合(Trajectory Sequence Set)

如果集合 G a G a G_(a)G_aGa m m mmm 条轨迹序列构成,则定义为:
G a = { R 1 , R 2 , . . . , R m } G a = { R 1 , R 2 , . . . , R m } G_(a)={R_(1),R_(2),...,R_(m)}G_a=\{R_1,R_2,...,R_m\}Ga={R1,R2,...,Rm}

8. 轨迹序列并置(Trajectory Sequence Co-location)

如果 G b G a G b G a G_(b)subeG_(a)G_b\subseteq G_aGbGa,且 G b G b G_(b)G_bGb 中所有轨迹都经过节点 n i n i n_(i)n_ini,则称 G b G b G_(b)G_bGb 为轨迹序列并置集合, n i n i n_(i)n_ini 为并置节点。

9. 轨迹序列频繁并置(Trajectory Sequence Prevalent Co-location)

假设轨迹序列并置集合 G c G c G_(c)G_cGc 中的轨迹数量为 m m mmm,且满足频繁度阈值:
m m m i n , m m i n 2 m m m i n , m m i n 2 m >= m_(min),quadm_(min) >= 2m \geq m_{min}, \quad m_{min} \geq 2mmmin,mmin2
则称 G c G c G_(c)G_cGc 为轨迹序列频繁并置集合。

10. 轨迹热点(Trajectory Hotspots)

在轨迹序列频繁并置集合中,如果存在 k 2 k 2 k >= 2k \geq 2k2 个连续的并置节点,且满足路径长度阈值:
k k m i n , k m i n 2 k k m i n , k m i n 2 k >= k_(min),quadk_(min) >= 2k \geq k_{min}, \quad k_{min} \geq 2kkmin,kmin2
则称 G d G d G_(d)G_dGd 上存在轨迹热点 H H HHH
H = { n 1 n 2 . . . n k } H = { n 1 n 2 . . . n k } H={n_(1)rarrn_(2)rarr...rarrn_(k)}H=\{n_1\to n_2\to ... \to n_k\}H={n1n2...nk}

实验原理(Markdown 版)

课题:基于热点轨迹的频繁模式挖掘研究
目标:在保证时空效率的前提下,体系化挖掘 Geo‑Trajectories 数据中的热点路径(Hotspot Trails),并为后续的行为预测与智能推荐奠定理论基础。

1. 轨迹数据建模

设移动对象的原始轨迹为离散点序列 R = { p 1 , p 2 , , p m } R = { p 1 , p 2 , , p m } R={p_(1),p_(2),dots,p_(m)}R=\{p_1,\,p_2,\,\dots, p_m\}R={p1,p2,,pm},其中
p i = ( x i , y i , t i , meta i ) , i = 1 , , m . p i = ( x i , y i , t i , meta i ) , i = 1 , , m . p_(i)=(x_(i),y_(i),t_(i),"meta"_(i)),qquad i=1,dots,m.p_i=(x_i,\,y_i,\,t_i,\,\text{meta}_i),\qquad i=1,\dots,m.pi=(xi,yi,ti,metai),i=1,,m.
为了降低计算复杂度与噪声,采用时间采样 Δ t = 15 min Δ t = 15 min Delta t=15"min"\Delta t=15\text{min}Δt=15min空间网格化(R&D 网格)将原始轨迹映射到 节点集合 V V VVV有向边集合 E E EEE
  • 节点 v V p i 落入网格 g v v V p i  落入网格  g v v in VLongleftrightarrowEEp_(i)" 落入网格 "g_(v)v\in V\iff\exists p_i\text{ 落入网格 }g_vvVpi 落入网格 gv
  • e = ( v i v j ) E p k g v i , p k + 1 g v j e = ( v i v j ) E p k g v i , p k + 1 g v j e=(v_(i)rarrv_(j))in ELongleftrightarrowp_(k)ing_(v_(i)),p_(k+1)ing_(v_(j))e=(v_i\rightarrow v_j)\in E\iff p_{k}\in g_{v_i},\,p_{k+1}\in g_{v_j}e=(vivj)Epkgvi,pk+1gvj
得到 一阶路径表(1‑degree path table):
T 1 = { ( v i , v j , traj\_set i j ) ( v i v j ) E } . T 1 = { ( v i , v j , traj\_set i j ) ( v i v j ) E } . T_(1)={(v_(i),v_(j),"traj\_set"_(ij))∣(v_(i)rarrv_(j))in E}.T_1=\{\bigl( v_i, v_j, \text{traj\_set}_{ij}\bigr)\mid (v_i\to v_j)\in E\}.T1={(vi,vj,traj\_setij)(vivj)E}.
其中 traj\_set i j traj\_set i j "traj\_set"_(ij)\text{traj\_set}_{ij}traj\_setij 为经过该边的轨迹 ID 集合。

2. 并置模式与热点路径定义

2.1 并置模式(Co‑location Pattern)

给定两个对象集 A , B A , B A,BA,BA,B 与空间关系谓词 R ( ) R ( ) R(*)\mathcal{R}(\cdot)R(),其并置模式定义为
C A , B = { ( a , b ) a A , b B , R ( a , b ) = true } . C A , B = { ( a , b ) a A , b B , R ( a , b ) = true } . C_(A,B)={(a,b)∣a in A,b in B,R(a,b)="true"}.\mathcal{C}_{A,B}=\bigl\{(a,b)\mid a\in A,\,b\in B,\,\mathcal{R}(a,b)=\text{true}\bigr\}.CA,B={(a,b)aA,bB,R(a,b)=true}.

2.2 频繁并置

参与度: γ A , B = | C A , B | | A | + | B | γ A , B = | C A , B | | A | + | B | gamma_(A,B)=(|C_(A,B)|)/(|A|+|B|)\gamma_{A,B}=\dfrac{|\mathcal{C}_{A,B}|}{|A|+|B|}γA,B=|CA,B||A|+|B|.
γ A , B γ min γ A , B γ min gamma_(A,B) >= gamma_(min)\gamma_{A,B}\ge \gamma_{\min}γA,Bγmin,称 A , B A , B A,BA,BA,B 存在频繁并置

2.3 热点路径(Hotspot Trail)

  • 长度阈值 k min k min k_(min)k_{\min}kmin
  • 支持阈值 m min m min m_(min)m_{\min}mmin
若存在有向节点序列 H = ( v 1 v k ) H = ( v 1 v k ) H=(v_(1)rarr cdots rarrv_(k))H = (v_1\to\dots\to v_k)H=(v1vk) 满足:
  1. k k min k k min k >= k_(min)k\ge k_{\min}kkmin
  2. 经过该序列的轨迹集合 SG H SG H SG_(H)\mathrm{SG}_HSGH 满足 | SG H | m min | SG H | m min |SG_(H)| >= m_(min)|\mathrm{SG}_H|\ge m_{\min}|SGH|mmin
则称 H H HHH 为热点路径。

3. 三类热点挖掘算法

类别 代表 适用场景 核心复杂度
Apriori‑Join NDTTJ 轨迹稀疏 O ( n 2 ) O ( n 2 ) O(n^(2))\mathcal{O}(n^2)O(n2) 时间, O ( n 2 ) O ( n 2 ) O(n^(2))\mathcal{O}(n^2)O(n2) 空间
Pattern‑Growth NDTTT 轨迹密集 O ( n log n ) O ( n log n ) O(n log n)\mathcal{O}(n\log n)O(nlogn) 时间, O ( n ) O ( n ) O(n)\mathcal{O}(n)O(n) 空间
Graph‑Traversal TTHS 大规模图结构明显 O ( n ) O ( n ) O(n)\mathcal{O}(n)O(n) 时间, O ( n ) O ( n ) O(n)\mathcal{O}(n)O(n) 空间

3.1 NDTTJ — N‑Degree Trajectory Table Join

  1. 初始队列:筛出满足 m min m min m_(min)m_{\min}mmin 的一阶边。
  2. 连接规则:若 p 1 = ( v 1 v r ) , p 2 = ( v r v r + 1 ) p 1 = ( v 1 v r ) , p 2 = ( v r v r + 1 ) p_(1)=(v_(1)dotsv_(r)),p_(2)=(v_(r)dotsv_(r+1))p_1=(v_1\dots v_r), p_2=(v_r\dots v_{r+1})p1=(v1vr),p2=(vrvr+1),则
new _ path = p 1 p 2 , new _ sg = sg p 1 sg p 2 . new _ path = p 1 p 2 , new _ sg = sg p 1 sg p 2 . "new"_"path"=p_(1)uup_(2),quad"new"_"sg"="sg"_(p_(1))nn"sg"_(p_(2)).\text{new}\_\text{path}=p_1\cup p_2, \quad \text{new}\_\text{sg}=\text{sg}_{p_1}\cap \text{sg}_{p_2}.new_path=p1p2,new_sg=sgp1sgp2.
  1. 剪枝 | new _ sg | < m min | new _ sg | < m min |"new"_"sg"| < m_(min)|\text{new}\_\text{sg}|<m_{\min}|new_sg|<mmin 直接丢弃。
  2. 迭代至无新路径或达到 max\_depth max\_depth "max\_depth"\text{max\_depth}max\_depth

3.2 NDTTT — N‑Degree Trajectory Table Traversal

深度优先,以尾节点为锚增长,不产生候选集,适合稠密路径。
利用 Neo4j / JanusGraph 免索引邻接优势,按边权“度”剪枝。

4. 多维特征工程

4.1 时间特征

  • 平均起始时刻 h ¯ = 1 | SG | i h i h ¯ = 1 | SG | i h i bar(h)=(1)/(|SG|)sum _(i)h_(i)\bar{h}=\dfrac{1}{|\mathrm{SG}|}\sum_i h_ih¯=1|SG|ihi
  • 时间熵 H t = b p b log 2 p b H t = b p b log 2 p b H_(t)=-sum_(b)p_(b)log_(2)p_(b)H_t=-\sum_{b} p_b\log_2 p_bHt=bpblog2pb

4.2 空间特征

  • 欧氏路径长 L = i = 1 k 1 v i + 1 v i 2 L = i = 1 k 1 v i + 1 v i 2 L=sum_(i=1)^(k-1)||v_(i+1)-v_(i)||_(2)L=\sum_{i=1}^{k-1}\|\mathbf{v}_{i+1}-\mathbf{v}_{i}\|_2L=i=1k1vi+1vi2
  • 空间熵:对经纬度各做 1D 熵并求和。

4.3 语义特征

  • 主导 POI arg max c freq ( c ) arg max c freq ( c ) arg max_(c)"freq"(c)\arg\max_{c} \text{freq}(c)argmaxcfreq(c)
  • POI 熵 H p o i H p o i H_(poi)H_{poi}Hpoi,衡量类型多样性。

5. 数据流程汇总

flowchart TD
    %% ========== ① 数据清洗 ==========
    A["Geolife .plt<br/>Raw trajectories"] -->|"15-min<br/>Sampling"| B["Cleaned CSV"]

    %% 拆分
    B --> NODES["nodes.csv"]
    B --> EDGES["edges.csv"]
    B --> META["traj_metadata.csv"]

    %% ========== ② 热点挖掘 ==========
    %% ---- Path-table line ----
    META --> PT1["1-degree<br/>Path Table"]
    PT1 --> HT1["NDTTJ / NDTTT<br/>Hotspots"]:::algo

    %% ---- Graph line ----
    NODES & EDGES --> GDB["Neo4j / JanusGraph"]:::store
    GDB --> HT2["TTHS<br/>Hotspots"]:::algo

    %% 合并
    HT1 & HT2 --> M["Merged hotspot set"]

    %% ========== ③ 三维特征 ==========
    M -->|时间映射| TF["Temporal features"]
    M -->|空间投影| SF["Spatial features"]
    M -->|POI映射| PF["Semantic features"]
    NODES --> PF
    META  --> TF

    TF & SF & PF --> EH["Enhanced hotspot table"]

    %% ========== ④ 质量清洗 ==========
    EH -->|"IQR-trim<br/>(length)"| CQ{"滤除极端值"}
    CQ --> FP["Final cleaned paths.csv"]

    %% ---------- 样式 ----------
    classDef algo  fill:#ffe2e2,stroke:#d44,stroke-width:1.3px,color:#000;
    classDef store fill:#e1ecff,stroke:#4682ff,stroke-width:1.3px,color:#000;

高阶语义热点轨迹频繁模式挖掘方案

背景说明

本方案以 cleaned_paths.csv 为核心数据基础,构建在三类轨迹热点挖掘算法(NDTTJ / NDTTT / TTHS)之上,结合已构造的时空、POI 语义、轨迹结构等多维特征,提出一个可落地、可解释的频繁语义路径模式挖掘系统,其目标是:
  • 发挥三类热点挖掘算法生成路径序列的结构优势(稳定、高覆盖);
  • 基于熵加权构建支持度体系(SU-Support),挖掘更有区分度和语义代表性的热点路径模式;
  • 借助自适应算法调度与剪枝,提升效率和表达质量;
  • 支持后续 Web 可视查询与 API 接口输出。

建模与支持度构建

三维熵加权支持度定义(SU-Support)

传统频繁模式支持度为:
Support ( H ) = | T H | Support ( H ) = | T H | "Support"(H)=|T_(H)|\text{Support}(H) = |\mathcal{T}_H|Support(H)=|TH|
我们引入三维稳定性加权(空间、时间、语义):
SU ( H ) = | T H | ( 1 λ H s ( H ) ) ( 1 μ H t ( H ) ) ( 1 ν H p o i ( H ) ) SU ( H ) = | T H | 1 λ H s ( H ) 1 μ H t ( H ) 1 ν H p o i ( H ) SU(H)=|T_(H)|*(1-lambda*H_(s)^(')(H))*(1-mu*H_(t)^(')(H))*(1-nu*H_(poi)^(')(H))\mathrm{SU}(H) = |\mathcal{T}_H| \cdot \left(1 - \lambda \cdot H_s'(H)\right) \cdot \left(1 - \mu \cdot H_t'(H)\right) \cdot \left(1 - \nu \cdot H_{poi}'(H)\right)SU(H)=|TH|(1λHs(H))(1μHt(H))(1νHpoi(H))
  • H s , H t , H p o i [ 0 , 1 ] H s , H t , H p o i [ 0 , 1 ] H_(s)^('),H_(t)^('),H_(poi)^(')in[0,1]H_s', H_t', H_{poi}' \in [0,1]Hs,Ht,Hpoi[0,1]:分别为空间、时间、POI 熵归一化后值;
  • λ , μ , ν λ , μ , ν lambda,mu,nu\lambda, \mu, \nuλ,μ,ν:三维惩罚系数,控制熵惩罚强度;
  • 当三个熵值越高,路径越不稳定,SU 值越小。

差分进化优化权重系数

使用差分进化(Differential Evolution)寻找三元最优权重参数:
  • 目标函数
max λ , μ , ν [ α Coverage ( θ ) ( 1 α ) Redundancy ( θ ) ] max λ , μ , ν α Coverage ( θ ) ( 1 α ) Redundancy ( θ ) max_(lambda,mu,nu)[alpha*"Coverage"(theta)-(1-alpha)*"Redundancy"(theta)]\max_{\lambda,\mu,\nu} \left[ \alpha \cdot \text{Coverage}(\theta) - (1-\alpha) \cdot \text{Redundancy}(\theta) \right]maxλ,μ,ν[αCoverage(θ)(1α)Redundancy(θ)]
  • Coverage Coverage "Coverage"\text{Coverage}Coverage:SU 前 K 模式覆盖所有轨迹的比例;
  • Redundancy Redundancy "Redundancy"\text{Redundancy}Redundancy:前 K 模式之间的 Jaccard 平均相似度;
  • θ θ theta\thetaθ:SU 阈值,保留高质量候选集;
  • α α alpha\alphaα:权衡因子,推荐值为 0.7。

自适应算法调度机制

核心思想:

  • NDTTJ 适合稀疏轨迹结构(连接型 Join)
  • NDTTT 适合中等密度(深度优先 Path-Growth)
  • TTHS 适合稠密区域(图结构下 DFS 遍历)

实现方式:

  1. 对每条路径计算空间密度:
ρ ( H ) = 1 H s ( H ) + ε ρ ( H ) = 1 H s ( H ) + ε rho(H)=(1)/(H_(s)^(')(H)+epsi)\rho(H) = \frac{1}{H_s'(H) + \varepsilon}ρ(H)=1Hs(H)+ε
  1. 设置分界阈值 ρ l , ρ h ρ l , ρ h rho _(l),rho _(h)\rho_l, \rho_hρl,ρh
密度区间 调用算法
ρ < ρ l ρ < ρ l rho < rho _(l)\rho < \rho_lρ<ρl NDTTJ
ρ l ρ < ρ h ρ l ρ < ρ h rho _(l) <= rho < rho _(h)\rho_l \le \rho < \rho_hρlρ<ρh NDTTT
ρ ρ h ρ ρ h rho >= rho _(h)\rho \ge \rho_hρρh TTHS
  1. 可训练决策树/聚类划分 ρ ρ rho\rhoρ 区间,动态微调

模式构建与双层消歧流程

步骤一:SU-FP-Tree 构建

  • path 序列构建 FP-Tree,使用 SU 值作为浮点计数;
  • 前缀遍历生成候选模式集 P 1 P 1 P_(1)\mathcal{P}_1P1

步骤二:PrefixSpan 补充

  • 使用 Spark MLlib 执行 PrefixSpan,补充遗漏的序列模式 P 2 P 2 P_(2)\mathcal{P}_2P2
  • 最终模式集 P = P 1 P 2 P = P 1 P 2 P=P_(1)uuP_(2)\mathcal{P} = \mathcal{P}_1 \cup \mathcal{P}_2P=P1P2

步骤三:超图 k-Truss 精炼

  • 将模式转为超边图结构 G G G\mathcal{G}G,节点为热点格点;
  • 执行 k k kkk-truss 分解( k = | H | / 2 k = | H | / 2 k=|~|H|//2~|k = \lceil |H|/2 \rceilk=|H|/2)保留强连通模式

步骤四:信息密度增益剪枝

定义模式信息增益:
Gain ( H ) = SU ( H ) | H | log 2 ( | POI H | + 1 ) Gain ( H ) = SU ( H ) | H | log 2 ( | POI H | + 1 ) "Gain"(H)=(SU(H))/(|H|*log_(2)(|"POI"_(H)|+1))\text{Gain}(H) = \frac{\mathrm{SU}(H)}{|H| \cdot \log_2(|\text{POI}_{H}|+1)}Gain(H)=SU(H)|H|log2(|POIH|+1)
  • | POI H | | POI H | |"POI"_(H)||\text{POI}_H||POIH|:该路径涵盖的 POI 类别数目
  • 使用阈值 τ G τ G tau _(G)\tau_GτG 保留高 Gain 模式

实验流程与模块落地

模块 工具/方法 输入列 说明
特征归一化 pandas/sklearn time_entropy, spatial_entropy, poi_entropy 归一化到 [0,1]
SU 计算 & DE调参 numpy + deap frequency, 上述熵列 输出 SU 值和 (λ,μ,ν)最优组合
调度标签学习 sklearn DecisionTreeClassifier source, spatial_entropy 预测当前热点适用算法类别
FP-Tree 构建 自定义 FP-Tree 类 path, SU 构建序列频繁模式树
PrefixSpan Spark MLlib path 规则匹配追加候选
k-truss 剪枝 NetworkX or custom impl path节点 保留强结构模式
Gain 计算 numpy SU值, path_length, poi_types 信息密度排序