李榮 楊嘉燁 宋蘇燕 郭志高 丁有偉
(南京中醫藥大學人工智能與信息技術學院 江蘇省南京市 210033)
隨著人民生活水平和膳食結構的改變,我國血脂異常的發生率呈持續上升趨勢,血脂異常與動脈粥樣硬化密切相關,是冠心病、腦卒中、心肌梗死、猝死的危險因素[1]。我國成人血脂異常患者的知曉率和治療率仍處于較低水平,血脂異常的防治工作有待加強[2],因此高血脂的評估和預測對阻止病情的發生,延緩病情具有重要意義。
近年來,機器學習技術發展迅速,并被廣泛用于慢性病預測。M Chen 等人[3]在數據不完整的情況下使用潛在因素模型重建丟失數據,并對某一地區的慢性病腦梗死患者的結構化和非結構化數據進行試驗,提出了一種新的基于CNN 的多模態疾病風險預測算法(CNN-MDRP),該算法準確率高,收斂速度快。A Wang 等人[4]借助logistic 回歸對風險因素初篩,進而采構建BP 算法的多層感知神經網絡模型預測高血壓。將Logistic 回歸和ANN 進行有效結合,對于高血壓篩查具有重要意義。Chang W 等人[5]使用遞歸特征消除與交叉驗證從體檢數據中提取最佳特征子集后,采用SVM、決策樹、隨機森林、XGBoost 預測高血壓,發現XGBoost 預測性能最好,此試驗對深入研究高血壓并發癥具有較強的現實意義。
在國內外的相關研究中,將機器學習應用于疾病預測的研究可以分為用于預測慢性疾病的模型設計和通過不同模型比較預測結果,大部分研究主要針對高血壓等一些慢性疾病,由于高血脂癥和其他慢性疾病同樣重要,因此本研究選擇高血脂癥作為主要分析的疾病,提出基于XGBoost 算法的潛在高血脂疾病預測方法。針對采集到的數據進行數據的清洗、轉化等處理,利用XGBoost、隨機森林和Logistics 三種算法對潛在高血壓進行預測,并比對不同算法的預測結果,從而找到最理想的算法,為早期高血壓的檢測和防治提供保障。
高血脂癥是指血清中的膽固醇(TC)和(或)甘油三酯(TG)水平升高,通常患有高血脂癥的患者會在某些方面的身體數據指標有異于正常人的表現。潛在高血脂癥的預測原理是通過機器學習相關理論及在海量個體生理數據中搜索異常的,可能引發高血脂癥的相關數據。
隨機森林(Random Forest)是由Breiman[6]提出的,是基于多棵決策樹的集成分類方法。隨機森林由多棵決策樹構成,用隨機的方法組成森林,決策樹之間互不關聯。當有樣本需要判斷時,將抽取的樣本數據放到決策樹的根節點,抽取樣本采用有放回的抽樣方法,保證每棵樹之間相互獨立。決策樹根據選擇的屬性進行判斷,并得到一個結果,最后匯總這些結果,通過少數服從多數的方法,出現最多的分類結果就是最后的答案。
XGBoost(eXtreme Gradient Boosting)是由陳天奇[7]等人2015年提出,是一種基于決策樹的集成機器學習算法。是在GBDT 基礎上,加入目標函數的二次泰勒展開項和模型復雜度的正則項,使得目標函數與實際數據相差更小,達到減少數據誤差,提高預測準確度的一種算法。
Logistic 回歸算法是從統計學中借鑒而來的,通過使用固有的Logistic 函數估計概率,來衡量因變量與一個或者多個自變量之間的關系。邏輯回歸假設數據服從伯努利分布,通過極大化化似然函數方法,運用梯度下降來求解參數達到將數據二分的目的。
實際在生活中取得的數據存在許多問題,特別是醫療領域的數據,有其獨特的特點,決定了數據處理過程中面臨諸多問題,比如冗余性,不完整性,不一致性,多類別數據特征等,因此,數據預處理在數據建模過程中占據重要作用,本研究主要使用下述方法對體檢數據進行預處理。
(1)數據清洗。對待預測人員體檢數據采集的過程中,不可避免會有大量與潛在高血脂癥預測無關的冗余信息以及不完整信息,因此,需要對采集到的數據集進行清洗。
(2)數據轉換。將隸屬于非布爾屬性的體檢數據轉換成布爾數據屬性。可以通過文本關鍵詞的提取,長文本轉換成數值向量等方式進行處理。
通過上述方式處理得到待預測人員的體檢數據,能更方便的進行高血脂癥的數據預測分析,為潛在高血脂癥的預測提供數據支撐。
實驗使用的是Windows 10、i5 處理器、8GB 內存的計算機,編程語言采用的是Python 3.8。
本實驗選擇美年體檢數據,其中包括57298 份體檢報告,2795項體檢項目。該體檢報告中包括數值型數據和文本型數據,體檢項目名稱已被脫敏處理,個人id 也進行加密處理。
使用準確率(precision,P)、召回率(recall,R)和F1 值(F1-measure,F1)3 個指標作為分類器評判標準。在分類問題中,可將樣本根據真實類和分類模型給出的預測類的組合,劃分為真正例(True Positive,TP)、假正例(False Positive,FP)、真反例(True Negative,TN)、假反例(False Negative,FN)四種情況。則有如下定義:


本研究主要從體檢數據中提取個體特征,對疾病進行風險預測,預測其膽固醇和血清甘油三酯是否處于異常,從而判斷是否屬于高血脂。
為驗證XGBoost 算法分類的準確性,本研究還選擇了隨機森林和Logistics 兩種算法,在100%數據量下,進行比較。由表1可知,XGBoost 算法的結果要明顯優于其他兩種算法。
隨機選取20%、40%、60%、80%的數據作為訓練集。從圖1中可以看出,隨著數據量的增加,模型的結果逐步增強,但是有一定的波動。由于數據集樣本分布并不均衡,且一些字段存在一定的缺失率,這導致了模型結果出現波動,但從F1 值來來看,隨著數據量的增加,模型的結果逐步增強,且未出現明顯下降的趨勢。如表2所示。

圖1:XGBoost 在不同的數據量下測試結果的變化

表1:XGBoost 與其他算法的對比

表2:訓練樣本數據量對xgboost 算法的影響
針對高血脂預測問題提出了基于XGBoost 算法的預測方法。通過與其他算法的比較可以發現XGBoost 算法結果好于其他算法,通過不同數據量的測試可以看出:隨著訓練樣本的增加,準確率有一定程度的提高。通過本研究可以為高血脂癥的預測提供強而有力的理論基礎。