陳雁聲
摘要:時間序列分析是在諸如氣象預報,交通流量預測等領域中的是常用的方法手段之一,但是在這些領域數據中經常會發生觀測數據缺失的情況。本文使用了一種基于概率矩陣分解的改進方法,醫療數據進行插補,并評估了該方法對于時間序列缺失數據插補的準確度。
關鍵詞:時間序列 數據插補 概率矩陣分解
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.