基于贝叶斯高斯CP分解在医疗数据插补中的应用
2020-08-13陈雁声
陈雁声
摘要:时间序列分析是在诸如气象预报,交通流量预测等领域中的是常用的方法手段之一,但是在这些领域数据中经常会发生观测数据缺失的情况。本文使用了一种基于概率矩阵分解的改进方法,医疗数据进行插补,并评估了该方法对于时间序列缺失数据插补的准确度。
关键词:时间序列 数据插补 概率矩阵分解
1 引言
目前传统的数据插补,如基于统计学的插补方法,在对于符合正态分布的随机缺失类型的数据集进行处理时较为常用。但这类方法会造成插补后的数据集的整体方差变小,造成数据大量的同质化,样本分布扭曲,不适用于大范围的缺失情况。此外基于机器学习的插补方法,如极大似然补差(EM)和K邻近插补(KNN),这类方法有着更高的插补精度,但这类方法应在时间序列插补时还无法考虑到相邻数据间的时序信息。
2 贝叶斯高斯CP分解
贝叶斯高斯CP分解(BGCP)是在由Salakhutdinov和Mnih于2008 年提出的贝叶斯矩阵分解(BMF)的基础上,改进而来的算法。该算法与一般的矩阵分解算法不同,是从贝叶斯理论而不是传统概率学角度出发;不再把系统参数当作一个固定值估计,而是作为一个服从某种分布的随机变量,转而估计该分布的参数。并且将BMF算法中的观测数据矩阵的标准差也视为未知量,并假设标准差服从于弹性共轭Gamma分布以提高模型的鲁棒性。
2.1模型简介
2.2吉布斯采样
接下来引入Gibbs采样算法,以对提出的上述模型进行迭代。Gibbs采样的想法是在每次迭代中顺序更新所有变量。对于一个变量,在所有其他变量都固定在当前值下,从该布中采样进行采样。Gibbs采样算法的关键是为所有变量定义这种分布。这些条件分布通常称为完全条件。
2.2.1对因子矩阵U(k)进行采样
本质上,对因子矩阵采样是为了获得观测值xi (i∈Ω)与超参数μ(k)及Λ(k)(k=1,2,3)之间的依赖关系。
给定部分观测到的张量18689.jpg,我们首先定义一个标志张量B,该张量B与张量X大小相同,且对于B中任意元素bi,如果i∈Ω则bi等1,否则bi取1。
对于矩阵U(1),可以由对所有的18695.jpg进行以此采样获得。
对于三阶张量还可以用相似的推导写出ui2(2)和ui3(3)的后验概率。
2.3插值算法
上一章推导了三阶张量的吉布斯采样中所有变量的全部条件。在吉布斯采样算法达到平稳状态之后,可以从蒙特卡洛近似估计所有缺失值。
3 数据实验
3.1实验设置
3.1.1实验数据集
本次使用的实验室数据集为实验个体个体的白细胞变化趨势。样本分为死亡样本和存活样本,分别为121例和106例。每个样本是由以每两小时为间隔所测量的个体体内白细胞的数量所组成的长度为7的时间序列。数据集的数据缺失率为45%。
3.1.2实验方法
由于数据集是不完整的,直接计算数据插补的准确率是不可能的。本人使用不同的数据插补方法对该数据集进行插补,再使用这些经过数据插补的数据集训练同一个分类器。最终,数据插补的准确率可以由分类器对于不同数据集的分类准确率间接得出。本实验使用了KNN数据插补法、SVD插补法、矩阵分解插补法这三个数据插补方法与基于BGCP的数据插补法进行比较。采用的分类器为基于线性核(Linear)和基于径向基核(Radial Basis Function)的SVM分类器、随机森林分类器和逻辑回归分类器。对于训练集的划分按样本类别比例的分层抽样,进行10次10折交叉验证。
3.2对比实验
本文的BGCP算法建模是在Matlab下实现,其CP秩设置为10,输入数据的形式为大小为227×7的二阶张量。通过对实验和统计结果的分析,得出BGCP算法在插补精度与传统的数据插补法的插补精度相比有2%的提升。
4 结论与展望
本文使用了BGCP对于医疗时序数据进行插补,实验表明其结果不弱若于传统的插补算法。理论上,该算法在3阶张量下的插补效果最优,但实验数据的表示方式为2阶张量,所以算法性能可能受到影响。此外,该算法假设数据为高斯分布,该假设在对于现实中的数据不一定成立,所以将该算法推广到不同的数据分布假设下,是今后需要开展的工作之一。
参考文献
[1]李圣瑜.调查数据缺失值的多重插补研究[D].河北经贸大学,2015.
[2]孙晓丽,郭艳,李宁,宋晓祥.基于改进RNN的多变量时间序列缺失数据填充算法[J].信息技术与网络安全,2019,38(11):47-53.
[3]骆科东.短时间序列挖掘方法研究[D].清华大学,2004.
[4]郭艳,宋晓祥,李宁,钱鹏.多变量时间序列中基于克罗内克压缩感知的缺失数据预测算法[J].电子与信息学报,2019,41(04):858-864.