关注索信达
每天打卡阅读
更快走进金融人工智能世界
━━━━━━
我们是索信达集团旗下的金融人工智能实验室团队,微信公众号(datamargin)将不定期推送原创AI科学文章。我们的作品都是由实战经验丰富的AI科学技术人员或资深顾问精心准备,志在分享结合实际业务的理论应用和心得体会。
文 | 索 信 达 Josie He
引言
高维数据集常见于银行业,如何挖掘其中更多的信息是数据分析师最关注的问题。传统的无监督模型比如Kmeans 聚类,在低维数据中表现得很好,却无法在高维数据中大施拳脚。本文将介绍学术界最新提出的稀疏潜在变量模型来解决特征变量的聚类问题,涉及模型介绍,算法,数学证明。同时在实证分析中与Kmeans 聚类对比,体现该潜在变量模型的优势。
一、数据背景 & 解决问题
从金融领域的逐笔交易数据到生物基因序列,喷涌而出的互联网时代提供了海量的高维数据。各大银行的数据信息库在每天更新,数据量级也在不断提升。数据分析行业面临着巨大的挑战。经典的统计方法对维度爆炸的数据并不适用。高维数据中包含着冗余信息,这对于机器学习模型的训练并没有帮助。因此我们需要去除多余的信息。高维数据也会变得相应稀疏起来。对于稀疏的高维数据集,选择合适的特征变量是特征工程中重要的一环。在一般的数据预处理中,首先会看数据集的皮尔森相关矩阵,如果存在多重共线性,则会去除一些变量。之后使用各种各样的变量选择方法,比如随机森林,逻辑回归。通过设定合适的评判指标来挑选出前20或者50个变量。可惜在稀疏的高维数据中,降维是首先要解决的问题。如果我们可以对众多的特征变量进行聚类,充分挖掘数据里的信息,将会大大减少后面模型的训练时间。以银行业的数据为例,每个客户对应着众多的特征变量,比如年龄,账户余额,购买的基金数目。如果我们想解决特征变量的聚类问题,传统的无监督模型计算量巨大且耗时。如果加入一个新的潜变量来构建稀疏潜在变量模型,将会得到更合适的高维数据聚类结果,从而构建更合适的特征工程。该方法非常适用于银行的数据集。二、稀疏潜在变量模型
稀疏潜在变量模型是康奈尔大学的Yang Ning教授提出来用来解决高维数据聚类的方法。该模型的精髓在于将原来的p个特征变量中聚成K个变量。具体思想是通过找(1)纯变量指数集I (2)矩阵A中的纯变量子矩阵来寻找K类。2.1 模型介绍
通常而言,有p个特征变量的数据集W,其数据结构以如下方式展现。以1000个样本,100个特征向量为例。
比如观察到n个独立同分布的样本:
那么用公式表达稀疏潜在变量模型(Sparse Latent Factor Model):
X=AZ+E
对模型中涉及的标记的描述:X是p维的数据变量。A是一个p*K行稀疏的矩阵,其中的每行元素的绝对值相加不大于1。Z是K维的潜在变量,E是p维噪音变量,Z与E独立。p是给定数据中的维数,也就是特征变量的个数,是已知的。K是未知的聚类数,需要提前设定。
首先我们来看如何定义第j个特征变量属于哪一类的问题。值得一提的是,矩阵A在这起了重要的作用。如果矩阵A 中第j行,第k列的元素不为0,则称第j个特征变量属于第k类。从两种极端的情况来详细解释一下。在j固定时,一种情况是,第j行所有的k列都不为0,此时第j个特征变量属于K个类。类与类之间会存在重叠,即共享同一个元素。第二种情况是,对于所有的k, 第j行所有的k列都取0,此时第j个特征变量不属于任何一个类。大多数情况下,第j个变量可能属于两个或两个以上的类,产生重叠的聚类。
所以说,矩阵A的存在决定了这个模型聚类的质量。如果矩阵A存在且唯一,K个聚类会很好得到。本文的稀疏潜变量模型是通过数据集X 的协方差矩阵找到纯变量指数集I,再得到非纯变量指数集J,从而估计出矩阵A。最后由矩阵A中的元素来决定K个聚类。
那么大家又会问,什么是纯变量呢?这里要敲黑板。首先来定义第k类,Gk={j 属于{1,2..p}, j满足:在A中的第j行第k列元素不为0}。一个纯变量Xj 只匹配一个潜在因素Zk。在建立重叠群时纯变量是非常重要的。因为群Gk是由Zk决定的,但Zk观测不到。所以纯变量Xj是对Zk的近似观察。可观察到的Xj充当了函数Zk的作用, 它固定了Gk。
2.2 模型的可识别性
接下来将会从学术的角度来判断矩阵A的存在合理性,有兴趣的小伙伴可以详细研究一下。也可以直接跳过看下一节的纯变量定义。
矩阵A是整个模型的灵魂所在,如果可识别A,那么整个模型也将唯一。对A的一些限制条件,主要是有两个部分:
(1) 在矩阵A 的元素中,对每一列a, 至少存在两行,使得对应的元素的绝对值为1。举例子,在第一列中,第一行和第四行的两个元素的绝对值为1。
(2) 对于模型中Z的协方差矩阵,有如下假设。
先定义m(C)=min(min {Cjj-Ckk)-|Cjk|) (j不等于k),当m(C)大于0时,可以推导出,对于所有的j不等于k,有|Zj|不等于|Zk|。
满足了上述两个条件后, 矩阵A就可以用来构建模型。但是我们还得解决一些问题。在给定p维数据集的协方差矩阵的情况下:
(1) 怎么区分纯变量指数集I 和非纯变量指数集J?
(2) 怎么发现纯变量指数集I 的分割?不同的分割就对应着不同的类。
(3) 怎么决定矩阵A中对应的子矩阵。
2.3 纯变量和非纯变量
纯变量指数集和非纯变量指数集是互斥的,因此只要找到纯变量指数集就可以解决问题。
介绍了那么多枯燥的定义后,我们用一个例子来看看模型到底是怎么找到纯变量指数集I的。已知X的协方差矩阵。
详细的计算步骤如下:
当矩阵A被估计完成之后,我们可以从A中直接得到分割。
I分为I1和I2,I1={1,2,3}, I2={4,5} 。这意味着原来的7个特征变量被分为2类。前三个特征变量归为一类,第四第五的特征变量归为第二类。剩下的两个是非纯变量,属于任意一类。
三、算法介绍
基于潜在模型的重叠聚类算法( Latent model-based overlapping clustering algorithm)简称LOVE算法。
简单的步骤如下:
(1) 通过数据集X的协方差来估计纯变量集I。
(2)估计矩阵A中对应I 的子矩阵AI。
(3)估计矩阵A中对应非纯变量集J的子矩阵AJ。
(4)得到矩阵A的元素后,通过聚类Gk的原始定义来给特征向量聚类。
四、场景分析
1.RNA数据集以生物基因RNA数据为样本,共有285个不同癌症的患者,总共聚为12类。可发现编号906和328的共享同一个RNA基因。
类似地,如果应用到含有285个特征变量的金融数据中,可以聚为12类,充分利用了原始高维数据中的信息。2.模拟数据得到估计的矩阵A,并且定义A的平均估计误差用L1范式或者L2范式,结果如下:
3. 方法对比在群没有重叠的情况下,用模拟数据来对比LOVE算法和Kmeans算法,评判指标为sensitivity(SN)和specificity(SP),如下:
可以看到相对于Kmeans算法,LOVE算法的各项指标效果都较好。由此可以发现,稀疏潜在变量模型的聚类效果比一般的聚类方法好。
参考资料:
1. Sparse Latent Factor Models with Pure Variables for Overlapping Clustering, Xin Bing, Florentina Bunea, Yang Ning, Marten Wegkamp, The Annals of Statistics, 2019.
2. High-Dimensional Inference for Cluster-Based Graphical Models, Carson Eisenach, Florentina Bunea, Yang Ning, Claudiu Dinicu, 2018
3. A General Theory of Hypothesis Tests and Confidence Regions for Sparse High Dimensional Models, Yang Ning, Han Liu, The Annals of Statistics, 2017
理论支持:
1. 准纯变量
2. 关于I 的估计的理论支持
3.关于A的估计的理论支持