劉靜博,王 蓓,顧吉峰
(華東理工大學 信息科學與工程學院 化工過程先進控制和優化技術教育部重點實驗室,上海 200237)
迄今為止,睡眠分期[1]的主要研究在模式識別算法上,其中主要集中在有監督學習算法,使用較多有神經網絡[2-4]、隨機森林[5,6]、隱馬爾可夫模型[7]、支持向量機等,少量涉及無監督學習算法如K均值聚類[8,9]等。由于睡眠數據自身類不平衡的特點,導致睡眠分期的分類效果欠佳,因此如何有效地生成睡眠數據顯得尤為重要。
目前,針對睡眠數據的生成算法研究主要集中在數據的過采樣。然而,由于睡眠數據屬于生物電信號,具有非線性和隨機性,傳統的過采樣會引起數據重合以及數據偏移的問題。針對上述問題,本文提出一種基于改進的iBorder-SMOTE的數據生成算法對少數類樣本進行擴充,避免由于類不平衡導致模型訓練不充分的現象,并選用了孿生支持向量機作為分類方法,實現睡眠分期的自動判別。
整夜睡眠是一個復雜且變化的生理過程,期間常常伴隨著眼動、肌肉活動、磨牙甚至夢游等生理活動。醫學領域的專家通過多導睡眠圖記錄得到的多通道生物電信號,包括腦電信號、肌電信號、眼電信號、脈搏血氧飽和度測定和呼吸等記錄來判讀睡眠的階段。1968年,Rechtschaffen A和Kales A制定了R&K睡眠分期準則[10]。R&K準則將睡眠分為3個基本階段,清醒期(Wake, W)、快速眼動期(rapid eye movement,REM)和非快速眼動期(non-rapid eye movement,NREM),其中非快速眼動期又被細分為4個時期,包括睡眠I期(S1)、睡眠II期(S2)、睡眠III期(S3)和睡眠IV期(S4)。2007年,美國醫學學會將S3和S4期合并為一個慢波睡眠期(slow-wave sleep,SS)。
自動睡眠分期的研究主要是基于睡眠腦電信號,研究過程是通過對睡眠腦電信號的預處理,提取與睡眠相關的特征,最后將這些特征送入到分類器中進行分類。然而,由于不同睡眠分期的樣本數量不平衡,會引起模型訓練不足,進而影響少數類樣本的分類準確率。文獻[11]采用經驗模式分解對原始信號進行分解,提取非線性信號的均值、方差、偏度和峰度作為特征向量,采用決策樹作為Adaboost算法的弱分類器進行分類,平均準確率為90%,但少數類S1的分類準確度僅為39%。文獻[12]提出了一種基于邏輯平穩過渡自回歸模型的睡眠分期方法,采用邏輯平穩自回歸模型提取腦電信號特征,并用支持向量機進行分類,平均準確率為94%,其中少數類S1的分類準確率僅為23%。此外,少數研究工作者進行了數據生成方面的研究,文獻[13]采用改進的合成少數過采樣算法對原始腦電數據進行重構并用于預訓練。文獻[14]通過生成對抗網絡對原始腦電信號進行生成,來達到平衡數據的目的。
如何避免數據不平衡對分類器的影響是自動睡眠分期中有待深入研究的問題。結合不同睡眠分期的特征樣本的分布特點,本文提出了一種基于改進的iBorder-SMOTE的數據生成算法。該算法通過多簇最短距離來選取最優的數據生成空間,同時引入中心異變擾動方法消除數據偏移帶來的影響,來確保數據生成對提高睡眠分期分類精度的有效性。
邊界合成少數類過采樣技術(Border-SMOTE)[15]是在SMOTE[16]基礎上發展起來的一種過采樣方法,其基本思想如圖1所示。與SMOTE不同點在于,Border-SMOTE只對少數類的邊界樣本進行過采樣,依據每個少數類樣本周圍數據的分類情況計算其k近鄰,將原始數據分為Danger樣本、Safe樣本和Noise樣本,其中少數類樣本的k近鄰全部或大部分為少數類樣本時,該點稱為Safe樣本點,當少數類樣本的k近鄰多數類別個數與少數類別樣本大于或者相當時,該樣本為Danger樣本,也稱為邊界樣本,其余稱為Noise樣本。針對Danger樣本周圍多數類與少數類比較接近,Border-SMOTE算法對此區域進行樣本生成,生成算法同SMOTE算法,通過在少數樣本A和Abour之間進行線性插值生成新的樣本Anew。

