摘 要:糖尿病是內(nèi)分泌失調(diào)綜合癥中的一種,已經(jīng)越來越多地出現(xiàn)在我們身邊,并且成為了危害現(xiàn)代人類正常生活的一大殺手。當血糖超過腎臟的負荷時,血液中的糖分便會經(jīng)由尿液排出,故稱為糖尿病。近年來,隨著糖尿病病例的不斷增加,對于現(xiàn)有的醫(yī)療資源和醫(yī)療體系提出了越來越高的要求。雖然我國的疾病防治團隊力量一直在不斷擴充和壯大,但是面對快速增長的患病人群,依然遠遠沒有滿足廣大人民的問診需求。機器學習作為集計算機學科和統(tǒng)計學科與一體的跨領(lǐng)域?qū)W科,近幾年正在如火如荼地發(fā)展著。如果能夠?qū)C器學習的歷史復(fù)盤,擬合能力應(yīng)用于病理診斷領(lǐng)域,必將能夠極大地提高患者的問診效率,使得醫(yī)護人員能夠從大量繁雜的重復(fù)工作中解放出來,從而進一步解決“看病難,看病慢”的問題。本文基于該思路,利用決策樹,SVM等機器學習手段,實現(xiàn)了能夠集病患自助診斷,醫(yī)師輔助診斷,醫(yī)患信息管理,歷史疾病復(fù)盤等功能于一體的糖尿病醫(yī)療問診系統(tǒng)。
關(guān)鍵詞:糖尿病診斷;機器學習;統(tǒng)計學
背景
糖尿病是一種代謝性疾病,它的特征是患者的血糖長期高于標準值。高血糖會造成俗稱“三多一少”的癥狀:多食、多飲 、頻尿及體重下降。對于第一型糖尿病,其癥狀會在一個星期至一個月期間出現(xiàn),而對于第二型糖尿病則較后出現(xiàn)。不論是哪一種糖尿病,如果不進行治療,可能會引發(fā)許多并發(fā)癥。一般病征有視力模糊、頭痛、肌肉無力、傷口愈合緩慢及皮膚很癢。急性并發(fā)癥包括糖尿病酮酸血癥與高滲透壓高血糖非酮酸性昏迷;嚴重的長期并發(fā)癥則包括心血管疾病、中風、慢性腎臟病、糖尿病足、以及視網(wǎng)膜病變等。2型糖尿病患者的初始治療包括教育,強調(diào)飲食、運動、減重(適當時)等生活方式改變。大多數(shù)患者需要二甲雙胍單藥治療,部分患者可能需要將胰島素作為初始治療。雖然一些研究發(fā)現(xiàn)經(jīng)初始治療后2型糖尿病的緩解可能會維持數(shù)年,但大多數(shù)患者為了維持正常或接近正常的血糖仍需要持續(xù)的治療。有研究顯示,肥胖患者通過減肥手術(shù)大幅減重后,大部分患者的2型糖尿病緩解。不論患者對治療的初始反應(yīng)如何,從大多數(shù)2型糖尿病患者的自然病程來看,血糖濃度都會隨時間逐漸升高。因此,2型糖尿病的防控和治療作為一個醫(yī)療難題,必然會耗費大量的醫(yī)療醫(yī)護資源。本文提出了一種能夠從源頭上節(jié)省醫(yī)療成本的方法,即從患者的自身情況,利用機器學習對歷史數(shù)據(jù)的擬合能力,從患者患病初期就能對患者身體展現(xiàn)的各項指標進行推斷,最終獲得初步預(yù)測的患病概率。輔以醫(yī)護人員的專業(yè)建議,不僅大大減少了醫(yī)療救護成本,而且有利于糖尿病例數(shù)據(jù)的收集和維護,是計算機領(lǐng)域向醫(yī)療領(lǐng)域跨入的一次比較好的嘗試。
數(shù)據(jù)
眾所周知,機器學習項目需要大量高質(zhì)量的數(shù)據(jù)作為基準,而且其數(shù)據(jù)分布需要符合目標領(lǐng)域的分布?;诜植嫉目紤],我們主要從以下幾個方面考慮對數(shù)據(jù)的選?。?/p>
(1)特征指標獲取的難易程度:特征指標應(yīng)當是普通人在日常生活中常見且易于獲取的,否則獲取指標依然需要耗費很大的人力和物力資源;
(2)目標人種的聚合程度:本文的目標針對中國范圍內(nèi)的2型糖尿病患者及潛在患者,由于人種差異,采集的數(shù)據(jù)最好在亞洲/東南亞范圍內(nèi)進行采集;
基于上面的考慮,我們采用印度Pima地區(qū)的人種體征患病標注數(shù)據(jù)來進行本文中系統(tǒng)的建模,該數(shù)據(jù)集包含如下特征列:
(1)Pregnancies:受孕次數(shù),如果為男性,則該指標為0;
(2)Glucose:人體血液葡萄糖含量;
(3)BloodPressure:血壓值,計量單位為mm/Hg;
(4)SkinThickness:皮層厚度,計量單位為mm;
(5)Insulin:胰島素含量,2小時范圍內(nèi)血清胰島素含量,計量單位為Mu/ml;
(6)BMI:體重指數(shù),計算規(guī)則為(體重/身高)2;
(7)DiabetesPedigreeFunction:糖尿病譜系功能值;
(8)Age:年齡(歲)
(9)Outcome:label,0/1.
該數(shù)據(jù)集由上面的列以及768條樣本交錯組成。
數(shù)據(jù)可視化
首先對數(shù)據(jù)進行可視化,我們引用python中的pandas包,采用以下幾個步驟對數(shù)據(jù)進行預(yù)處理:
(1)數(shù)據(jù)空值及數(shù)據(jù)類型探查
該數(shù)據(jù)集格式較為整齊,且不存在缺失值,因此不需要對缺失值進行特別處理;
(2)數(shù)據(jù)各個維度交叉可視化
由于數(shù)據(jù)樣本條數(shù)不多,加上所有的樣本特征均為數(shù)值型,在各個維度上進行數(shù)據(jù)的數(shù)值可視化如下:
其中,整體圖例橫/縱坐標軸分別由上面提到的所有特征列組成,該圖例展示了各個特征列之間的兩兩相互情況。
(3)數(shù)據(jù)單維度與標簽交叉統(tǒng)計可視化
數(shù)據(jù)單維度與標簽交叉統(tǒng)計可視化是探索特征與標簽關(guān)系的一個非常重要的部分,這一步驟可以幫助我們初步探查特征與標簽之間的關(guān)系。我們以Pregenancies與標簽的統(tǒng)計關(guān)系為例,得到下面的直方圖:
上圖中的橫軸數(shù)值為懷孕次數(shù),縱軸為患病的0/1數(shù)量的比例,其中藍色部分柱形代表未患病的數(shù)量,橙色部分柱形代表患病的數(shù)量??梢钥闯?,隨著x軸的推移,藍色部分的柱形長度趨向于0,因此可以初步得出類似于“患病概率與懷孕次數(shù)正相關(guān)”類似結(jié)論,但是該結(jié)論實際上并不具有說服力,因為單一的特征并不能完全概括所得到結(jié)果的置信度。
數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理過程由離群點檢測和數(shù)據(jù)增強兩部分組成:其中離群點檢測用于進行離群點數(shù)據(jù)的剔除;數(shù)據(jù)增強則通過對數(shù)據(jù)增加噪聲來增強模型對于更復(fù)雜情況數(shù)據(jù)的泛化能力和魯棒性。下面分開詳述:
(1)離群點的檢測和剔除。離群點檢測可以使用的方法比較多,我們從數(shù)據(jù)規(guī)模和計算難度兩方面對離群點檢測的方法進行挑選。該數(shù)據(jù)集僅有768條記錄,就算進行噪聲加入后,數(shù)量級也不會超過104,再加上該模型建立之后需要服務(wù)于客戶端,對于性能上要求可能比較高。因此,我們需要選擇一種能夠快速定位和區(qū)分離群點的方法來輔助進行醫(yī)療決策?;谏厦娴目紤],我們決定采用Robust Covariance和isolate Forest兩種方法從單維度上對數(shù)據(jù)進行離群點剔除。其中,Robust Covariance方法是一種數(shù)據(jù)集協(xié)方差的魯棒估計 (robust estimator)。 這個想法是找出一個給定比例的”好”觀察值,它們不是離群值, 且可以計算其經(jīng)驗協(xié)方差矩陣。 然后將該經(jīng)驗協(xié)方差矩陣重新縮放以補償所執(zhí)行的觀察選擇;Isolate Forest方法需要對采樣到的特征隨機生成分割點即可,不需要像各種決策樹算法一樣,按照各種標準(基尼系數(shù),信息增益或者信息增益率)選特征,選分割。我們以preganancies維度為例,利用;Isolate Forest算法進行離群點檢測的結(jié)果如下:
可以看到,選用Robust Covariance時,得到的邊界較為均勻圓潤,而選用isolate Forest時,得到的表姐比較粗糙。因為我們希望引入更少的離群點以獲得更多符合規(guī)則的數(shù)據(jù)樣本,因此選用isolate Forest是可行的。
(2)數(shù)據(jù)加噪
數(shù)據(jù)加噪的本質(zhì)是通過數(shù)據(jù)的污染,對模型的訓練造成難度,模型在訓練過程中自主克服這些難度,從而達到更好的魯棒性和泛化能力的效果。同時,模型加噪可以進一步擴充數(shù)據(jù)集容量,對于模型的充實和飽滿也具有比較積極的意義?;谏厦娴目紤],我們對該數(shù)據(jù)集進行加噪類型如下:
(1)泊松噪聲。泊松噪聲是數(shù)據(jù)樣本中存在的比較主要的特征,盡管其有0均值的特質(zhì)但是由于其獨立于信號之外,因此很難除掉;
(2)乘性伯努利噪聲;
(3)Text加性噪聲;
(4)隨機脈沖噪聲
(5)交叉噪聲:例如對數(shù)據(jù)同時進行泊松噪聲和乘性伯努利特征的加噪。
特征工程
在該步驟中,我們將對數(shù)據(jù)的各種特征進行融合,裁剪和歸一化。然后通過與最終模型的融合步驟展示這些特征工程的給最終效果帶來的好處。
(1)特征歸一化
目前數(shù)據(jù)標準化方法有多種,歸結(jié)起來可以分為直線型方法(如極值法、標準差法)、折線型方法(如三折線法)、曲線型方法(如半正態(tài)性分布)。不同的標準化方法,對系統(tǒng)的評價結(jié)果會產(chǎn)生不同的影響,然而不幸的是,在數(shù)據(jù)標準化方法的選擇上,還沒有通用的法則可以遵循。根據(jù)本文所選取的數(shù)據(jù),我們需要將各個指標的量綱進行統(tǒng)一化即可,即采用簡單的min-max scaler,將各列數(shù)據(jù)進行去中心化(具體做法為X-min(x)/std(x))即可;
(2)特征融合和裁剪
特征融合有多種方式,包括全排列組合(將所有特征兩兩/三三…進行組合)等手段。在這里,我們選取了特征的兩兩組合即可。一方面這樣即節(jié)省了計算的時間和空間,滿足能夠快速推斷,快速迭代的需求;另一方面,這樣能夠引入較少的參數(shù)和誤差,在模型訓練時能夠快速收斂并取得成效。
評價指標
基于選用的數(shù)據(jù),我們選擇交叉熵(cross-entropy)作為損失函數(shù)。交叉熵的概念與信息量息息相關(guān)。信息量來衡量一個事件的不確定性,一個事件發(fā)生的概率越大,不確定性越小,則其攜帶的信息量就越小。而熵用來衡量一個系統(tǒng)的混亂程度,代表系統(tǒng)中信息量的總和;熵值越大,表明這個系統(tǒng)的不確定性就越大。在本文描述的系統(tǒng)中,因為存在著正負樣本代價不對等的問題(將一名患者診斷為無病造成的損失較將一名無病者診斷為患者造成的損失大),因此使用交叉熵來解決這個問題。交叉熵中的Log能夠?qū)⒄_判斷的收益折損,并且將誤判的損失放大,較為符合本文中系統(tǒng)所取的場景。
模型建立
基于前面的數(shù)據(jù)處理步驟,我們選取幾種比較常見的機器學習方法,如下:
1.LR(Logistic Regression,邏輯回歸),Logistic Regression 雖然被稱為回歸,但其實際上是分類模型,并常用于二分類。Logistic Regression 因其簡單、可并行化、可解釋強深受工業(yè)界喜愛。其本質(zhì)為假設(shè)數(shù)據(jù)服從這個分布,然后使用極大似然估計做參數(shù)的估計;
2.KNN(K Nearrest Neightbour,最鄰近算法),KNN是通過測量不同特征值之間的距離進行分類。它的思路是:如果一個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別,其中K通常是不大于20的整數(shù)。KNN算法中,所選擇的鄰居都是已經(jīng)正確分類的對象。該方法在定類決策上只依據(jù)最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別;
3.DT(Decition Tree,決策樹模型),決策樹算法采用樹形結(jié)構(gòu),使用層層推理來實現(xiàn)最終的分類。預(yù)測時,在樹的內(nèi)部節(jié)點處用某一屬性值進行判斷,根據(jù)判斷結(jié)果決定進入哪個分支節(jié)點,直到到達葉節(jié)點處,得到分類結(jié)果。這是一種基于 if-then-else 規(guī)則的有監(jiān)督學習算法,決策樹的這些規(guī)則通過訓練得到,而不是人工制定的。
4.AdaBoost;Adaboost是一種迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構(gòu)成一個更強的最終分類器(強分類器)。Adaboost算法本身是通過改變數(shù)據(jù)分布來實現(xiàn)的,它根據(jù)每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權(quán)值。將修改過權(quán)值的新數(shù)據(jù)集送給下層分類器進行訓練,最后將每次得到的分類器最后融合起來,作為最后的決策分類器。
訓練階段的acc展示如下:
通過上面的建模,得到各個特征的重要程度如下:
可以看出,血糖濃度為判斷糖尿病的最直接指標,這與我們的認知是相符的,從這點上至少說明,模型已經(jīng)在一定程度上表現(xiàn)出人類的知識特性。
工程建造
本文所述系統(tǒng)基于python語言搭建,在工程端基于Django框架搭建,數(shù)據(jù)庫采用mysql 8.0,前端采用html+css+jquery實現(xiàn),目前已經(jīng)實現(xiàn)了用戶管理,自主診斷,醫(yī)師診斷,病例管理等多項功能。
參考文獻:
[1] Falvo D, Holland BE. Medical and psychosocial aspects of chronic illness and disability. Jones & Bartlett Learning; 2017.
[2] Skyler JS, Bakris GL, Bonifacio E, Darsow T, Eckel RH, Groop L, et al. Differentiation of diabetes by pathophysiology, natural history, and prognosis. Diabetes 2017;66:241-55.
[3] Tao Z, Shi A, Zhao J. Epidemiological perspectives of diabetes. Cell Biochem Biophys 2015;73:181-5.
作者簡介:
馬吉聰 (1987-8-2)性別:男 民族:漢 籍貫省市:山東省煙臺市 學歷碩士 主要從事方向研究:人工智能。
(云南師范大學 ?云南 昆明 ?650000)