本發明涉及基因表達信息挖掘領域,具體地說是一種基于自適應權重的微陣列缺失值估計方法。
背景技術:
微陣列技術可以在不同實驗條件下同時檢測成千上萬個基因表達水平值,研究者根據微陣列提供的數據并結合生物學知識可以獲取一些有價值的潛在生物信息。研究微陣列數據大量采用了機器學習算法,其中主要包括分類分析和聚類分析等。然而在微陣列技術應用過程中的各個實驗步驟都可能存在人為或者非人為的因素:例如微陣列芯片的使用步驟不規范,微陣列芯片的表面有劃痕或者灰塵,或者在實驗過程中存在某些系統性錯誤,這些問題都可能造成微陣列芯片的基因表達數據存在不同程度的缺失值,從而導致很多機器學習算法無法實施,因此微陣列數據中缺失值的處理是十分必要的。
處理缺失值的一種簡單方法是重復試驗,但是由于微陣列芯片價格昂貴,并且重復試驗后微陣列數據可能仍然存在缺失值,所以這種方法一般不推薦使用。另外一些簡單的算法,例如直接將所有包含缺失值的整個基因表達數據剔除,或者利用基因觀測值的平均值或零值填充該基因的缺失值,但是這些算法的缺點顯而易見,因為直接刪除整個不完整基因可能會造成大量有價值的信息丟失,如果利用基因觀測值的平均值或者零值填充該基因的缺失值,則沒有充分利用數據結構所包含的信息。為了解決以上這些問題一些更復雜的缺失值填補算法相繼提出,其中基于最近鄰概念的缺失值填補算法的研究較為廣泛。KNNimpute是較早提出的基于最近鄰概念的缺失值填補算法,并且實驗結果表明KNNimpute優于行平均值填補算法以及基于奇異值分解的填補算法SVDimpute。在KNNimpute的基礎上SKNNimpute提出,該算法有選擇性的將包含最少量丟失值的基因作為目標基因并填充缺失值,并且該填充后的基因被應用到其它目標基因缺失值的填補過程中。LSimpute算法在基于最近鄰概念的基礎上結合了一元線性回歸模型,相對于KNNimpute算法的精度有所提升,在LSimpute的基礎上結合多元線性回歸模型的填補算法LLSimpute提出,在LLSimpute的基礎上一種迭代的局部最小二乘填補算法ILLSimpute提出,同樣基于LLSimpute一種連續的局部最小二乘填補算法SLLSimpute提出。另外一些不是基于最近鄰概念的填補算法但是應用同樣廣泛的有基于貝葉斯定理的缺失值填補算法貝葉斯主成分分析(BPCAimpute),以及基于支持向量機的缺失值填補算法支持向量回歸(SVRimpute)。
但是基于最近鄰概念的算法都存在一些弊端,這些弊端是由于最近鄰算法本身的特性所導致的。第一個弊端是最近鄰算法中的參數對于算法效果有直接的影響,并且目前沒有一種可以推理的方法來判定最優的參數。第二個弊端是以上這些算法都沒有考慮到缺失值的預測值可能產生嚴重的偏置,原因主要是因為數據集中各樣本之間關聯性是不同的。基于最近鄰概念的填補算法也稱為熱卡填補算法,熱卡填補算法的一個重要特點是缺失值是利用同一數據集中的其它觀測數據并采用某種方式填充的,基于最近鄰概念的缺失值填充算法都是利用與缺失值所在屬性中的其它觀測數據填充的,因此這些算法的缺失值填充模型是相同的,但是不同的算法的填充模型參數是各不相同的,也就是說多元線性回歸模型容易導致過擬合問題。
技術實現要素:
本發明是為了解決上述現有技術存在的不足之處,提出一種基于自適應權重的微陣列缺失值估計方法,以期能有效挖掘微陣列數據中的數據結構關系,在避免人工干預的前提下自動預測微陣列數據中的缺失值,從而提高估計的準確性。
本發明為解決技術問題采用如下技術方案:
本發明一種基于自適應權重的微陣列缺失值估計方法,是應用于由n個基因組成的微陣列數據集中,所述微陣列數據集記為G={g1,g2,…,gi,…gn};gi表示第i個基因;1≤i≤n;并有:表示第i個基因在第j個實驗條件下的表達數據,1≤j≤m;由n個基因在第j個實驗條件下的表達數據組成第j個樣本,記為sj;其特點是,所述微陣列缺失值填補估計方法是按照如下步驟進行:
步驟1、定義循環次數為c,并初始化c=1
步驟2、選取第c次循環下的微陣列數據集G(c)中所有具有缺失值的基因,并構成第c次循環下的不完整基因集F(c),并將剩下的沒有缺失值的基因構成第c次循環下的完整基因集H(c);
步驟3、選擇所述第c次循環下的不完整基因集F(c)中丟失率最小的不完整基因作為目標基因若存在多個不完整基因的最小丟失率相同,則隨機選取任意一個最小丟失率的不完整基因作為目標基因
步驟4、從所述第c次循環下的微陣列數據集G(c)中找出所述目標基因的所有相似基因,構成相似基因集表示所述目標基因的第v個相似基因;1≤v≤V;
步驟5、計算第c次循環下的第v個相似基因對于目標基因的相似度從而獲得所有相似基因對于目標基因的相似度
步驟6、自適應確定第v個相似基因的權重并構建加權回歸模型用于填補目標基因中的所有缺失值;
步驟7、將填補后的目標基因加入所述完整基因集H(c)中,從而更新所述第c次循環下的完整基因集H(c),得到第c+1次循環下的完整基因集H(c+1);
步驟8、將所述目標基因從所述第c次循環下的不完整基因集F(c)中刪除,從而更新所述第c次循環下的不完整基因集F(c),得到第c+1次循環下的不完整基因集F(c+1);
步驟9、判斷所述不完整基因集F(c+1)中是否存在具有缺失值的基因,若存在,則將c+1賦值給c后,再返回步驟3執行;否則,表示缺失值填補完成。
本發明所述的微陣列缺失值估計方法的特點也在于,
所述步驟3的丟失率為具有缺失值的基因中所有缺失表達數據的總個數與樣本總個數m之比。
所述步驟4中的相似基因集G′(c)是按如下步驟進行:
步驟4.1、在所述第c次循環下的微陣列數據集G(c)中尋找滿足式(1)所有基因,并構成第c次循環下的包含有K(c)個基因的初步篩選基因集:
式(1)中,表示第c次循環下的目標基因的缺失值位置,表示第c次循環下的微陣列數據集G(c)中第i個基因gi的缺失值位置;
步驟4.2、在所述包含有K(c)個基因的初步篩選基因集中尋找滿足式(2)的所有基因,并構成所述相似基因集G′(c):
式(2)中,表示所述第c次循環下的初步篩選基因集中任意第k個基因gk的缺失率。
所述步驟5中的相似度wv是按如下步驟獲得:
步驟5.1、利用式(3)計算第v個相似基因與目標基因之間的相似性距離
式(3)中,表示所述第v個相似基因中所有未缺失值的總個數,表示所述目標基因中所有未缺失值的總個數,表示所述第c次循環下的目標基因的未缺失值位置,表示所述第v個相似基因的未缺失值位置,表示所述第c次循環下的目標基因在第j個實驗條件下的表達數據,表示所述第v個相似基因在第j個實驗條件下的表達數據;
步驟5.2、利用式(4)對相似性距離進行尺度伸縮處理,得到標準化相似性距離wv:
式(4)中,表示第c次循環下所有相似基因與目標基因之間最小的相似性距離;σ是標準差,取值范圍為[0,1]。
所述步驟6中的加權回歸模型是按如下步驟構建:
步驟6.1、通過最小化式(5)的值以獲得第v個相似基因的權重向量從而獲得所有相似基因的權重向量作為回歸系數向量
式(4)中,表示所述第c次循環下的目標基因的所有未缺失值組成的向量,表示所述第v個相似基因的所有未缺失值組成的向量;λ表示回歸系數向量β的二范數懲罰因子,并有:
式(6)中,A表示I表示對角元素全為1的對角矩陣;W表示由組成的對角矩陣;[*]+表示矩陣*的偽逆矩陣;
步驟6.2、利用式(7)計算所述目標基因的缺失值的估計值
式(9)中,表示與所述目標基因缺失值所對應的第v個相似基因中表達數據所組成的向量。
與已有技術相比,本發明有益效果體現在:
1、本發明提出基于自適應權重的微陣列缺失值估計方法,該算法始終選擇當前丟失率最小的不完整基因作為目標基因,目標基因選定之后,在同一數據集中尋找所有完整的基因或者不完整但是滿足設定條件的基因作為相似基因,而不需要通過某種相似性度量標準來篩選相似基因,因此該缺失值填補方法不需要手動調節參數,從而方便了研究和使用。
2、本發明在目標基因和所有相似基因選定之后,通過加權的多元線性回歸模型并結合2范數正則化計算出相應的回歸系數作為填充模型參數并計算得到缺失值的估計值,從而避免了多元線性回歸模型所產生的過擬合問題,提高了缺失值估計精度。
附圖說明
圖1是本發明方法流程圖。
具體實施方式
本實施例中,一種基于自適應權重的微陣列缺失值估計方法,是應用于由n個基因組成的微陣列數據集中,所述微陣列數據集記為G={g1,g2,…,gi,…gn};gi表示第i個基因;1≤i≤n;并有:表示第i個基因在第j個實驗條件下的表達數據,1≤j≤m;由n個基因在第j個實驗條件下的表達數據組成第j個樣本,記為sj;具體的說,如圖1所示,該微陣列缺失值填補估計方法是按照如下步驟進行:
步驟1、定義循環次數為c,并初始化c=1
步驟2、選取第c次循環下的微陣列數據集G(c)中所有具有缺失值的基因,并構成第c次循環下的不完整基因集F(c),并將剩下的沒有缺失值的基因構成第c次循環下的完整基因集H(c);
步驟3、選擇所述第c次循環下的不完整基因集F(c)中丟失率最小的不完整基因作為目標基因該目標基因的缺失值估計完成之后可以用于后續其它目標基因的缺失值估計;若存在多個不完整基因的最小丟失率相同,則隨機選取任意一個最小丟失率的不完整基因作為目標基因
步驟4、從所述第c次循環下微陣列數據集G(c)中找出所述目標基因的所有相似基因,構成相似基因集表示所述目標基因的第v個相似基因;1≤v≤V;相似基因的數量由算法自動確定,無需人工干預。
步驟4.1、在所述第c次循環下的微陣列數據集G(c)中尋找滿足式(1)所有基因,并構成第c次循環下的包含有K(c)個基因的初步篩選基因集,經過該步驟得到的基因滿足與目標基因缺失值所在相同樣本上不存在缺失值:
式(1)中,表示第c次循環下的目標基因的缺失值位置,表示第c次循環下的微陣列數據集G(c)中第i個基因gi的缺失值位置;
步驟4.2、在所述包含有K(c)個基因的初步篩選基因集中尋找滿足式(2)的所有基因,并構成所述相似基因集G′(c):
式(2)中,表示所述第c次循環下的初步篩選基因集中任意第k個基因gk的缺失率。
步驟5、計算第c次循環下的第v個相似基因對于目標基因的相似度從而獲得所有相似基因對于目標基因的相似度
步驟5.1、利用式(3)計算第v個相似基因與目標基因之間的相似性距離
式(3)中,表示所述第v個相似基因中所有未缺失值的總個數,表示所述目標基因中所有未缺失值的總個數,這兩個數值之比為了自適應調整相似基因與目標基因之間的相似性,表示所述第c次循環下的目標基因的未缺失值位置,表示所述第v個相似基因的未缺失值位置,表示所述第c次循環下的目標基因在第j個實驗條件下的表達數據,表示所述第v個相似基因在第j個實驗條件下的表達數據;
步驟5.2、利用式(4)對相似性距離進行尺度伸縮處理,以適應后續的多元線性回歸模型的計算,得到標準化相似性距離wv:
式(4)中,表示第c次循環下所有相似基因與目標基因之間最小的相似性距離,目的是為了對相似基因的權重系數進行標準化;σ是標準差,取值范圍為[0,1]。
步驟6、自適應確定第v個相似基因的權重并構建加權回歸模型用于填補目標基因中的所有缺失值;
步驟6.1、通過最小化式(5)的值以獲得第v個相似基因的權重向量從而獲得所有相似基因的權重向量作為回歸系數向量
式(4)中,表示所述第c次循環下的目標基因的所有未缺失值組成的向量,表示所述第v個相似基因的所有未缺失值組成的向量;λ表示回歸系數向量β的二范數懲罰因子,主要的作用是防止多元線性回歸模型計算結果產生過擬合的現象,并有:
式(6)中,A表示I表示對角元素全為1的對角矩陣;W表示由組成的對角矩陣;[*]+表示矩陣*的偽逆矩陣;
步驟6.2、利用式(7)計算所述目標基因的缺失值的估計值
式(9)中,表示與所述目標基因缺失值所對應的第v個相似基因中表達數據所組成的向量。
步驟7、將填補后的目標基因加入所述完整基因集H(c)中,從而更新所述第c次循環下的完整基因集H(c),得到第c+1次循環下的完整基因集H(c+1);
步驟8、將所述目標基因從所述第c次循環下的不完整基因集F(c)中刪除,從而更新所述第c次循環下的不完整基因集F(c),得到第c+1次循環下的不完整基因集F(c+1);
步驟9、判斷所述不完整基因集F(c+1)中是否存在具有缺失值的基因,若存在,則將c+1賦值給c后,再返回步驟3執行;否則,表示缺失值填補完成,并且返回一個完整的微陣列數據集。