圖1 Border-SMOTE算法
Border-SMOTE算法針對少數類樣本k近鄰的類別所占比例對樣本區域進行劃分,將數據樣本分為不同類別,針對危險樣本進行數據生成,從而解決了基礎SMOTE算法生成數據時,合成數據與多數類數據部分重疊的問題。
從數據生成的方式上來看,Border-SMOTE仍存在與SMOTE相同的問題:忽略了樣本全局分布情況和數據生成迭代隨機。為了解決上述兩個問題,本文對Border-SMOTE算法提出了相應的改進,并分別在2.2.1節和2.2.2節中進行具體描述。
2.2.1 中心多簇最短路徑
密度峰值聚類算法[17]是一種簡單有效的聚類算法。它將任意維度空間的數據映射在二維空間中,在二維空間中構建數據之間的層次關系,從而可以非常容易地從中挑選出那些密度高、且與其它密度更高區域相隔較遠的數據點,這些點被稱為密度峰值點,用來作為聚類中心,然后將那些密度值較低的點歸類于聚類中心進而完成聚類[18]。
首先,利用密度峰值聚類算法確定i個聚類中心,記作ωi。由此,原始樣本被劃分為了i個聚類區域,進而對每個區域計算當前樣本的不平衡度。區域平衡度半徑定義為當前聚類類別區域的聚類中心到該聚類類別中距離最遠的點。不平衡度imb的定義如式(1)
(1)
其中,Nm為當前聚類類別區域平衡度半徑內劃分的總體多數類樣本個數,Nl為當前聚類類別區域平衡度半徑內少數類樣本個數,β是比例系數,用來限定區域不平衡的容忍程度。當β較大時,原本的噪聲點可能會被劃分危險區域。首先計算整體樣本的不平衡度imb作為分區的基準,然后對于每個聚類中心ωi首先計算區域不平衡半徑,并對每個領域分別計算每個領域的imbi,最終確定k個聚類中心,即該k個聚類中心所代表的聚類類別區域為危險區,具有較高的不平衡度,需要進行數據生成任務。同時,生成m個噪聲點區域,噪聲點區域內可能僅有個別稀疏點,因此直接剔除即可,剩余的為安全點區域。安全點和噪聲點滿足式(2)
(2)
假設所有少數類樣本點總數為n,維度為m維,對于這n個樣本點si和k個危險區聚類中心點sj,分別計算其幾何中心σsn和聚類分布中心σsk,即把所有點相加取均值。其中σsn如式(3)所示
(3)
對于一個聚類中心ωi,分別計算ωi與σsn、σsk的直線表達式lni和lki。其中lni如式(4)所示
(4)
其中,wi為第i維變量的參數,αi為聚類中心ωi與σsn直線系數。
對于ωi領域內的樣本點P,P的多簇中心最短距離為dpσ,根據dpσ選取距離較近的點為pbest,dpσ公式如下
(5)
其中,μ為區間[0,1]的隨機數,也可人為設定固定值。當μ取0時,表示聚類中心ωi領域內點pbest到聚類中心ωi與聚類分布中心σsk連線的最短路徑;當μ取1時,表示表示聚類中心ωi領域內點pbest到聚類中心ωi與樣本幾何中心σsn連線的最短路徑。dpσ結合了少數類總體樣本的幾何分布情況與待生成樣本聚類中心的空間分布情況。
在實際計算過程中,多簇中心最短路徑式(5)過于繁瑣,因此利用空間投影法計算點到直線的距離。假設當前聚類類別聚類中心點為ω,該聚類類別中某一點為p,樣本幾何中心為σsn,聚類分布中心σsk,維度均為m維,多簇中心最短路徑式(5)可轉變為如下式

(6)
圖2為二維數據多簇最短路徑的示意圖,圖中的黑色點表示某一聚類中心的數據分布,黑色粗直線表示聚類中心與幾何中心連線,灰色細直線表示聚類中心與聚類分布中心的連線。根據密度聚類的特性,聚類中心附近的數據點更密集,以黑色粗直線為例,兩條黑色粗虛線圍成的直線區域即表示到該直線距離最短的點。通過該領域,可以將大部分的密集點與靠近黑色粗直線的點選中,結合黑色粗虛線對與灰色細虛線對的劃分區域,形成一個最優樣本區域。該區域的數據點最能代表該聚類的分布。假設μ取0.5,則該區域變成了菱形或四邊形。該區域考慮到了聚類中心分布情況與樣本總體的分布情況,并且根據樣本分布情況,區域能夠進行自適應調整。

