胡建強,王 元
(廈門理工學院 計算機與信息工程學院,廈門 361024)
中國衛生部《健康中國2020戰略研究報告》明確指出:加強基層醫療體系建設,建設基于網絡體系的全民電子健康系統、推進預防慢性病及重大疾病,大力發展民族健康產業,投入資金總規模將達4000億.云健康監測綜合運用傳感器網絡、云計算和大數據處理等技術,可以實現多生理參數實時采集、海量數據存儲和大數據智能分析與處理,是下一代家庭健康監測的主要發展方向.
目前國內外學術界圍繞健康監測領域展開很多積極的探索,主要工作包括:美國田納西大學設計一種實時監測人體生理ECG數據云Cloud-ECG[1],保證云端數據存取的ECG數據質量.西班牙格拉納達大學采用可穿戴式胸帶傳感器監測人體的心電、心率、呼吸頻率、皮膚溫度,生理監測數據存放在個人微云(Cloudlet);心電數據采用馬拉松算法處理并以紅、綠、黃顏色警示患者身體健康狀況[2].臺灣國立臺中科技大學基于體感網 WBANs(Wireless Body Area Networks)采集人體的血壓、心率和體溫等生理數據;采用VMware搭建的微云存儲數據;采用融合粗糙集的等級評定算法[3]協同推薦信息到相關醫療群體[4].飛利浦保健算法研究中心提出一種ECG波形實時質量評估算法—ST段心肌梗死評估算法[5,6].東南大學采用織物電極采集ECG數據[7]、北京工業大學提出采用可穿戴式多參數心臟活動監測設備采集心音、心電和心沖擊圖數據,在線監測心臟活動[8];中科院提出“低成本健康海云工程”,采用無縫接入的智能醫療終端監測患者生理健康狀況;利用云計算技術實現海量電子病歷和電子健康檔案存儲[9],但未給出生理監測數據的處理算法.
云健康監測可以有效解決現有家庭健康監測系統(終端)在數據存儲容量方面的局限性,但生理監測數據仍缺乏高效、實用的智能分析算法,特別是傳統的分類算法(例如SVM,KNN,決策樹等)很難直接應用,難以滿足居民慢性病變智能預警和突發狀況救治需要.其主要原因是:生理監測數據具有時間連續性、非精確性、模糊性等特性,實際應用存在數據遺漏或缺失.例如,體溫數據相對恒定,但 24小時略有波動;動態ECG信號需采用小波分析算法對QRS復合波實時檢測和有效篩選,24小時內波動較大[10].
針對上述問題,本文提出一種基于粗糙集的慢性病變分級方法,幫助個體全面認識慢性病變風險,該方法包括以下步驟:首先,采用融合相關度和Chi-merge統計量對連續屬性離散化,提高聚類能力;然后,基于相容矩陣的屬性約簡算法去除數據冗余屬性,降低原始數據集維數;最后,基于批量和增量相結合的分類規則挖掘,確定最優分類規則集合,并基于MapReduce框架運用上述規則實現慢性病變智能分級.結合廈門市集美區病例數據驗證算法,基于自主研制的聯接廈門市“健康醫療云”的云健康監測系統Cloud-Health[11]平臺展開上述方法的有效性驗證.
離散化本質上是利用選取的斷點來對條件屬性構成的空間進行劃分,即將m維空間劃分有限個區域.為提高系統的聚類能力,增加對生理監測數據噪音的魯棒性,應該采用盡可能少的斷點來完成劃分過程.隨著屬性個數和樣本量的增加,候選斷點數將會成倍增長[9].斷點選擇對保證最小的結果斷點集合至關重要.下面給出融合相關度和Chi-merge統計量的屬性離散化的一般性方法.
定義1[12].決策表S=(U,R,V,f),U={x1,x2,···,xn}是有限的對象集合;R=C∪D是屬性集合,子集合C和D分別為條件屬性集C={c1,c2,...,cm}和決策屬性集D=g0gggggg;m為條件屬性的個數.假設決策種類的個數為r(d),f:U×R是一個函數,指定U中的每一對象x的屬性,屬性ci的值域Vci為:

