核密度估计(KDE)(二)
Author: Rotch Date: 2025-08-31 Update: 2025-09-04
1. 自适应带宽选择
在前文中,KDE 算法要求各样本点共用同一带宽,即认为各样本点的影响大小、影响范围是一样的. 但在实际生活中,这一假设并不总是成立.
以某一大型区域的便利店服务研究为例:在城市中,人口密集、各类设施丰富,便利店分布较为密集. 但每家便利店主要服务对象仅为周边一小片区域的居民,影响范围小;而在乡村中,人口相对分散,便利店数量较少,一家便利店往往要服务整个村子甚至邻近几个村落的居民,服务范围就大得多. 在这种情况下,位于高密度区域的样本点的影响范围应该更小;位于低密度区域的样本点的影响范围应该更大. 于是我们给出如下自适应修正模型:
对于某一初始带宽 h h h ,计算其密度估计函数:
f ^ h ( x ) = 1 n ∑ i = 1 n 1 h K ( x − x ( i ) h ) . \begin{equation}
\hat{f}_h(x) = \frac{1}{n} \sum\limits_{i = 1}^{n} \frac{1}{h} K \left( \frac{x - x^{(i)}}{h} \right).
\end{equation} f ^ h ( x ) = n 1 i = 1 ∑ n h 1 K ( h x − x ( i ) ) .
在此基础上,引入带宽修正公式:
h i = h F f ^ h ( x ( i ) ) , \begin{equation}
h_i = h \sqrt{\frac{F}{\hat{f}_h(x^{(i)})}},
\end{equation} h i = h f ^ h ( x ( i ) ) F ,
其中 F = [ ∏ i = 1 n f ^ h ( x ( i ) ) ] 1 / n F = \left[ \prod\limits_{i = 1}^{n} \hat{f}_h \left( x^{(i)} \right) \right]^{1 / n} F = [ i = 1 ∏ n f ^ h ( x ( i ) ) ] 1/ n ,最终得到修正后的密度估计函数:
f ^ ( x ) = 1 n ∑ i = 1 n 1 h i K ( x − x ( i ) h i ) . \begin{equation}
\hat{f}(x) = \frac{1}{n} \sum\limits_{i = 1}^{n} \frac{1}{h_i} K \left( \frac{x - x^{(i)}}{h_i} \right).
\end{equation} f ^ ( x ) = n 1 i = 1 ∑ n h i 1 K ( h i x − x ( i ) ) .
对于其它问题,可运用此类思想对带宽进行自适应修正.
2. 多元 KDE 算法
2.1 多元 KDE 算法引入
基于一元 KDE 的基本原理,我们可以将 KDE 推广到 d ( d ∈ N + ) d \space (d \in \mathbb{N}_+) d ( d ∈ N + ) 元情况.
Def 2.1 多元核函数: \color{blue}{\textbf{Def 2.1 多元核函数: }} Def 2.1 多元核函数 : 一个多元核函数 K : R d → [ 0 , + ∞ ) K: \mathbb{R}^d \to [0, +\infty) K : R d → [ 0 , + ∞ ) 是一个实值函数,满足以下三条性质:
非负性 :K ( u ) ≥ 0 K(\boldsymbol{u}) \geq 0 K ( u ) ≥ 0 对任意的 u ∈ R d \boldsymbol{u} \in \mathbb{R}^d u ∈ R d ;
归一性 :∫ R d K ( u ) d u = 1 \int_{\mathbb{R}^d} K(\boldsymbol{u}) \mathrm{d}\boldsymbol{u} = 1 ∫ R d K ( u ) d u = 1 ;
对称性 :K ( − u ) = K ( u ) K(-\boldsymbol{u}) = K(\boldsymbol{u}) K ( − u ) = K ( u ) 对任意的 u ∈ R d \boldsymbol{u} \in \mathbb{R}^d u ∈ R d .
以下给出了常见的多元核函数及其公式:
核函数 d d d 元核公式d d d 元高斯核K ( u ) = 1 ( 2 π ) d / 2 exp ( − 1 2 u T u ) K(\boldsymbol{u}) = \frac{1}{(2 \pi)^{d / 2}} \exp(-\frac{1}{2} \boldsymbol{u}^\mathrm{T}\boldsymbol{u}) K ( u ) = ( 2 π ) d /2 1 exp ( − 2 1 u T u ) d d d 元 Epanechnikov 核K ( u ) = { d + 2 2 V d ( 1 − u T u ) , if ∣ u ∣ < 1 0 , otherwise K(\boldsymbol{u}) = \begin{cases} \frac{d + 2}{2 V_d}(1 - \boldsymbol{u}^\mathrm{T}\boldsymbol{u}), & \text{if } \vert \boldsymbol{u} \vert < 1 \\ 0, & \text{otherwise}\end{cases} K ( u ) = { 2 V d d + 2 ( 1 − u T u ) , 0 , if ∣ u ∣ < 1 otherwise d d d 元均匀核K ( u ) = { 1 V d , if ∣ u ∣ < 1 0 , otherwise K(\boldsymbol{u}) = \begin{cases} \frac{1}{V_d}, & \text{if } \vert \boldsymbol{u} \vert < 1 \\ 0, & \text{otherwise}\end{cases} K ( u ) = { V d 1 , 0 , if ∣ u ∣ < 1 otherwise
其中 V d = π d / 2 Γ ( d 2 + 1 ) V_d = \frac{\pi^{d/2}}{\Gamma(\frac{d}{2} + 1)} V d = Γ ( 2 d + 1 ) π d /2 是 d d d 维单位球体积.
根据一元 KDE 的基本思想,我们很容易得到下述公式:
p ( x ) ≈ 1 n h d V d ⋅ ∑ i = 1 n 1 ( 1 h ∣ x − x ( i ) ∣ ≤ 1 ) = 1 n ⋅ ∑ i = 1 n det H 1 2 ⋅ K [ H − 1 2 ( x − x ( i ) ) ] = p ^ ( x ) , \begin{align}
p(\boldsymbol{x}) &\approx \frac{1}{n h^d V_d} \cdot \sum\limits_{i = 1}^{n} \mathbb{1} \left( \frac{1}{h} \vert \boldsymbol{x} - \boldsymbol{x}^{(i)} \vert \leq 1 \right) \nonumber \\
&= \frac{1}{n} \cdot \sum\limits_{i = 1}^{n} \det \boldsymbol{H}^{\frac{1}{2}} \cdot K \left[ \boldsymbol{H}^{-\frac{1}{2}} \left(\boldsymbol{x} - \boldsymbol{x}^{(i)} \right) \right] = \hat{p}(\boldsymbol{x}),
\end{align} p ( x ) ≈ n h d V d 1 ⋅ i = 1 ∑ n 1 ( h 1 ∣ x − x ( i ) ∣ ≤ 1 ) = n 1 ⋅ i = 1 ∑ n det H 2 1 ⋅ K [ H − 2 1 ( x − x ( i ) ) ] = p ^ ( x ) ,
其中 H = h 2 I d \boldsymbol{H} = h^2 \boldsymbol{I}_d H = h 2 I d ,I d \boldsymbol{I}_d I d 是 d d d 阶单位矩阵,K ( u ) = 1 V d 1 ( ∥ u ∥ 2 ≤ 1 ) K(\boldsymbol{u}) = \frac{1}{V_d} \mathbb{1} \left( \parallel \boldsymbol{u} \parallel_2 \leq 1 \right) K ( u ) = V d 1 1 ( ∥ u ∥ 2 ≤ 1 ) 是 d d d 元均匀核. 容易验证:
∫ R d p ^ ( x ) d x = 1 n ∑ i = 1 n ∫ R d det H 1 2 ⋅ K [ H − 1 2 ( x − x ( i ) ) ] d x = 1. \begin{equation}
\int_\mathbb{R^d} \hat{p}(\boldsymbol{x}) \mathrm{d}\boldsymbol{x} = \frac{1}{n} \sum\limits_{i = 1}^{n} \int_\mathbb{R^d} \det \boldsymbol{H}^{\frac{1}{2}} \cdot K \left[ \boldsymbol{H}^{-\frac{1}{2}} \left(\boldsymbol{x} - \boldsymbol{x}^{(i)} \right) \right] \mathrm{d}\boldsymbol{x} = 1.
\end{equation} ∫ R d p ^ ( x ) d x = n 1 i = 1 ∑ n ∫ R d det H 2 1 ⋅ K [ H − 2 1 ( x − x ( i ) ) ] d x = 1.
若将上式中的 K ( x ) K(x) K ( x ) 替换为其它核函数,得到的 p ^ ( x ) \hat{p}(\boldsymbol{x}) p ^ ( x ) 仍为概率密度函数. 下面我们将对 H \boldsymbol{H} H 进行进一步的讨论:
首先,样本的不同维度的数据规模不同,适用的带宽也不同,因此,我们可以对 H \boldsymbol{H} H 进行扩展:
H = d i a g ( h 1 2 , h 2 2 , … , h d 2 ) . \begin{equation}
\boldsymbol{H} = \mathrm{diag}(h_1^2, h_2^2, \dots, h_d^2).
\end{equation} H = diag ( h 1 2 , h 2 2 , … , h d 2 ) .
这样的 H \boldsymbol{H} H 是十分容易参与计算的,其几何意义也十分明显:样本点的各维度彼此独立,各自享用自己的带宽. 如果各维度并不彼此独立,则可考虑使用样本的协方差矩阵构建带宽矩阵:
H C o v = Σ + ε I . \begin{equation}
\boldsymbol{H}_{\mathrm{Cov}} = \boldsymbol{\Sigma} + \varepsilon \boldsymbol{I}.
\end{equation} H Cov = Σ + ε I .
其中参数 ε > 0 \varepsilon > 0 ε > 0 起微小扰动作用,避免协方差矩阵 Σ \boldsymbol{\Sigma} Σ 半正定.
2.2 多元 KDE 算法
Algorithm: Multivariate Kernel Density Estimation \color{blue}{\textbf{Algorithm: Multivariate Kernel Density Estimation}} Algorithm: Multivariate Kernel Density Estimation 设 S = ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) ) \mathcal{S} = (\boldsymbol{x}^{(1)}, \boldsymbol{x}^{(2)}, ..., \boldsymbol{x}^{(n)}) S = ( x ( 1 ) , x ( 2 ) , ... , x ( n ) ) 是从总体中抽取的一组独立同分布(i.i.d.)样本数据,x ( i ) ∈ R d \boldsymbol{x}^{(i)} \in \mathbb{R}^d x ( i ) ∈ R d ,K ( x ) K(\boldsymbol{x}) K ( x ) 是给定的 d d d 元核函数,H ∈ S P D ( R , d ) \boldsymbol{H} \in \mathrm{SPD}(\mathbb{R}, d) H ∈ SPD ( R , d ) 为给定(d d d 阶实正定)带宽矩阵,则核密度估计给出的概率密度估计函数为:
f ^ H ( x ) = 1 n det H 1 / 2 ∑ i = 1 n K ( H − 1 / 2 ( x − x ( i ) ) ) = 1 n ∑ i = 1 n K H ( x − x ( i ) ) . \begin{equation}
\hat{f}_{\boldsymbol{H}}(\boldsymbol{x}) = \frac{1}{n \det \boldsymbol{H}^{1/2}} \sum\limits_{i = 1}^{n} K \left( \boldsymbol{H}^{-1/2} (\boldsymbol{x} - \boldsymbol{x}^{(i)}) \right) = \frac{1}{n} \sum\limits_{i = 1}^{n} K_{\boldsymbol{H}}(\boldsymbol{x} - \boldsymbol{x}^{(i)}).
\end{equation} f ^ H ( x ) = n det H 1/2 1 i = 1 ∑ n K ( H − 1/2 ( x − x ( i ) ) ) = n 1 i = 1 ∑ n K H ( x − x ( i ) ) .
在这里,我们继续引入积核 (Product Kernel)的概念:
Def 2.2 积核: \color{blue}{\textbf{Def 2.2 积核: }} Def 2.2 积核 : 设 K 1 , K 2 , … , K d K_1, K_2, \dots, K_d K 1 , K 2 , … , K d 是 d d d 个一元核函数,定义多元核函数 K : R d → [ 0 , + ∞ ) K: \mathbb{R}^d \to [0, +\infty) K : R d → [ 0 , + ∞ ) 满足:
K ( u ) = ∏ k = 1 d K k ( u k ) , \begin{equation}
K(\boldsymbol{u}) = \prod_{k=1}^{d} K_k(u_k),
\end{equation} K ( u ) = k = 1 ∏ d K k ( u k ) ,
其中 u = ( u 1 , u 2 , … , u d ) T ∈ R d \boldsymbol{u} = (u_1, u_2, \dots, u_d)^\mathrm{T} \in \mathbb{R}^d u = ( u 1 , u 2 , … , u d ) T ∈ R d ,则称 K K K 为基于 K 1 , K 2 , … , K d K_1, K_2, \dots, K_d K 1 , K 2 , … , K d 的积核.
显然,d d d 元 Gauss 核是 d d d 个一元 Gauss 核函数的积核. 使用积核的一个好处是其支持并行计算;此外,在需要调整带宽、增加估计点时,积核方法的计算复用性显著高于非积核方法.
我们接下来讨论多元 KDE 算法的渐进性质,将原来的三条假设推广至多元:
假设 f ∈ C 2 ( R d ) f \in C^2(\mathbb{R^d}) f ∈ C 2 ( R d ) 且其二阶导数 ∇ 2 f \nabla^2f ∇ 2 f 平方可积,记为 R ( ∇ 2 f ) = ∫ R d [ ∇ 2 f ( x ) ] 2 d x R(\nabla^2 f) = \int_{\mathbb{R}^d} \left [ \nabla^2f(\boldsymbol{x}) \right]^2 \mathrm{d}\boldsymbol{x} R ( ∇ 2 f ) = ∫ R d [ ∇ 2 f ( x ) ] 2 d x ;
假设核函数 K K K 二阶矩存在且平方可积,分别记为μ 2 ( K ) = ∫ R d u u T K ( u ) d u \mu_2(K) = \int_{\mathbb{R}^d} \boldsymbol{u} \boldsymbol{u}^\mathrm{T} K(\boldsymbol{u}) \mathrm{d}\boldsymbol{u} μ 2 ( K ) = ∫ R d u u T K ( u ) d u ,R ( K ) = ∫ R d K 2 ( u ) d u R(K) = \int_{\mathbb{R}^d} K^2(\boldsymbol{u}) \mathrm{d}\boldsymbol{u} R ( K ) = ∫ R d K 2 ( u ) d u ;
记 H = H n \boldsymbol{H} = \boldsymbol{H}_n H = H n ,假设 n → ∞ n \rightarrow \infty n → ∞ 且 H → 0 + \boldsymbol{H} \rightarrow 0^+ H → 0 + 时满足 n det H 1 / 2 → + ∞ n\det \boldsymbol{H}^{1/2} \rightarrow +\infty n det H 1/2 → + ∞ .
利用多元 Taylor 定理及一元 KDE 渐进性质的分析思路,我们可以得到(不做证明):
B i a s [ f ^ ( x ) ] = 1 2 μ 2 ( K ) [ v e c ( H [ f ( x ) ] ) ] T ⋅ v e c ( H ) + o ( ∣ v e c ( H ) ∣ ) , V a r [ f ^ ( x ) ] = R ( K ) n det H 1 / 2 f ( x ) + o [ 1 n det H 1 / 2 ] . \begin{align}
\mathrm{Bias}\left[\hat{f}(\boldsymbol{x})\right] &= \frac{1}{2} \mu_2(K) \left[ \mathrm{vec} \left (\mathrm{H} [f(\boldsymbol{x})] \right) \right]^\mathrm{T} \cdot \mathrm{vec}(\boldsymbol{H}) + o\left( \vert \mathrm{vec}(\boldsymbol{H}) \vert \right), \\
\mathrm{Var}\left[\hat{f}(\boldsymbol{x})\right] &= \frac{R(K)}{n \det\boldsymbol{H}^{1/2}}f(\boldsymbol{x}) + o\left[ \frac{1}{n\det\boldsymbol{H}^{1/2}} \right].
\end{align} Bias [ f ^ ( x ) ] Var [ f ^ ( x ) ] = 2 1 μ 2 ( K ) [ vec ( H [ f ( x )] ) ] T ⋅ vec ( H ) + o ( ∣ vec ( H ) ∣ ) , = n det H 1/2 R ( K ) f ( x ) + o [ n det H 1/2 1 ] .
其中 v e c ( ⋅ ) \mathrm{vec}(\cdot) vec ( ⋅ ) 表示将目标 n × m n \times m n × m 矩阵转换为 n m nm nm 阶向量,H ( ⋅ ) \mathrm{H}(\cdot) H ( ⋅ ) 表示 Hessian 矩阵.
2.3 带宽选择
带宽选择的基本方法已经在前文叙述,以下仅给出多元情况下的带宽选择公式. 首先我们推广 M S E \mathrm{MSE} MSE 和 M I S E \mathrm{MISE} MISE :
M S E [ f ^ ( x ) ] = E [ ( f ^ ( x ) − f ( x ) ) 2 ] , M I S E [ f ^ ( x ) ] = ∫ R d M S E [ f ^ ( x ) ] d x \begin{align}
\mathrm{MSE} \left[ \hat{f}(\boldsymbol{x}) \right] &= \mathbb{E}\left[ \left( \hat{f}(\boldsymbol{x}) - f(\boldsymbol{x}) \right)^2 \right], \\
\mathrm{MISE} \left[ \hat{f}(\boldsymbol{x}) \right] &= \int_{\mathbb{R}^d} \mathrm{MSE} \left[ \hat{f}(\boldsymbol{x}) \right] \mathrm{d}\boldsymbol{x}
\end{align} MSE [ f ^ ( x ) ] MISE [ f ^ ( x ) ] = E [ ( f ^ ( x ) − f ( x ) ) 2 ] , = ∫ R d MSE [ f ^ ( x ) ] d x
它们的渐进形式为:
A M S E [ f ^ ( x ) ] = R ( K ) n det H 1 / 2 f ( x ) + 1 4 μ 2 2 ( K ) t r 2 ( H H [ f ( x ) ] ) , A M I S E [ f ^ ( x ) ] = ∫ R A M S E ( x ) d x = 1 4 μ 2 2 ( K ) R [ t r ( H H [ f ( x ) ] ) ] + R ( K ) n det H 1 / 2 . \begin{align}
\mathrm{AMSE} \left[ \hat{f}(\boldsymbol{x}) \right] &= \frac{R(K)}{n \det\boldsymbol{H}^{1/2}}f(\boldsymbol{x}) + \frac{1}{4} \mu_2^2(K) \mathrm{tr}^2(\boldsymbol{H} \mathrm{H}[f(\boldsymbol{x})]), \\
\mathrm{AMISE} \left[ \hat{f}(\boldsymbol{x}) \right] &= \int_{\mathbb{R}} \mathrm{AMSE}(\boldsymbol{x}) \mathrm{d}\boldsymbol{x} = \frac{1}{4} \mu_2^2(K) R\left[ \mathrm{tr}(\boldsymbol{H} \mathrm{H}[f(\boldsymbol{x})]) \right] + \frac{R(K)}{n \det\boldsymbol{H}^{1/2}}.
\end{align} AMSE [ f ^ ( x ) ] AMISE [ f ^ ( x ) ] = n det H 1/2 R ( K ) f ( x ) + 4 1 μ 2 2 ( K ) tr 2 ( H H [ f ( x )]) , = ∫ R AMSE ( x ) d x = 4 1 μ 2 2 ( K ) R [ tr ( H H [ f ( x )]) ] + n det H 1/2 R ( K ) .
其中用到了一个定理:
Thm 2.4: \color{blue}{\textbf{Thm 2.4: }} Thm 2.4: A , B ∈ R n × n A, B \in \mathbb{R}^{n \times n} A , B ∈ R n × n ,v e c ( A ) T v e c ( B ) = t r ( A T B ) \mathrm{vec}(A)^{\mathrm{T}} \mathrm{vec}(B) = \mathrm{tr}\left( A^{\mathrm{T}} B \right) vec ( A ) T vec ( B ) = tr ( A T B ) .
Proof: \color{brown}{\textbf{Proof: }} Proof: 设 A = [ a i j ] A = \left[ a_{ij} \right] A = [ a ij ] ,B = [ b i j ] B = \left[ b_{ij} \right] B = [ b ij ] ,C = A T B = [ c i j ] C = A^\mathrm{T}B = \left[ c_{ij} \right] C = A T B = [ c ij ] 有:
c i j = ∑ k = 1 n a k i b k j . \begin{equation}
c_{ij} = \sum\limits_{k = 1}^{n} a_{ki} b_{kj}.
\end{equation} c ij = k = 1 ∑ n a ki b kj .
于是:
t r C = ∑ i = 1 n c i i = ∑ i = 1 n ∑ k = 1 n a k i b k i = v e c ( A ) T v e c ( B ) . □ \begin{equation}
\mathrm{tr} C = \sum\limits_{i = 1}^{n} c_{ii} = \sum\limits_{i = 1}^{n} \sum\limits_{k = 1}^{n} a_{ki} b_{ki} = \mathrm{vec}(A)^{\mathrm{T}} \mathrm{vec}(B). \square
\end{equation} tr C = i = 1 ∑ n c ii = i = 1 ∑ n k = 1 ∑ n a ki b ki = vec ( A ) T vec ( B ) . □
于是,渐进意义下的最优带宽为:
H a s y m − o p t = arg min H ∈ S P D ( R , d ) A M I S E [ f ^ ( x ) ] \begin{equation}
\boldsymbol{H}_{\mathrm{asym-opt}} = \arg \mathop{\min}\limits_{\boldsymbol{H} \in \mathrm{SPD}(\mathbb{R}, d)} \mathrm{AMISE}\left[ \hat{f}(\boldsymbol{x}) \right]
\end{equation} H asym − opt = arg H ∈ SPD ( R , d ) min AMISE [ f ^ ( x ) ]
与一元 KDE 不同,通过上式无法求出 H a s y m − o p t \boldsymbol{H}_{\mathrm{asym-opt}} H asym − opt 的表达式. 但是特别地,若 H = h 2 I d \boldsymbol{H} = h^2 \boldsymbol{I}_d H = h 2 I d ,则:
R ( t r ( H H [ f ( x ) ] ) ) = h 4 R ( t r ( H [ f ( x ) ] ) \begin{equation}
R\left(\mathrm{tr}(\boldsymbol{H} \mathrm{H}[f(\boldsymbol{x})])\right) = h^4 R\left(\mathrm{tr}(\mathrm{H}[f(\boldsymbol{x})]\right)
\end{equation} R ( tr ( H H [ f ( x )]) ) = h 4 R ( tr ( H [ f ( x )] )
将 ( 29 ) (29) ( 29 ) 带入 ( 25 ) (25) ( 25 ) ,对 A M I S E [ f ^ ( x ) ] \mathrm{AMISE} \left[ \hat{f}(\boldsymbol{x}) \right] AMISE [ f ^ ( x ) ] 关于 h h h 求导,得:
∇ h A M I S E [ f ^ ( x ) ] = h 3 μ 2 2 ( K ) R ( t r ( H [ f ( x ) ] ) − d R ( K ) n h d + 1 . \begin{equation}
\nabla_h \mathrm{AMISE} \left[ \hat{f}(\boldsymbol{x}) \right] = h^3 \mu_2^2(K) R\left(\mathrm{tr}(\mathrm{H}[f(\boldsymbol{x})]\right) - \frac{dR(K)}{nh^{d + 1}}.
\end{equation} ∇ h AMISE [ f ^ ( x ) ] = h 3 μ 2 2 ( K ) R ( tr ( H [ f ( x )] ) − n h d + 1 d R ( K ) .
令 ∇ h A M I S E [ f ^ ( x ) ] = 0 \nabla_h \mathrm{AMISE} \left[ \hat{f}(\boldsymbol{x}) \right] = 0 ∇ h AMISE [ f ^ ( x ) ] = 0 ,有:
h a s y m − o p t = ( d R ( K ) μ 2 2 ( K ) R ( t r ( H [ f ( x ) ] ) n ) 1 / ( d + 4 ) . \begin{equation}
h_{\mathrm{asym-opt}} = \left( \frac{dR(K)}{\mu_2^2(K) R\left(\mathrm{tr}(\mathrm{H}[f(\boldsymbol{x})]\right) n} \right)^{1 / (d + 4)}.
\end{equation} h asym − opt = ( μ 2 2 ( K ) R ( tr ( H [ f ( x )] ) n d R ( K ) ) 1/ ( d + 4 ) .
尽管 ( 34 ) (34) ( 34 ) 依赖于大量化简,但其揭示了一个重要的规律:当 d d d 增大时,最优带宽 h a s y m − o p t h_{\mathrm{asym-opt}} h asym − opt 也会增大. 此外,我们发现 ( 34 ) (34) ( 34 ) 的计算也面临着和一元 KDE 同样的问题:起计算依赖于关于真实密度函数 f f f 的泛函. 我们首先采取和 Silverman 方法 一致的思想,用正态分布函数来近似 f f f ,得到(不作具体计算):
H N S = ( 4 p + 2 ) 2 / ( p + 4 ) n − 2 / ( p + 4 ) ⋅ Σ \begin{equation}
\boldsymbol{H}_{\mathrm{NS}} = \left( \frac{4}{p + 2} \right)^{2 / (p + 4)} n^{-2 / (p + 4)} \cdot \boldsymbol{\Sigma}
\end{equation} H NS = ( p + 2 4 ) 2/ ( p + 4 ) n − 2/ ( p + 4 ) ⋅ Σ
在前文中,我们还提到了插入法. 对于多元 KDE,其插入法推导思路与一元 KDE 无异,但各阶段最优带宽 G \boldsymbol{G} G 没有明确的公式,不适合实际计算,这里不再展开. 接下来我们讨论交叉验证法,交叉验证法可以很好地适应多元情况.
留一交叉验证法 可以表述为:
L O O C V ( H ) = ∫ R f ^ H 2 ( x ) d x − 2 n ∑ j = 1 n f ^ H , − j ( x ( j ) ) , H L O O C V = arg min H ∈ S P D ( R , d ) L O O C V ( H ) . \begin{align}
\mathrm{LOOCV}(\boldsymbol{H}) &= \int_{\mathbb{R}} \hat{f}_{\boldsymbol{H}}^2 (\boldsymbol{x}) \mathrm{d}\boldsymbol{x} - \frac{2}{n} \sum\limits_{j = 1}^{n} \hat{f}_{\boldsymbol{H}, -j}(\boldsymbol{x}^{(j)}), \\
\boldsymbol{H}_{\mathrm{LOOCV}} &= \arg \mathop{\min}\limits_{\boldsymbol{H} \in \mathrm{SPD}(\mathbb{R}, d)} \mathrm{LOOCV}\left( \boldsymbol{H} \right).
\end{align} LOOCV ( H ) H LOOCV = ∫ R f ^ H 2 ( x ) d x − n 2 j = 1 ∑ n f ^ H , − j ( x ( j ) ) , = arg H ∈ SPD ( R , d ) min LOOCV ( H ) .
有偏交叉验证法 可以表述为:
R ( ∇ 2 f ) ~ = R ( ∇ 2 f ^ ) − 1 n det H 5 / 2 R ( ∇ 2 K ) , B C V ( H ) = 1 4 det H 2 μ 2 2 ( K ) R ( ∇ 2 f ) ~ + R ( K ) n det H 1 / 2 , H B C V = arg min H ∈ S P D ( R , d ) B C V ( H ) . \begin{align}
\widetilde{R(\nabla^2 f)} &= R(\nabla^2 \hat{f}) - \frac{1}{n \det\boldsymbol{H}^{5 / 2}} R(\nabla^2 K), \\
\mathrm{BCV}(\boldsymbol{H}) &= \frac{1}{4}\det\boldsymbol{H}^2 \mu_2^2(K) \widetilde{R(\nabla^2 f)} + \frac{R(K)}{n \det\boldsymbol{H}^{1 / 2}}, \\
\boldsymbol{H}_{\mathrm{BCV}} &= \arg \mathop{\min}\limits_{\boldsymbol{H} \in \mathrm{SPD}(\mathbb{R}, d)} \mathrm{BCV}\left( \boldsymbol{H} \right).
\end{align} R ( ∇ 2 f ) BCV ( H ) H BCV = R ( ∇ 2 f ^ ) − n det H 5/2 1 R ( ∇ 2 K ) , = 4 1 det H 2 μ 2 2 ( K ) R ( ∇ 2 f ) + n det H 1/2 R ( K ) , = arg H ∈ SPD ( R , d ) min BCV ( H ) .
2.4 多元 KDE 算法下的导数估计
设 f : R d → R f: \mathbb{R}^d \rightarrow \mathbb{R} f : R d → R 是通过 KDE 算法生成的概率密度函数,我们想讨论其导数. 对于一阶和二阶导数,我们分别有:
∇ f ( x ) = [ ∂ ∂ x k f ( x ) ] k = 1 , 2 , … , d T ∈ R d , ∇ 2 f ( x ) = H [ f ( x ) ] = [ ∂ 2 ∂ x k ∂ x l f ( x ) ] k , l = 1 , 2 , … , d T ∈ R d × d . \begin{align}
\nabla f(\boldsymbol{x}) &= \left[ \frac{\partial}{\partial x_k} f(\boldsymbol{x}) \right]^\mathrm{T}_{k = 1, 2, \dots, d} \in \mathbb{R}^d, \\
\nabla^2 f(\boldsymbol{x}) = \mathrm{H}[f(\boldsymbol{x})] &= \left[ \frac{\partial^2}{\partial x_k \partial x_l} f(\boldsymbol{x}) \right]^\mathrm{T}_{k, l = 1, 2, \dots, d} \in \mathbb{R}^{d \times d}.
\end{align} ∇ f ( x ) ∇ 2 f ( x ) = H [ f ( x )] = [ ∂ x k ∂ f ( x ) ] k = 1 , 2 , … , d T ∈ R d , = [ ∂ x k ∂ x l ∂ 2 f ( x ) ] k , l = 1 , 2 , … , d T ∈ R d × d .
需要指出的是,( 29 ) (29) ( 29 ) 式是矩阵形式,显然不利于推广到高维,我们利用 Kronecker 积将其转换为向量形式:
∇ ⊗ ∇ f ( x ) = [ ∇ ( ∂ ∂ x k f ( x ) ) ] k = 1 , 2 , … , d T = [ [ ∂ 2 ∂ x k ∂ x l f ( x ) ] l = 1 , 2 , … , d T ] k = 1 , 2 , … , d T ∈ R d 2 . \begin{align}
\nabla \otimes \nabla f(\boldsymbol{x}) &= \left[ \nabla \left( \frac{\partial}{\partial x_k} f(\boldsymbol{x}) \right) \right]^\mathrm{T}_{k = 1, 2, \dots, d} \nonumber \\
&= \left[ \left[ \frac{\partial^2}{\partial x_k \partial x_l} f(\boldsymbol{x}) \right]^\mathrm{T}_{l = 1, 2, \dots, d} \right]^\mathrm{T}_{k = 1, 2, \dots, d} \in \mathbb{R}^{d^2}.
\end{align} ∇ ⊗ ∇ f ( x ) = [ ∇ ( ∂ x k ∂ f ( x ) ) ] k = 1 , 2 , … , d T = [ [ ∂ x k ∂ x l ∂ 2 f ( x ) ] l = 1 , 2 , … , d T ] k = 1 , 2 , … , d T ∈ R d 2 .
我们将上述符号记为 ∇ ⊗ 2 f ( x ) \nabla^{\otimes 2} f(\boldsymbol{x}) ∇ ⊗ 2 f ( x ) . 一般地,我们给出 f ( x ) f(\boldsymbol{x}) f ( x ) 的 r r r 阶导数:
∇ ⊗ r f ( x ) = [ ∂ r f ( x ) ∂ x 1 … ∂ x 1 , … , ∂ r f ( x ) ∂ x 1 … ∂ x d , … , ∂ r f ( x ) ∂ x d … ∂ x d ] T ∈ R d r . \begin{equation}
\nabla^{\otimes r} f(\boldsymbol{x}) = \left[ \frac{\partial^r f(\boldsymbol{x})}{\partial x_1 \dots \partial x_1}, \dots, \frac{\partial^r f(\boldsymbol{x})}{\partial x_1 \dots \partial x_d}, \dots, \frac{\partial^r f(\boldsymbol{x})}{\partial x_d \dots \partial x_d} \right]^\mathrm{T} \in \mathbb{R}^{d^r}.
\end{equation} ∇ ⊗ r f ( x ) = [ ∂ x 1 … ∂ x 1 ∂ r f ( x ) , … , ∂ x 1 … ∂ x d ∂ r f ( x ) , … , ∂ x d … ∂ x d ∂ r f ( x ) ] T ∈ R d r .
Lem 2.3 多元 Taylor 定理: \color{blue}{\textbf{Lem 2.3 多元 Taylor 定理: }} Lem 2.3 多元 Taylor 定理 : 设 f : R p → R f: \mathbb{R}^p \to \mathbb{R} f : R p → R ,x ∈ R p \boldsymbol{x} \in \mathbb{R}^p x ∈ R p 。若 f ∈ C r [ B ( x , δ ) ] f \in C^r[B(\boldsymbol{x}, \delta)] f ∈ C r [ B ( x , δ )] ,则对任意 ∣ h ∣ < δ \vert \boldsymbol{h} \vert < \delta ∣ h ∣ < δ ,有:
f ( x + h ) = ∑ s = 0 r 1 s ! [ ∇ ⊗ s f ( x ) ] T h ⊗ s + o ( ∣ h ∣ r ) . \begin{equation}
f(\boldsymbol{x} + \boldsymbol{h}) = \sum\limits_{s = 0}^r \frac{1}{s!} \left[ \nabla^{\otimes s}f(\boldsymbol{x}) \right]^{\mathrm{T}} \boldsymbol{h}^{\otimes s} + o\left( \vert \boldsymbol{h} \vert^r \right).
\end{equation} f ( x + h ) = s = 0 ∑ r s ! 1 [ ∇ ⊗ s f ( x ) ] T h ⊗ s + o ( ∣ h ∣ r ) .
证明略. 下面给出 f f f 的导数估计量:
∇ ^ ⊗ r f = 1 n ∑ i = 1 n ( ∇ ⊗ r K H ) ( x − x ( i ) ) . \begin{equation}
\hat{\nabla}^{\otimes r}f = \frac{1}{n} \sum_{i = 1}^n \left( \nabla^{\otimes r} K_{\boldsymbol{H}} \right)(\boldsymbol{x} - \boldsymbol{x}^{(i)}).
\end{equation} ∇ ^ ⊗ r f = n 1 i = 1 ∑ n ( ∇ ⊗ r K H ) ( x − x ( i ) ) .
其中:
∇ ⊗ r K H = ∣ H ∣ − 1 / 2 ( H − 1 / 2 ) ⊗ r ( ∇ ⊗ r K ) ( H − 1 / 2 ( x − x ( i ) ) ) . \begin{equation}
\nabla^{\otimes r} K_{\boldsymbol{H}} = \vert \boldsymbol{H} \vert^{-1/2} \left( \boldsymbol{H}^{-1/2} \right)^{\otimes r} \left( \nabla^{\otimes r}K \right)\left( \boldsymbol{H}^{-1/2}(\boldsymbol{x} - \boldsymbol{x^{(i)}}) \right).
\end{equation} ∇ ⊗ r K H = ∣ H ∣ − 1/2 ( H − 1/2 ) ⊗ r ( ∇ ⊗ r K ) ( H − 1/2 ( x − x ( i ) ) ) .
特别地,取 r = 1 r = 1 r = 1 时,有:
∇ ^ f ( x ) = H − 1 / 2 n det H 1 / 2 ∑ i = 1 n ( ∇ K ) ( H − 1 / 2 ( x − x ( i ) ) ) . \begin{equation}
\hat{\nabla} f(\boldsymbol{x}) = \frac{\boldsymbol{H}^{-1/2}}{n \det \boldsymbol{H}^{1/2}} \sum\limits_{i = 1}^n (\nabla K)\left( \boldsymbol{H}^{-1/2} \left( \boldsymbol{x} - \boldsymbol{x^{(i)}} \right) \right).
\end{equation} ∇ ^ f ( x ) = n det H 1/2 H − 1/2 i = 1 ∑ n ( ∇ K ) ( H − 1/2 ( x − x ( i ) ) ) .
若定义缩放一阶梯度核函数:
( ∇ K ) H ( u ) = 1 det H 1 / 2 ( ∇ K ) ( H − 1 / 2 ( u ) ) , \begin{equation}
(\nabla K)_{\boldsymbol{H}}(\boldsymbol{u}) = \frac{1}{\det \boldsymbol{H}^{1/2}} (\nabla K)\left( \boldsymbol{H}^{-1/2} \left( \boldsymbol{u} \right) \right),
\end{equation} ( ∇ K ) H ( u ) = det H 1/2 1 ( ∇ K ) ( H − 1/2 ( u ) ) ,
则一阶导数估计量可写作:
∇ ^ f ( x ) = 1 n H − 1 / 2 ∑ i = 1 n ( ∇ K ) H ( x − x ( i ) ) . \begin{equation}
\hat{\nabla} f(\boldsymbol{x}) = \frac{1}{n} \boldsymbol{H}^{-1/2} \sum\limits_{i = 1}^n (\nabla K)_{\boldsymbol{H}} \left( \boldsymbol{x} - \boldsymbol{x^{(i)}} \right).
\end{equation} ∇ ^ f ( x ) = n 1 H − 1/2 i = 1 ∑ n ( ∇ K ) H ( x − x ( i ) ) .
对于 r > 1 r > 1 r > 1 的讨论我们不多赘述,可根据实际情况进行讨论. 注意到 H − 1 / 2 \boldsymbol{H}^{-1/2} H − 1/2 的存在,这说明了 ( 37 ) (37) ( 37 ) 的带宽选择不同于 ( 8 ) (8) ( 8 ) 的带宽选择,我们给出 r r r 阶导数下 H N S , r \boldsymbol{H}_{\mathrm{NS}, r} H NS , r 的表达式(对 A M S E \mathrm{AMSE} AMSE 的推广、Silverman 方法的应用不作叙述):
H N S , r = ( 4 p + 2 r + 2 ) 2 / ( p + 2 r + 4 ) n − 2 / ( p + 2 r + 4 ) Σ . \begin{equation}
\boldsymbol{H}_{\mathrm{NS},r} = \left(\frac{4}{p + 2r + 2}\right)^{2 / (p + 2r + 4)} n^{-2 / (p + 2r + 4)} \boldsymbol{\Sigma}.
\end{equation} H NS , r = ( p + 2 r + 2 4 ) 2/ ( p + 2 r + 4 ) n − 2/ ( p + 2 r + 4 ) Σ .
当 r = 0 r = 0 r = 0 时,H N S , 0 \boldsymbol{H}_{\mathrm{NS}, 0} H NS , 0 退化为 H N S \boldsymbol{H}_{\mathrm{NS}} H NS . 随着 r r r 的增大,H N S , r \boldsymbol{H}_{\mathrm{NS},r} H NS , r 也会增大,这表明若使用密度估计的最优带宽来估计导数的最优带宽,会导致导数估计出现“欠平滑”现象.
3. 线特征的核密度估计(KDE-Linear, KDE-L)
线特征(如道路、河流、轨迹、等高线等)是地理信息科学(Geographic Information Science, GIS)、计算机视觉、模式识别等领域中常见的空间数据类型. 与点特征的核密度估计(KDE)不同,线特征的核密度估计需考虑线的连续性、长度、方向 等几何属性,核心是通过“核函数”将线特征的空间分布“平滑化”,最终生成反映线特征空间集聚程度的密度表面,用于识别线特征的密集区域(如城市路网密集区)或稀疏区域.
在这种意义下,我们不再需要保障最终的密度估计函数 f ^ \hat{f} f ^ 满足 ∫ R d f ^ ( x ) d x = 1 \int_{\mathbb{R}^d} \hat{f}(\boldsymbol{x}) \mathrm{d}\boldsymbol{x} = 1 ∫ R d f ^ ( x ) d x = 1 ,而仅使用 f ^ ( x ) \hat{f}(\boldsymbol{x}) f ^ ( x ) 的大小来判断 x \boldsymbol{x} x 处的密度高低.
设 l l l 是一个线特征,为确定 l l l 的概率影响,我们可以采取采样点的方法. 作划分 T : t 0 , t 1 , t 2 , … , t n T: t_0, t_1, t_2, \dots, t_n T : t 0 , t 1 , t 2 , … , t n ,其中 t 0 t_0 t 0 是 l l l 的起点,t n t_n t n 是 l l l 的终点,t 0 , t 1 , … , t n t_0, t_1, \dots, t_n t 0 , t 1 , … , t n 依次位于 l l l 上,t i − 1 , t i ‾ \overline{t_{i - 1}, t_i} t i − 1 , t i 表示 t i − 1 t_{i - 1} t i − 1 和 t i t_i t i 点之间的线段,∥ T ∥ = max i = 1 , 2 , … , n ∣ t i − 1 , t i ‾ ∣ \parallel T \parallel = \max\limits_{i = 1, 2, \dots, n} \vert \overline{t_{i - 1}, t_i} \vert ∥ T ∥= i = 1 , 2 , … , n max ∣ t i − 1 , t i ∣ . 任取 s i ∈ t i − 1 , t i ‾ s_i \in \overline{t_{i - 1}, t_i} s i ∈ t i − 1 , t i ,考虑使用 S = { s 1 , s 2 , … , s n } \mathcal{S} = \{ s_1, s_2, \dots, s_n \} S = { s 1 , s 2 , … , s n } 来估计 l l l 的概率影响,对于任意点 x x x :
f ^ T ( x ) = 1 n h ∑ i = 1 n K ( x − s i h ) = ∑ i = 1 n 1 n h K ( x − s i h ) ≈ ∑ i = 1 n ∣ t i − 1 , t i ‾ ∣ ∣ t 0 , t n ‾ ∣ ⋅ 1 h K ( x − s i h ) . \begin{align}
\hat{f}_T(x) &= \frac{1}{nh} \sum\limits_{i = 1}^{n} K\left( \frac{x - s_i}{h} \right) \nonumber \\
&= \sum\limits_{i = 1}^{n} \frac{1}{nh} K\left( \frac{x - s_i}{h} \right) \nonumber \\
&\approx \sum\limits_{i = 1}^{n} \frac{\vert \overline{t_{i - 1}, t_i} \vert}{\vert \overline{t_0, t_n} \vert} \cdot \frac{1}{h} K\left( \frac{x - s_i}{h} \right).
\end{align} f ^ T ( x ) = nh 1 i = 1 ∑ n K ( h x − s i ) = i = 1 ∑ n nh 1 K ( h x − s i ) ≈ i = 1 ∑ n ∣ t 0 , t n ∣ ∣ t i − 1 , t i ∣ ⋅ h 1 K ( h x − s i ) .
其中 K ( ⋅ ) K(\cdot) K ( ⋅ ) 是选定核函数. 随着划分 T T T 越来越精细,f ^ T ( x ) \hat{f}_T(x) f ^ T ( x ) 越接近真实的密度影响:
f ^ ∗ ( x ) = lim ∥ T ∥ → 0 + f ^ T ( x ) = 1 h ∣ t 0 , t n ‾ ∣ ∫ l K ( x − s h ) d s . \begin{equation}
\hat{f}_*(x) = \lim\limits_{\parallel T \parallel \rightarrow 0^+} \hat{f}_T(x) = \frac{1}{h\vert \overline{t_0, t_n} \vert} \int_{l} K\left( \frac{x - s}{h} \right) \mathrm{d}s.
\end{equation} f ^ ∗ ( x ) = ∥ T ∥→ 0 + lim f ^ T ( x ) = h ∣ t 0 , t n ∣ 1 ∫ l K ( h x − s ) d s .
忽略掉系数 ( ∣ t 0 , t n ‾ ∣ ) − 1 (\vert \overline{t_0, t_n} \vert)^{-1} ( ∣ t 0 , t n ∣ ) − 1 ,得到:
f ^ ( x ) = 1 h ∫ l K ( x − s h ) d s . \begin{equation}
\hat{f}(x) = \frac{1}{h} \int_{l} K\left( \frac{x - s}{h} \right) \mathrm{d}s.
\end{equation} f ^ ( x ) = h 1 ∫ l K ( h x − s ) d s .
值得指出的是,忽略掉系数 ( ∣ t 0 , t n ‾ ∣ ) − 1 (\vert \overline{t_0, t_n} \vert)^{-1} ( ∣ t 0 , t n ∣ ) − 1 是有意义的:一方面,由于不需要进行归一化,忽略该系数不会产生错误;另一方面,由于不同线特征的长度可能不同,若保留该系数,则较长的线特征产生的影响更广,导致其影响强度降低,使得不同线特征之间影响不匹配.
对于带宽 h h h 的选择,经验法(即:前文所提的直观法)是尤为重要的. 这是因为此类问题通常关注可视化的结果,得到如道路路网密度图等图像,因此视觉上的最优性是选取带宽的第一要素;对于部分问题,还要兼顾其计算复杂性和精度. 此外,自适应的带宽选择方法也会被使用.
4. 网络核密度估计(Network KDE, NKDE)
4.1 网络密度核估计算法
网络核密度估计是传统核密度估计在网络空间 中的拓展,核心是解决“空间点事件在网络结构(如道路、河流、管线等线性网络)上的密度分布估计”问题,而非传统 KDE 针对的二维/三维欧氏空间.
在现实场景中,许多事件(如交通事故、店铺分布、犯罪案件)的发生和扩散严格依赖于网络(例如交通事故仅会沿道路分布,而非在道路外的区域),传统 KDE 直接用欧氏距离计算密度会忽略网络拓扑结构(如道路的连通性、弯曲度),导致估计结果失真;而 NKDE 通过将 “欧氏距离” 替换为 “网络距离” ,并结合网络拓扑特性调整核函数,实现对网络上点事件密度的精准刻画. 同样地,网络和密度估计也不需要进行归一化.
设 G = ( V , E ) G = (V, E) G = ( V , E ) 是有向连通图,其中 V V V 是顶点集,E E E 是边集. 我们用 d + ( v ) d_+(v) d + ( v ) 表示顶点 v v v 的出度,o u t ( v ) \mathrm{out}(v) out ( v ) 表示离开顶点 v v v 的边的集合. 显然满足:∣ o u t ( v ) ∣ = d + ( v ) \vert \mathrm{out}(v) \vert = d_+(v) ∣ out ( v ) ∣ = d + ( v ) .
下面,我们来定义网络:记 N = ( G , ω ) \mathcal{N} = (G, \omega) N = ( G , ω ) 称为一个网络 ,其中 G = ( V , E ) G = (V, E) G = ( V , E ) 是有向连通图,ω \omega ω 是定义在 E E E 上的函数,用于指明 E E E 中边 e e e 的权重(对应现实意义中的:道路权重、河流流量、管道大小等). 称 x ∈ ⋃ E x \in \bigcup E x ∈ ⋃ E 为 N \mathcal{N} N 中的点,对于 N \mathcal{N} N 中的任一点 x 1 , x 2 x_1, x_2 x 1 , x 2 ,记 x 1 x_1 x 1 到 x 2 x_2 x 2 的最短路径长度为 d m ( x 1 , x 2 ) \mathrm{dm}(x_1, x_2) dm ( x 1 , x 2 ) ,经过的顶点的全体构成的集合为 V m ( x 1 , x 2 ) \mathrm{Vm}(x_1, x_2) Vm ( x 1 , x 2 ) .
设 S = ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) ) \mathcal{S} = (x^{(1)}, x^{(2)}, ..., x^{(n)}) S = ( x ( 1 ) , x ( 2 ) , ... , x ( n ) ) 是 N \mathcal{N} N 中的样本,K K K 是取定一元核函数. 对于任意样本点 x ( i ) x^{(i)} x ( i ) ,不妨设 x ( i ) ∈ e i x^{(i)} \in e_i x ( i ) ∈ e i ,对于 e i e_i e i 上任意点 x x x ,x ( i ) x^{(i)} x ( i ) 在 x x x 处的影响为:
f i ( x ) = K h ( d m ( x ( i ) , x ) ) , x ∈ e i . \begin{equation}
f_i(x) = K_h \left( \mathrm{dm}(x^{(i)}, x) \right), \quad x \in e_i.
\end{equation} f i ( x ) = K h ( dm ( x ( i ) , x ) ) , x ∈ e i .
此时的影响衰减函数即为一元 KDE 的影响衰减函数. 下面考虑 x ( i ) x^{(i)} x ( i ) 对位于其它边上的点的影响:设 e j e_j e j 的起点通过顶点 v v v 连接到 e i e_i e i ,x ∈ e j x \in e_j x ∈ e j ,则可以给出 x ( i ) x^{(i)} x ( i ) 在 x x x 处的影响:
f i ( x ) = 1 d + ( v ) K h ( d m ( x ( i ) , x ) ) , x ∈ e j . \begin{equation}
f_i(x) = \frac{1}{d_+(v)}K_h \left( \mathrm{dm}(x^{(i)}, x) \right), \quad x \in e_j.
\end{equation} f i ( x ) = d + ( v ) 1 K h ( dm ( x ( i ) , x ) ) , x ∈ e j .
其直观的实际意义是:x ( j ) x^{(j)} x ( j ) 的影响随着 x x x 移动到 e j e_j e j 的终点 v v v 处而发生了分裂,平均分为 d + d_+ d + 份,沿着 o u t ( v ) \mathrm{out}(v) out ( v ) 中的每条边继续延申. 如果考虑到 ω \omega ω 的作用(即:影响的分裂不是均分,而是依权重分裂),则有:
f i ( x ) = ω ( e j ) ∑ e ∈ o u t ( v ) ω ( e ) K h ( d m ( x ( i ) , x ) ) , x ∈ e j . \begin{equation}
f_i(x) = \frac{\omega(e_j)}{\sum\limits_{e \in \mathrm{out}(v)} \omega(e)} K_h \left( \mathrm{dm}(x^{(i)}, x) \right), \quad x \in e_j.
\end{equation} f i ( x ) = e ∈ out ( v ) ∑ ω ( e ) ω ( e j ) K h ( dm ( x ( i ) , x ) ) , x ∈ e j .
据此,对于一般 N \mathcal{N} N 中的点 x x x ,x ( i ) x^{(i)} x ( i ) 对 x x x 的影响为:
f i ( x ) = ∏ v ∈ V m ( x ( i ) , x ) ( ω ( e v ) ∑ e ∈ o u t ( v ) ω ( e ) ) K h ( d m ( x ( i ) , x ) ) , x ∈ ⋃ E . \begin{equation}
f_i(x) = \prod_{v \in \mathrm{Vm}(x^{(i)}, x)} \left( \frac{\omega(e_v)}{\sum\limits_{e \in \mathrm{out}(v)} \omega(e)} \right) K_h\left( \mathrm{dm}(x^{(i)}, x) \right), \quad x \in \bigcup E.
\end{equation} f i ( x ) = v ∈ Vm ( x ( i ) , x ) ∏ e ∈ out ( v ) ∑ ω ( e ) ω ( e v ) K h ( dm ( x ( i ) , x ) ) , x ∈ ⋃ E .
(说明:上式实际表示的是 x ( i ) x^{(i)} x ( i ) 对其下游点的影响,若要表示对上游点的影响,只需将 V m ( x ( i ) , x ) \mathrm{Vm}(x^{(i)}, x) Vm ( x ( i ) , x ) 改为 V m ( x , x ( i ) ) \mathrm{Vm}(x, x^{(i)}) Vm ( x , x ( i ) ) ,下同)
其中 e v e_v e v 表示从 x ( i ) x^{(i)} x ( i ) 到 x x x 的最短路径中以 v ( v ∈ V m ( x ( i ) , x ) ) v \space \left(v \in \mathrm{\mathrm{Vm}(x^{(i)}, x)} \right) v ( v ∈ Vm ( x ( i ) , x ) ) 为起点的边. 尽管这一式子十分复杂,在实际应用中(无论是选取有紧支集的核函数还是 Gauss 核函数),只需考虑带宽范围内的点即可.
最后,基于全部的样本,我们可以给出 N \mathcal{N} N 上的样本密度估计函数:
f ( x ) = 1 n ∑ i = 1 n f i ( x ) . \begin{equation}
f(x) = \frac{1}{n} \sum\limits_{i = 1}^{n} f_i(x).
\end{equation} f ( x ) = n 1 i = 1 ∑ n f i ( x ) .
4.2 基于线特征的网络核密度估计算法
在某些应用网络密度核估计算法的场景中,样本点不再是点特征,而是线特征,如:出租车的载客点分布(说明:实际应用中,无法获取出租车载客点的实际位置,而是通过连续采样,粗略地认为载客点位于某两采样点间. 而这两个采样点间的道路即为一个线特征). 下面我们将 NKDE 推广至线特征:
先给出线性事件 的定义:记 l = ( s , t , p ) \mathscr{l} = ( s, t, p ) l = ( s , t , p ) ,其中 s ∈ e s , t ∈ e t , ∃ e s , e p ∈ E s \in e_s, \space t \in e_t, \space \exist e_s, e_p \in E s ∈ e s , t ∈ e t , ∃ e s , e p ∈ E ,p p p 是线性事件的其它额外信息(如起止时间、ID 编号等),不在数学讨论范围中.
设 S l i n e a r = ( l ( 1 ) , l ( 2 ) , . . . , l ( n ) ) \mathcal{S_\mathrm{linear}} = (\mathscr{l}^{(1)}, \mathscr{l}^{(2)}, ..., \mathscr{l}^{(n)}) S linear = ( l ( 1 ) , l ( 2 ) , ... , l ( n ) ) 是网络 N \mathcal{N} N 中的线特征样本,每个特征的原始影响衰减函数为:
f o r i g i n , i ( x ) = 1 h ∫ l ( i ) K ( d m ( s , x ) h ) d s . \begin{equation}
f_{\mathrm{origin}, i}(x) = \frac{1}{h} \int_{\mathscr{l}^{(i)}} K\left( \frac{\mathrm{dm}(s, x)}{h} \right) \mathrm{d}s.
\end{equation} f origin , i ( x ) = h 1 ∫ l ( i ) K ( h dm ( s , x ) ) d s .
联合上述分析,得到受网络约束的影响衰减函数:
f i ( x ) = ∏ v ∈ V m ( s , x ) , s ∈ l ( i ) ( ω ( e v ) ∑ e ∈ o u t ( v ) ω ( e ) ) f o r i g i n , i ( x ) . \begin{equation}
f_i(x) = \prod_{v \in \mathrm{Vm}(s, x), s \in \mathscr{l}^{(i)}} \left( \frac{\omega(e_v)}{\sum\limits_{e \in \mathrm{out}(v)} \omega(e)} \right) f_{\mathrm{origin}, i}(x).
\end{equation} f i ( x ) = v ∈ Vm ( s , x ) , s ∈ l ( i ) ∏ e ∈ out ( v ) ∑ ω ( e ) ω ( e v ) f origin , i ( x ) .
最后,基于全部的样本,我们可以给出 N \mathcal{N} N 上的线特征样本密度估计函数:
f ( x ) = 1 n ∑ i = 1 n f i ( x ) . \begin{equation}
f(x) = \frac{1}{n} \sum\limits_{i = 1}^{n} f_i(x).
\end{equation} f ( x ) = n 1 i = 1 ∑ n f i ( x ) .
最后,我们指出本节所述仅是一种推广的思想,对于实际问题需要进行具体分析,调整式子,从而给出更优的解答. 例如,在前文所述出租车载客点分布的问题中,我们有时需要分别讨论道路两侧的载客点. 这就需要我们在求平均值时只考虑“同向”线性事件的影响,而忽略“反向”线性事件的影响.