圖2 多簇最短路徑
為了解決SMOTE算法生產數據的盲從性,根據多簇中心最短距離,從小到大選取多個pbest值構成集合A{pbest1,pbest2,pbest3,…}, 對集合內的每個pbesti運用SMOTE算法,如式(7)
pnewi=pbesti+random(0,1)(pbest(i+1)-pbesti)
(7)
2.2.2 中心異變擾動
由中心多簇最短路徑確定的樣本點,結合了當前少數類聚簇樣本的幾何信息與空間分布信息,避免了在數據生成時的盲從性,但對于特殊類聚簇樣本,聚類中心在迭代過程中靠近幾何中心,導致總體數據樣本偏移。圖3為二維數據樣本偏移示意圖位。從圖3中可以看到,原始樣本在數據生成時,整體數據樣本密度在往右下方偏移,從而導致左上方樣本點數量與新樣本的偏差增大。

圖3 二維數據樣本偏移
為了解決這個問題,為算法引入了中心異變擾動。具體操作如下:
(1)生成新樣本后,峰值密度算法計算所有樣本距離聚類中心的密度值;
(2)定義參數η,將密度值小于η的領域,確定為稀疏領域,將稀疏領域內的點記作集合B{b1,b2,…},B集合樣本點總數為n;
(3)根據聚類中心ω計算中心異變擾動點,公式如下
(8)
由式(8)可以看到,當稀疏領域的樣本點達到設定的臨界值時,以聚類中心ω為中心,向稀疏區域樣本點進行隨機樣本生成,當集合B中僅有一個元素時,該式即表示由聚類中心向離散點進行一次SMOTE算法的運算。
基于上述分析,將改進的iBorder-SMOTE算法用于處理不平衡數據,可以結合樣本的聚簇情況、空間分布與幾何分布,彌補SMOTE算法在數據生成過程中的盲從性。
針對少數類樣本,iBorder-SMOTE算法的具體實施步驟如下:
Input:不平衡數據集S,其中S+為多數類樣本,S-為少數類樣本;
Output:平衡數據集Snew,其中S+為多數類樣Snew-為少數類樣本與生成樣本總數;
(1)設置迭代終止條件,例如樣本數量、迭代次數等;
(2)利用密度峰值聚類算法找到i個聚簇類別的聚類中心ωi;
(3)計算每個簇的樣本不平衡度imbi,劃分為安全區、危險區、噪聲,剔出噪聲,其中危險區的個數為k;
(4)計算幾何中心點σsn與聚簇分布中心點σsk;
(5)計算每個區域聚類中心ωi到σsn和σsk的直線lsi和lki;
(6)計算每個危險區域Mdanger_k內每個點的多簇中心最短距離dpσ,并確定每個區域Mdanger_k的最優點集合Ai{pbest1,pbest2,pbest3,…}, 并生成新的數據樣本;
(7)針對每個危險區Mdanger_k,首先計算密度系數程度ρi,并判斷生成數據是否產生偏移,對于產生數據偏移的危險區,確定每個區域Mdanger_i的稀疏區域B{b1,b2,…}, 生成每個危險區域Mdanger_i的中心異變擾動點;
(8)是否滿足終止條件,否則進行下一輪迭代。
實驗環境:Intel(R) Core(TM) i7-7750HQ CPU@2.80 GHz,16 G內存,64位Windows10系統,算法的實現采用64位Spyder,程序語言python3.6。
本文采用PhysioBank實驗室公開的Sleep-EDF睡眠數據集,選取數據集中10名成年健康志愿者的多導睡眠圖,在整個實驗過程中實驗者均沒有食用任何藥物。腦電信號的采樣頻率為100 Hz,并按照30 s(3000個采樣點)為一段,由睡眠專家根據美國睡眠學會標準分期標準進行人工標定,分為W、REM、S1、S2和SS這5個睡眠分期類別。
本文選用單通道(Fpz-Cz)的腦電數據,對每30 s一段的腦電信號進行傅里葉變換,提取了6個頻域特征,構成特征樣本 {Rδ,Rθ,Rα,Rσ,Rβ,Rγ}, 分別表示腦電信號中的δ波(0 Hz ~4 Hz),θ波(4 Hz~8 Hz),α波(8 Hz~12 Hz),σ波(12 Hz~15 Hz),β波(15 Hz~30 Hz)和γ波(30 Hz~49.5 Hz)的能量占比[13]。
孿生支持向量機(twin support vector machine,TSVM)以廣義特征值向量機為基礎通過構造正負兩個超平面,要求一類樣本點盡量接近,另一類樣本盡量遠離。基于這個特性,TWSVM對不平衡數據集也有著較好的分類性能。因此,本文選用了非線性孿生支持向量機作為睡眠分期用的分類器,選取RBF作為支持向量機的核函數,以解決沒有先驗知識的非線性樣本函數。
為全面評估模型的性能,采用精度(Precision,Pre)、召回率(Recall,Re)和F1值(F1-score,F1)對分類性能進行評估,各標準的計算公式如下
(9)
(10)
F1=2PR×RE/(PR+RE)
(11)
其中,TP被模型預測為正的正樣本,TN被模型預測為負的負樣本,FP被模型預測為正的負樣本,FN被模型預測為負的正樣本。