定義2.設a=[a1,a2],b=[b1,b2],設,表示區間中最小或最大數,L為區間a,b中區間長度的較大值,則區間a,b之間的相關度:

定義3.Chi-square是一種度量離散化數值型數據的統計量

其中,p表示目標屬性個數,Aij表示第i個區間中第j個目標屬性的實例數;Eij表示第i區間中,第j個目標屬性出現頻率(期望).
為克服相似區間長度不固定且區間長度相差較大問題,基于相關度離散化區間屬性;本文采用Chisquare度量條件屬性和目標屬性之間關聯程度,即兩相鄰區如果存在相似目標屬性頻率分布則合并為同一區間,即計算相鄰區間 χ2值,合并χ2值最小的相鄰區間,迭代合并直到滿足終止條件.具體描述如下:

算法1.融合相關度和Chi-square統計量的屬性離散化算法① 根據對象 在屬性 的取值特點(區間數長度和相鄰區間的交叉x ic j

新段落大小),定義相關度 ;U={x1,x2,··,x n}c jg j② 對象屬性上的取值排序,記為;U(c j)c j U(c j)={x1(c j),x2(c j),··,x n(c j)}③ 遍歷 比較相鄰對象 ( )g(x(c j)x i(c j)1≤i≤n若,繼續遍歷;g(x(c j)i,x(c j)i+1)>g j若,決策相同繼續遍歷;g(x(c j)i,x(c j)i+1)≤g j且f(x(c j)i)=f(x(c j)i+1)若i,x(c j)i+1)≤g j且f(x(c j)i)≠f(x(c j)i+1),添加斷點( 區間最小值);x(c j)i,x(c j)i+1④ 按遍歷取斷點從小到大排序實現連續數據離散化;選取顯著性水平并結合自由度( ),確定 統計量閾值 ;χ 2 r(d)-1 c jχ 2 j⑤ 計算連續數據離散化相鄰區間 統計量,如果大于 ,則相鄰區間合并;χ 2 χ 2 j⑥ 按⑤循環迭代合并直至滿足:相鄰區間 統計量大于閾值 或最終保留區間個數.χ 2 j
由于生理監測數據涉及較多屬性,且容易存在部分條件屬性(如心率、血氧)取值有遺漏或缺失,需要降低原始數據集維數,同時避免組合爆炸和提高屬性約簡效率.在保證一定的正確分類率 α的前提下,盡可能縮小屬性約簡的搜索空間.
定義4.對于決策表S=(U,R,V,f),對于 ? α ∈(0.8,1],決策屬性集D與條件屬性集C的基于參數 α的分類率為

其中,CαYj表示決策類Yj相對于條件屬性集C的 α下的近似值,α參數放松S=(U,R,V,f)對近似邊界的要求.
定義5.條件屬性C的相容矩陣定義如下:

其中,若條件屬性的取值有遺漏或缺失,*記為遺漏屬性值.
定義6.對于決策表S=(U,R,V,f),P,Q是條件屬性集合的兩個子集,相容矩陣的交運算定義為:

下面給出基于相容矩陣的屬性約簡算法:首先,采用間接處理方法將不完備數據轉化成完備數據;其次,將決策表中條件屬性的所有組合形式用二進制編碼表示,即“1”表示屬性出現,“0”表示屬性不出現;然后,比較二進制表示的組合屬性集與條件屬性的分類質量,如果相等則該組合屬性作為候選集合一行;最后,根據準則刪除那些子集已經是約簡的行以及全為零的行.

