阅读材料:《融合传递熵和局部相对密度的混合多变量时间序列预测系统》。

我读到的不是一个单纯的 KELM 变体

TE-LRD-KELM 的做法可以分成两条线。一条横着看变量之间的信息流,另一条竖着看训练样本在局部空间里处于什么位置:

变量层:相位传递熵 → 有向图 → 特征排序 → 选子集
样本层:K 近邻距离 → 局部相对密度 → 加权 KELM

最后还是用 KELM 预测,但前面两层已经决定了模型看到哪些变量、又会更在意哪些样本。作者想解决的并不复杂:高维变量里有很多重复信息,训练样本里也有很多不该被同等对待的点。

传递熵:我会把它理解成“额外的预测信息”

传递熵问的是:知道 X 自己的过去以后,Y 的过去还能不能让我们更好地预测 X 的下一刻?如果可以,Y 到 X 的 TE 就会更高。

这比相关系数多了一层方向性。两个变量同步涨跌,不代表其中一个真的给另一个提供了可用于预测的增量信息;TE 试图量化的正是这部分增量。

论文没有直接在原始幅值上算 TE,而是先用 Hilbert 变换取每个变量的瞬时相位,再计算相位 TE。这样做的想法我能理解:当变量之间有领先、滞后、同步或者周期关系时,相位可能比绝对数值更敏感。

不过,只有适合谈相位的数据,才适合这么做。趋势很强、跳变很多、样本很短的序列,用 Hilbert 相位会有边界效应和解释问题。我复现时会先做去趋势和频谱检查,再比较原始 TE、相位 TE 与简单相关性,而不会默认相位 TE 一定更好。

还有一点不能忘:TE 给的是有向统计依赖,不是现实世界的因果证明。共同驱动因素、遗漏变量、采样频率和滞后阶数都可能让“信息流”看起来存在。

从 TE 矩阵到 ICI:作者没有只排相关性

论文先得到标准化的相位 TE 矩阵 S,再根据两个变量是否共享信息来源构造共引用水平矩阵 CRL,最后用 α 把它们合在一起:

M = αS + (1 - α)CRL

之后,作者在这个变量图上迭代权威值和链接值,思路和 HITS 很像。初始权威值来自“特征到目标”的信息流,收敛后的链接值反映变量在网络中受其他变量影响的程度。两者组合成独立相关性指数 ICI。

我愿意把 ICI 理解成一个更复杂的特征分数:它既看变量能给目标带来多少信息,也想扣除那种“完全靠别的变量撑起来”的重要性。这比把特征一个一个拿出来做相关性排序更有野心。

但 α、TE 的滞后阶数、显著性阈值和分箱方法都会改变这张图。它们如果是根据测试期成绩选出来的,后面的所有结果都会偏乐观。我会把这些选择放进训练期内的验证流程,并观察 ICI 排名是否在不同窗口里稳定。

LRD:作者怎样让 KELM 区别对待样本

KELM 常见的训练目标把每个样本误差都当成同等重要。本文先做归一化,再计算每个样本到第 K 个近邻的距离。局部越稀疏,距离往往越大;再通过邻域中的相对距离得到局部相对密度 LRD。

近邻距离小:样本身处比较密的区域
近邻距离大:样本更孤立,或处于稀疏区域

LRD 被写进 KELM 的加权平方误差里。这样一来,模型对某类样本的拟合压力会被放大或减小,而不是所有训练点一视同仁。

这里我最想先核对的不是公式推导,而是权重方向。若高 LRD 对应更大的误差权重,模型更重视密集、代表性较强的区域;如果取了倒数,意义就变了。论文强调“样本分布重要性”,但具体实现究竟偏向密集区域还是稀疏区域,必须从代码和消融实验里确认。

我还会拿它和几种简单做法比一比:不加权 KELM、反向 LRD、Huber 损失、基于残差的稳健权重。只有这样才能知道优势来自局部密度,而不是任意一种重加权都能带来的偶然收益。

特征选择不是只排个序

ICI 排完特征后,论文并没有直接取前 K 个,而是逐步构造嵌套子集,再用 LRD-KELM 的表现计算适应度:

fitness(F) = RMSE(F) + ξ × |F| / m

它一边看预测误差,一边惩罚特征太多。这个思路我认同,因为“分数最高”不等于“放进模型后最有用”。

文稿把从全体特征逐个删除、从空集逐个加入,分别冠以不同的前向 / 后向名称;按通常术语,它们的名字容易对不上。我复现时不会纠结叫法,只会明确记录每一步到底是在删还是在加。

更重要的是,任何特征子集的选择都应该在内层验证中做。用测试集反复挑特征,再报告这张测试集上的最好成绩,是金融时序里很常见、也很隐蔽的过拟合。

我怎样看这篇论文的实验

论文用了 Mortgage、Treasury、Stock、Air Quality-T、Air Quality-RH 五个数据集,默认以前 70% 训练、后 30% 测试,又在部分实验中用了 5 折交叉验证;指标包括 RMSE、MAE、MAPE 和 SMAPE,比较了 KELM 变体、特征选择方法、密度估计方法和不少预测模型。

我认可它至少试图回答四个问题:TE 是否有用,LRD 是否有用,特征选择是否有用,完整模型是否更稳。作者还做了噪声测试和 Friedman / Nemenyi 检验,这些都比只报一张误差表更进一步。

但时序数据里“70/30 按时间切分”和“5 折交叉验证”要怎样共存,必须说清楚。随机 K 折会把未来样本带回训练集;即便是时间 K 折,也要交代窗口是滚动还是扩展。文稿还写了“五种指标”,实际列出的却是四种,这类小问题不会推翻模型,却提醒我不能跳过原始表格和代码。

复杂度部分,我会重新算一遍

文章把部分模块概括得很轻,但朴素实现并不一定轻:样本两两距离至少要考虑 O(N²m),KNN 搜索需要额外成本,核矩阵构建和求解在样本多时也会成为瓶颈,相位 TE 还取决于变量数、滞后、分箱或密度估计器。

所以我不会仅凭一个简化复杂度式就相信它适合超大规模或实时应用。更有说服力的证据是端到端时间、内存、不同样本量下的增长曲线,以及是否用了近似近邻和高效矩阵求解。

如果我来做复现

先用时间顺序切分跑普通 KELM。
只加 TE 排序,看特征集合和误差怎么变化。
只加 LRD 权重,看它对密集区、稀疏区和异常点的影响。
再把二者合起来,并用嵌套滚动验证选 α、K、ξ 和核参数。

我还会把每个窗口的 ICI 排名、最终特征数、LRD 分布、训练时间和测试误差都保存下来。只报一次“最优特征集合”没有太大意义,知道它在市场变化后还能不能出现,才更有意义。

读完后的想法

我喜欢这篇文章把问题拆成变量和样本两个层面。很多预测研究只换网络,却默认输入变量和训练样本本来就摆对了;这篇至少试着问了一句:信息究竟从哪里来,哪些样本又更能代表当前分布?

如果沿着它继续走,我更愿意研究动态 TE 图、随时间更新的样本权重,以及把预测误差换成包含风险和成本的目标。金融时序真正难的不是把一个误差再压低一点,而是在变化的市场里知道哪些信息还值得信。