從睡眠腦電數據集中,可以看出不同睡眠分期的樣本數量分布不平衡。非快速眼動期II期(S2)樣本量最多,而非快速眼動期(S1)期最少,兩者相差顯著。在整晚睡眠過程中,S1期和S2期同為淺睡眠狀態,通常從W經過S1過渡到S2。
這里將樣本數據量差異顯著又較易相互混淆的S1與S2實施分類任務,分別采用SMOTE算法和改進的iBorder-SMOTE算法,對1504條少數類S1的樣本數據進行數據生成,生成后S1的數據量為2783條,將生成的樣本全部用于訓練,其余的所有樣本進行10折交叉驗證。
表1是未進行數據生成的分類結果,表2是采用SMOTE算法進行數據生成后的分類結果,表3是采用改進的iBorder-SMOTE算法進行數據生成后的分類結果。

表1 S1和S2的分類結果(TWSVM)

表2 S1和S2的分類結果(SMOTE-TWSVM)

表3 S1和S2的分類結果(iBorder-SMOTE-TWSVM)
表1是未進行數據生成的分類結果,從中可以看到S1與S2的分類效果均不夠理想,有大量的S1樣本被錯分為S2樣本。表2和表3給出了分別采用兩種數據生成算法對S1進行數據增強后的分類結果。相比表1,利用數據生成算法能夠提高少數類S1的分類準確率,并且相比表2的SMOTE算法,表3的iBorder-SMOTE算法得到的分類性能指標Pre、Re和F1均有提升。同時,對多數類S2來說,表示分類綜合性能的F1指標也有提升,減少了S1和S2相互之間的混淆。
以睡眠腦電數據集中的所有樣本作為分析對象,分別采用SMOTE算法和iBorder-SMOTE算法對少數類S1的樣本數據進行擴充,同樣將生成的樣本全部用于訓練,其余的所有樣本進行10折交叉驗證。
表4是未進行數據生成的分類結果。從中可以看到,SW、REM、S2和SS的分類準確率均為80%左右,而少數類S1的分類準確率僅為42%,有大量S1樣本被錯分為S2。表5和表6給出了分別采用兩種數據生成算法對S1進行數據增強后,不同睡眠分期的分類結果。不同睡眠分期的分類準確率均有所提升。相對來說,iBorder-SMOTE的效果更顯著,少數類S1的精度Pre由41.95提升至了52.73,召回率Re由21.48提升至了32.78,F1值有28.41提升至40.43,同時其余睡眠分期的F1值也有所提升,驗證了算法的有效性。

表4 睡眠分期的分類結果(TWSVM)

表5 睡眠分期的分類結果(SMOTE-TWSVM)

表6 睡眠分期的分類結果(iBorder-SMOTE-TWSVM)
根據數據生成算法實施流程可知,采用本文所給出的改進型iBorder-SMOTE算法,利用了多簇中心最短路徑,在數據生成上不再具有盲從性,而是在需要生成數據的聚類類別領域內,依據數據的分布情況和密度情況,自動劃分選擇需要生成的數據點,從而使得該區域內的點具備較高的區域特性,對后續的樣本分類任務提供了有效的支持。同時,在睡眠分期判別的多分類任務中,將改進的iBorder-SMOTE算法與孿生支持向量機相結合,有效提高了少數類樣本S1的識別精度,并且其在睡眠分期判別上的性能也優于SMOTE算法,避免了模型訓練不足的問題。由于S1和S2是相鄰的兩個睡眠分期,頻域特征難免存在耦合現象,較易混淆,后續的研究工作可在此基礎上,進一步研究并提高S1和S2的分類性能。
本文針對睡眠分期判別中少數類樣本識別較低的問題,提出了一種改進的iBorder-SMOTE數據生成算法。在Border-SMOTE算法的基礎上,提出了兩點改進,即多簇中心最短距離與中心異變擾動,避免了原算法在生成數據上的盲從性。結合孿生支持向量機作為分類器,與未進行數據生成,以及SMOTE數據生成算法進行了比較。結果表明,改進的iBorder-SMOTE算法能夠有效提高睡眠分期中的少數類樣本的分類準確率,同時也提升了睡眠分的整體判別效果。由于本文僅考慮睡眠腦電信號中的頻域特征,在一定程度上會因相鄰睡眠分期間的特征耦合而影響分類精度。本文的主要研究工作,能夠為解決分類器在少數類上訓練不足的問題提供一種有效可行的數據生成算法。在此基礎上,后續可深入針對特征耦合問題開展研究來進一步提高分類精度。