算法2.基于相容矩陣的屬性約簡算法輸入:決策表,是屬性集合,子集合 和 分別為條件屬性集 和決策屬性集 ;為條件屬性的個數;分類率C S=(U,R,V,f)R=C∪DCD C={c1,c2,··,c m}D=g0ggggggmα輸出:最小約簡屬性集① 采用相容矩陣并基于啟發式算法[13]將不完備決策表 轉化為完備數據集;C={c1,c2,··,c m}S=(U,R,V,f)② 將條件屬性 所有組合形式通過二進制編碼表示;···,2 m-1③ 計算編碼j=1,2,所對應的屬性組合 在參數 條件下的分類質量C jα β C jβ C j=■■■■■■■■∪Y j∈U/D Cα Y j|U|(7)■■■■■■■■④ 如果 ,則用屬性組合 代替屬性集 ,即 ;重復步驟②;Cβ C j=β CC jC C=C j⑤ 刪除冗余及全為零的行,形成最小約簡屬性集 .
生理監測數據具有典型增量數據特點,分類規則可以對未知數據預測,由于分類規則強調準確性、速度、健壯性和伸縮性,因此確定最優分類規則集合至關重要.按照定義1,決策表S每一行對應決策規則,存在r(d)個決策規則,可以表示為:

記為CU→DU,可以定義規則強度、確定度和覆蓋度因子.
定義7.決策規則CU→DU規則強度、確定度和覆蓋度分別為:

其中,|·|運算表示集合基數.

算法3.基于批量和增量相結合的分類規則挖掘算法CD S=(U,R,V,f)① 根據生理監測數據確定對象的條件屬性 和決策屬性 ,決策表,選取生理監測數據集 ;D a t a0 D a t a0② 對 進行預處理,融合相關度和C h i-m e r g e統計量的屬性離散化連續屬性值;基于相容矩陣約簡屬性,得到數據集 ;③ 調用基于粗糙集分類算法[14]得到一組最優的分類規則集并保存在分類規則庫中;D a t a C

④ 讀取增量數據集并進行預處理(融合相關度和C h i-m e r g e統計量的屬性離散化),得到 ;如果增量數據集為空,跳轉到⑥;D a t a C D a t a C⑤ 用當前分類規則庫中的規則對 進行分類,如果達到預期效果 (規則強度、確定度和覆蓋度),則將 與 合并,跳轉到④;否則執行③;⑥ 輸出當前分類規則集.D a t a CΔ D a t a C D a t a C=D a t a C∪Δ D a t a C
算法3采用順序覆蓋策略,每學習一個規則可刪除該規則覆蓋數據;對其它數據重復該過程直到終止條件,即沒有訓練樣本/返回的規則的分類質量低于預期效果(規則強度、確定度和覆蓋度).
為提高慢性病變智能分級的準確性,特別是針對大規模生理監測數據,需要發揮云端并行化處理優勢.MapReduce并行化框架通過對數據集的大規模操作分發給網絡上的每個節點;每個節點會周期性返回所完成的工作和最新狀態.用戶只需編寫Map函數和Reduce函數,即可實現大規模數據并行處理.慢性疾病智能分類及預測的完整過程:實時監測獲取生理數據;經過融合相關度和Chi-merge統計量對連續屬性離散、基于相容矩陣的屬性約簡算法降低原始數據集維數以及基于批量和增量相結合的分類規則挖掘;在線生理監測數據利用上述分類規則聚類,確定病例智能分級.
廈門理工學院自主研制云健康監測系統Cloud-Health,該系統基于 Android 4.1.2,jdk1.7,基于 Bluetooth協議連接人體生理參數采集終端,并支持2G、3G、4G、WIFI等連接云平臺.Cloud-Health實現心電、心率、血壓、血氧飽和度和血糖在線監測,并根據慢性疾病智能分類及預測的結果,進行膳食推薦、運動推薦和就醫服務推薦.Cloud-Health支持聯接廈門市“健康醫療云”,該醫療云支持與各類健康管理終端對接,已實現體重、體溫、血壓、血糖、心電、血氧、血脂等14項生理指標的收集,已建立個人健康檔案330余萬份,占90%常住人口),最終滿足居民慢性病變智能預警和突發狀況救治的需要.圖1展示云健康監測系統的主界面及心電監護界面.
實驗數據取自廈門市集美區110198條健康監測數據.每條數據包括個人資料(年齡、性別、民族、婚姻、學歷)、生活偏好(抽煙、喝酒、鍛煉、睡眠時間等)、常規體檢數據(身高、體重、腰圍、臀圍)和監測數據(心電、心率、血壓、血氧飽和度和血糖),樣本平均年齡64.9歲.糖尿病(Diabetes)數據共40個條件屬性、高血壓(Hypertensive disease)數據共35個條件屬性、冠心病 (Coronary heart disease)數據共 35 個條件屬性;健康風險就是決策屬性(H高等風險、M中等風險和L低等風險).

