郭志恒 劉青萍,2 劉 芳 王成武 阮旭凌
(1.湖南中醫(yī)藥大學信息科學與工程學院 長沙410208)(2.湖南中醫(yī)藥大學中醫(yī)學國內(nèi)一流建設學科 長沙 410208)(3.湖南中醫(yī)藥大學藥學院 長沙 410208)
腦卒中是由腦血管破裂出血或者血栓形成導致腦部出血性或缺血性損傷的一組疾?。?]。根據(jù)世界衛(wèi)生組織統(tǒng)計數(shù)據(jù)可知,腦卒中是全球第二大死亡疾?。?],具有高發(fā)病率、高死亡率、高致殘率的特點[3]。臨床上針對不同類型腦卒中的治療方法存在差異,且一直缺乏有效的疾病治療手段,目前預防是延緩腦卒中發(fā)病的最好措施。
近些年,國內(nèi)外學者非常關注心腦血管疾病預測模型研究。具有代表性的模型包括美國Fram?ingham風險評估模型、歐洲冠心病風險評估計劃模型、上海市健康教育所與“101健康管理”共同研發(fā)的“預防腦卒中”APP。隨著大數(shù)據(jù)、人工智能等技術在醫(yī)學領域的廣泛應用,最新研究側重于患者電子病歷數(shù)據(jù)的跟蹤和處理,以及采用機器學習、數(shù)據(jù)挖掘等方法構建較高精度的腦卒中風險預測模型[4~5]。目前臨床上用于腦卒中預測的方法較多,例如吳菊華等[6]運用神經(jīng)網(wǎng)絡方法構建了腦卒中預測模型,采用神經(jīng)網(wǎng)絡中多層感知機構建模型,以Relu函數(shù)作為激活函數(shù)并取得較好的實驗效果,完善了腦卒中的風險因素識別。邵澤國等[7]通過優(yōu)化決策樹方法對腦卒中日常生活習慣風險因素進行分析,在C4.5基礎上將原始數(shù)據(jù)分為“有”“無”兩類并嵌套生成樹,依據(jù)知識規(guī)則得出風險因素的高低。李鵬等[8]基于邏輯回歸算法對缺血性腦卒中發(fā)病率進行研究,通過邏輯回歸算法對缺血性腦卒中的10個風險因素構建模型,以小批量梯度下降法求得模型解。
本研究采用支持向量機、邏輯回歸、隨機森林三種算法分別與SMOTE算法結合,構建腦卒中預測模型,通過三種算法的對比研究,找到更加適合構建腦卒中預測模型的算法,為腦卒中的預測和預防提供依據(jù)。
SMOTE算法[9]是2002年Chawal等對數(shù)據(jù)分布不均衡提出的智能過采樣算法。該算法在隨機過采樣算法基礎上的通過對原有少數(shù)類樣本進行分析并根據(jù)原有少數(shù)類樣本人工合成新樣本。對少數(shù)類中的每一個樣本,以歐氏距離計算到少數(shù)類樣本中所有樣本的距離并得到其K近鄰,再根據(jù)不平衡率確定采樣倍率,從K個近鄰中隨機選出若干樣本,原樣本與新樣本按照公式構建新樣本。
SVM(Support Vector Machine,支持向量機)的基本思想是找出能將數(shù)據(jù)集劃分的幾何間隔最大的分離超平面,換言之,找到對分類結果的泛化能力最好、魯棒性最優(yōu)的線性方程。對待分類樣本可構建的分離超平面為
其中,ω為垂直平面的法向量,b為偏移量。
下面是最大間隔分離超平面的獲得方法,可以表示為下面的約束最優(yōu)化問題:
即希望最大化超平面(ω,b)關于數(shù)據(jù)集的幾何間隔γ,約束條件表示的是超平面(ω,b)關于每個樣本點的幾何間隔至少是γ。
邏輯回歸屬于廣義線性回歸模型,與線性回歸類似,主要思想是通過已有數(shù)據(jù)擬合出一條直線,用擬合出的這條直線進行預測。其公式如下:
通過邏輯回歸算法將線性函數(shù)得到的結果映射到sigmoid函數(shù)y=1/(1+e^(-x))中,通過極大似然估計來推導損失函數(shù),再利用梯度下降法來求解參數(shù)來對數(shù)據(jù)進行二分類。
隨機森林算法是Breiman[10]等提出,該算法實際上是一種特殊的bagging方法,用bootstrap方法生成訓練集,在決策樹的基礎上以隨機的方式建立一個森林,森林里面有很多的根據(jù)訓練集構建的決策樹,各個決策樹之間沒有關聯(lián),有新樣本輸入,就放入之前得到的森林,由森林內(nèi)的決策樹分別進行判斷,被選擇較多的一類就為樣本的分類。隨機森林為了保證強大的抗過擬合和噪聲能力,在構建每一棵CART決策樹是采用了行抽樣和列抽樣的隨機化方法。
本文采用kaggle網(wǎng)站的healthcare-datas?et-stroke-data數(shù)據(jù)集。數(shù)據(jù)集樣本總數(shù)為5110,包括2994名男性、2115名女性和1名不知性別者。其中,4861例為非腦卒中患者,249例為腦卒中患者。
3.2.1 數(shù)據(jù)處理
1)數(shù)據(jù)量化及缺失值處理
數(shù)據(jù)集中每個樣本具有11個特征屬性和1個類別標簽屬性。其中,類別標簽標明患者是否患腦卒中,11個特征屬性分別記錄每位患者的編號(id)、性別(gender)、年齡(age)、高血壓病史(hyper?tension)、心臟病史(heart_disease)、婚姻史(ev?er_married)、工作類型(work_type)、居住類型(Resi?dence_type)、平均血糖水平(avg_glucose_level)、體重指數(shù)(bmi)和吸煙狀況(smoking_status)。其中bmi屬性中有201個缺失值,采用平均值法進行數(shù)據(jù)填充。為進一步提高模型的泛化能力以及方便對數(shù)據(jù)處理,本研究對性別、婚姻史、工作類型、居住類型和吸煙狀況的數(shù)據(jù)分別進行量化。即性別(gender)中Female為1,Male為0;婚姻史(ev?er_married)中Yes為1,No為0;工 作 類 型(work_type)中Never_worked為0,Private為1,Self-employ為2,Govt_job為3,children為4;居住類型(residence_type)中Urban為1,Rural為0;吸煙狀況(smoking_status)中never smoked為0,F(xiàn)ormerly smoked為1,smokes為2,Unknown為-1。
2)數(shù)據(jù)不平衡處理
本文通過可視化發(fā)現(xiàn)卒中與非卒中患者分布差別明顯,并對其進行不平衡率計算得出數(shù)據(jù)集不平衡率為5%,具體如圖1所示。
圖1 數(shù)據(jù)分布圖imbalanced_ratio=stroke/non-stroke=0.0512
對于數(shù)據(jù)不平衡處理方法分別采用ADASYN算法和SMOTE算法,經(jīng)對比發(fā)現(xiàn)SMOTE算法對數(shù)據(jù)處理效果更好。且考慮到ADASYN算法是根據(jù)分布來自動決定每個少數(shù)類樣本所需要合成的樣本數(shù)量,相當于給每個少數(shù)類樣本施加了一個權重,周圍的多數(shù)類樣本越多則權重越高。由于卒中患者較少,使用ADASYN算法會使其權重變得相當大,導致生成過多的卒中樣本。而SMOTE算法是對于少數(shù)類樣本以歐氏距離為標準計算其到少數(shù)類樣本集的距離,得到其近鄰,避免了權重過高問題。
3.2.2 模型構建
在Windows10平臺python3.8環(huán)境下構建SVM、LR、RF分類預測模型。對數(shù)據(jù)集做預處理并計算不平衡性,對不平衡數(shù)據(jù)中的少數(shù)類用SMOTE算法經(jīng)行處理,然后與均衡數(shù)據(jù)構成新的“人工”數(shù)據(jù)集,再通過算法模型對數(shù)據(jù)集進行分類預測。具體流程如圖2所示。
圖2 模型構建流程圖
3.2.3 性能指標
在醫(yī)學診斷中,評價分類器的優(yōu)劣通常采用準確率、召回率和精確度等指標。準確率(accuracy)表示對給定的是測試數(shù)據(jù)集,正確分類的樣本數(shù)與總數(shù)的比值[11];召回率(recall)表示預測為正例的樣本與實際為正例的樣本的比值。精確度(preci?sion)表示實際為正例與預測為正例的比值。F1Score表示精確度和召回率兩者之間的調(diào)和平均值。混淆矩陣表示分類器在測試集上的預測是否為正確,如表1所示。
表1 混淆矩陣
其中,P為正類樣本的數(shù)目,N為負類樣本的數(shù)目。關于四個評價指標的公式:
ROC曲線是真正例(True Positive Rate)為縱坐標,假正例(False Positive Rate)為橫坐標所繪制的曲線,能反映不同的分類算法性能。ROC曲線越靠近縱軸,則模型預測效果越好。ROC曲線下面的面積為AUC,面積值越大,則算法性能越好。
實驗以healthcare-dataset-stroke-data數(shù)據(jù)集的70%為訓練集,30%為測試集分別構建SVM、LR和RF算法預測模型。結果如下所示。
從表2與表3可以看出,數(shù)據(jù)集經(jīng)過SMOTE算法處理,支持向量機、隨機森林、邏輯回歸預測模型在各項指標都有很大程度提高。支持向量機在Ac?curacy、Reacll、Precision、F1Score、ROC_AUC分別提高4%、34%、65%、63%、21%;邏輯回歸在Accura?cy、Reacll、Precision、F1Score、ROC_AUC分別提高5%、12%、64%、59%、13%;隨機森林提升不明顯。為了更好的對比各個算法的性能,對SMOTE算法處理后的數(shù)據(jù)模型進行ROC曲線的繪制。從圖可以看出,RF算法的ROC曲線最靠近縱軸,即AUC值最大,值為0.98,其可以更好地擬合數(shù)據(jù),反映數(shù)據(jù)的真實性。
表2 算法對腦卒中測試集預測指標
圖3 不同分類算法的ROC曲線
經(jīng)實驗結果對比發(fā)現(xiàn),隨機森林算法在準確率、召回率、AUC值等都優(yōu)于其他機器學習算法,可以作為輔助診斷工具應用到實際醫(yī)療診斷中,為腦卒中的早期預防提供科學依據(jù)。
通過實驗結果發(fā)現(xiàn),隨機森林算法能較好地平衡不均衡數(shù)據(jù)集,對數(shù)據(jù)集的適應能力強,減小實驗誤差。隨機森林屬于集成分類算法,相對于單一分類算法性能更優(yōu),泛化能力更強。
如今,腦卒中已成為全球第二大死亡疾病,且發(fā)病有年輕化趨勢[12],目前預防是延緩腦卒中發(fā)病的最好措施。而急性缺血性卒中的快速識別與診治對預后的影響至關重要[13~14],因此提高腦卒中的診斷效率,提高醫(yī)生和患者的風險意識,對腦卒中的防治具有重要意義[15]。本研究通過SMOTE算法處理數(shù)據(jù)集的不平衡,選用機器學習算法中支持向量機、隨機森林、邏輯回歸算法構建預測模型。實驗結果顯示隨機森林和SMOTE算法構建的腦卒中預測模型具有更好的預測效果,可以輔助醫(yī)生提高腦卒中的診斷效率,為我國的在腦卒中診斷方面提供技術手段。