圖1 云健康監測系統
以糖尿病數據為例,運用基于粗糙集的慢性病變分級方法,融合關聯度和Chi-merge統計量對數據連續區間離散化,得到初始屬性40個、初始斷點數123;基于相容矩陣的屬性約簡(正確分類率 α=0.9),得到剩余屬性9個、斷點數16個.表1給出慢性病(糖尿病、高血壓、冠心病)主要屬性.
表2展示部分糖尿病數據分級預測結果.采用批量與增量相結合的分類規則挖掘,得到12條規則;基于MapReduce框架運用規則庫實現分級預測.記年齡(c1),身體質量指數(c2),腰臀比(c3),吸煙(c4),甜食(c5),血氧飽和度 (c6),心率 (c7),血糖 (c8),收縮壓 (c9),健康風險類別(d),部分規則示例如下:

對x1數據運用規則R1:57歲,男性,身體質量指數BMI值為 26.9(中國標準:[24,27.9],偏胖),有吸煙史、喜歡甜食,血氧飽和度 SpO2 值 92%(中國標準:<94%,供養欠缺),心率 (中國標準:[60,100],標準),血糖(FBG)值范圍 (6.98,7.48] (中國標準:空腹全血血糖FBG≥6.7毫摩爾/升兩次可診斷為糖尿病);收縮壓(132,136] (中國標準:≥140 mmHg,高血壓),經分類規則判定為高等風險(H).對x7數據運用規則R3:54歲,男性,身體質量指數BMI值為24.1,有吸煙史、喜歡甜食,血氧飽和度 SpO2 值 91%,心率 (76,83],血糖(FBG)值范圍 (6.7,7.06];收縮壓 (145,157],經分類規則判定為低等風險(L),醫生綜合診斷后更傾向于高血壓(低等風險L).該方法識別準確率89.23%、誤識率10.77%,其根本原因在于生理監測數據具有時間連續性、非精確性、模糊性等特性.

表1 慢性病 (糖尿病、高血壓、冠心病)主要屬性

表2 部分糖尿病慢性病變分級結果
需要說明的是,雖然對于常見的慢性疾病(高血壓、糖尿病和冠心病),使用基于粗糙集的慢性病變分級方法雖可以得到較好的預測結果.但限于數據等條件,該方法目前尚未完全發揮云計算技術在大數據分析和挖掘中的優勢.如果在云端平臺采用多種數據挖掘方法對生理監測數據進行協同分析,可以提高慢性病變分級和診斷的精確度.
目前傳感器網絡、云計算和大數據技術正逐步應用到智慧醫療領域.云健康監測利用附著人體的智能生理參數傳感器獲取人體生理數據,并上傳到健康醫療云端,是智慧醫療領域未來發展方向之一.為滿足居民慢性病變智能預警和突發狀況救治需要,根據生理監測數據的時間連續性、非精確性和模糊性等特點,本文提出一種基于粗糙集的慢性病變分級方法,即首先采用融合相關度和Chi-merge統計量離散化生理監測數據;然后,基于相容矩陣的屬性約簡算法去除數據冗余屬性;最后,基于批量與增量相結合挖掘分類規則,基于分布計算框架MapReduce運用規則實現慢性病變智能分級.該方法有利于幫助個體全面認識健康狀況和病變風險,有助于“健康醫療云”走入家庭慢性疾病監護領域,有利于緩解目前醫療資源緊缺現狀.
下一步工作包括:提高云健康監測中慢性病變分級的識別率,包括:提高生理監測數質量,充分考慮降低數據的缺失值比率;完善云健康監測系統的功能,展開示范性應用和推廣.