鄧子云
(1.長沙商貿(mào)旅游職業(yè)技術(shù)學(xué)院經(jīng)濟湘商學(xué)院,湖南 長沙 410116;2.湖南大學(xué)國家超級計算長沙中心,湖南 長沙 410082)
判斷接受醫(yī)學(xué)檢查的人員是否患有某種疾病,常規(guī)做法是醫(yī)生根據(jù)醫(yī)學(xué)檢查結(jié)果的各項指標(biāo)值來作出知識推斷,既要求醫(yī)生對專業(yè)領(lǐng)域非常熟悉,也要求醫(yī)生能清楚各項指標(biāo)在患病時的取值區(qū)間[1]。能否借助大數(shù)據(jù)技術(shù)幫助醫(yī)生進行輔助診斷?即在積累了某種疾病足夠數(shù)量的樣本數(shù)據(jù)及診斷結(jié)果后,可以使用機器學(xué)習(xí)模型來輔助診斷新的樣本數(shù)據(jù)對應(yīng)的人員是否患有某種疾病[2]。
可以用來輔助診斷是否患有某種疾病的機器學(xué)習(xí)模型有很多,如K-近鄰模型、支持向量機模型、邏輯回歸模型等,但是應(yīng)當(dāng)選用哪種模型更優(yōu)呢?自然是認為輔助診斷更為準確的模型更優(yōu)。但是怎么衡量更為準確?能否研發(fā)一種引擎為醫(yī)生自動推薦一種用于疾病輔助診斷的最優(yōu)的機器學(xué)習(xí)模型?本文的研究就致力于研發(fā)這種引擎,并提出選擇何種模型的篩選方法。
1)用人工智能技術(shù)作疾病輔助診斷的研究有很多,研究人員總在試圖尋找更優(yōu)的機器學(xué)習(xí)模型。有的研究人員用相似性分析技術(shù)分析出新的數(shù)據(jù)與已有病例數(shù)據(jù)的相似度來輔助診斷[3],有的研究人員用貝葉斯[4-5]、神經(jīng)網(wǎng)絡(luò)[6]等模型構(gòu)建起診斷的大數(shù)據(jù)機器學(xué)習(xí)模型。這些研究的共同點是都需要有病例和非病例數(shù)據(jù)的積累,需要醫(yī)護人員根據(jù)其認為可以作為判斷依據(jù)的特征數(shù)據(jù)項來收集數(shù)據(jù),再使用一種或多種模型在分析后作出比較,再選擇一種最優(yōu)的模型。也有的研究工作只討論用于疾病輔助診斷的一種模型的參數(shù)調(diào)優(yōu)。要比較機器學(xué)習(xí)模型,需要有衡量機器學(xué)習(xí)模型優(yōu)劣的指標(biāo),主要有準確度、查準率、召回率、F1成績、是否欠擬合、是否過擬合等[7-9]。
2)部分研究人員已研發(fā)了大數(shù)據(jù)智能的疾病輔助診斷系統(tǒng)。有研究人員研發(fā)出了專用于體檢結(jié)果的疾病輔助診斷系統(tǒng)[10],還有研究人員研發(fā)了小型軟件用于牙科疾病[11]、糖尿病[12]、乳腺癌[13]等疾病的輔助診斷,這些系統(tǒng)多是專用系統(tǒng),有少數(shù)系統(tǒng)可以適用于多種疾病的輔助診斷,但采用的機器學(xué)習(xí)模型只支持1種或少量的幾種。
鑒于以上分析,本文并不去尋找新的機器學(xué)習(xí)模型,而是提出篩選機器學(xué)習(xí)模型的方法,再運用這種篩選方法自動為醫(yī)生推薦最優(yōu)的機器學(xué)習(xí)模型。
機器學(xué)習(xí)模型有很多,主要有監(jiān)督、無監(jiān)督、強化學(xué)習(xí)等3類[14]。利用已有病例和非病例數(shù)據(jù)作疾病輔助診斷是典型二分法分類問題,即輔助診斷的結(jié)果為是否患有某種疾病。這種分類問題適宜采用的機器學(xué)習(xí)模型是有監(jiān)督的機器學(xué)習(xí)模型,如邏輯回歸、決策樹、K-近鄰、支持向量機、樸素貝葉斯、神經(jīng)網(wǎng)絡(luò)等[15],如表1所示。這些模型還可以分化出多種子類型的模型,如根據(jù)邏輯回歸模型函數(shù)中的判定邊界函數(shù)可分為1階、2階、…、n階,根據(jù)成本函數(shù)中的正則項,又可分為L1范數(shù)、L2范數(shù)等[16]。
表1 可用于疾病輔助診斷的機器學(xué)習(xí)模型
有如此多可以采用的機器學(xué)習(xí)模型,到底采用哪種好呢?在為醫(yī)生作疾病輔助診斷時,總不能把這些機器學(xué)習(xí)的模型都測試一遍吧?此外,醫(yī)生應(yīng)專注于醫(yī)學(xué)領(lǐng)域的專業(yè)知識研究,機器學(xué)習(xí)的專業(yè)知識應(yīng)由人工智能領(lǐng)域的專家完成,當(dāng)然也可以聯(lián)合完成。但是為了使機器學(xué)習(xí)的各種模型具有普適性,降低醫(yī)生使用機器學(xué)習(xí)模型的難度,最好能為醫(yī)生自動推薦最優(yōu)的機器學(xué)習(xí)模型。
綜合已有研究人員提出的各種評價機器學(xué)習(xí)模型的做法[23-25],下面提出一種通用的篩選出最優(yōu)的機器學(xué)習(xí)模型的方法,步驟如圖1所示。
圖1 篩選出最準確的機器學(xué)習(xí)模型的步驟
假定支持的機器學(xué)習(xí)模型集合為:
M={M1,M2,…,Mn},n≥1
1)用訓(xùn)練準確度和測試準確度篩選機器學(xué)習(xí)模型。
對已有的病例和非病例數(shù)據(jù)按9∶1的比例隨機分組訓(xùn)練數(shù)據(jù)、測試數(shù)據(jù),在作完機器學(xué)習(xí)模型Mi的驗證測試后求得訓(xùn)練準確度和測試準確度,分別計為PAj、TAj。對機器學(xué)習(xí)模型Mi進行10次訓(xùn)練和驗證測試,求得平均訓(xùn)練準確度和平均測試準確度作為機器學(xué)習(xí)模型Mi的訓(xùn)練準確度和測試準確度,分別記為PAi、TAi。
(1)
(2)
其中,i為機器學(xué)習(xí)模型的編號;j為對機器學(xué)習(xí)模型的10次訓(xùn)練中的某次訓(xùn)練的編號。
如果機器學(xué)習(xí)模型Mi同時滿足以下條件1和條件2,則可繼續(xù)進入下一輪的篩選。
條件1:PAi≥tand TAi≥t,t≥0.7
條件2:|PAi-TAi|≤d, 0.1≥d>0
條件1中,t表示用戶設(shè)置的準確度閾值,t默認設(shè)置為0.7,訓(xùn)練準確度PAi和測試準確度TAi均必須大于或等于準確度閾值。條件2表示訓(xùn)練準確度PAi和測試準確度TAi應(yīng)收斂,兩者的差值的絕對值被稱為收斂閾值,其值應(yīng)在d以內(nèi),d默認設(shè)置為0.1。
2)用查準率、召回率和F1成績篩選機器學(xué)習(xí)模型。
對已有數(shù)據(jù)按10%的比例分10次隨機抽取測試數(shù)據(jù),運用已訓(xùn)練出的機器學(xué)習(xí)模型Mi,計算出患病結(jié)果。再對比計算出的患病結(jié)果和實際患病情況,求出10次測試的查準率、召回率、F1成績的平均值作為機器學(xué)習(xí)模型Mi最終的查準率、召回率、F1成績。如表2所示的結(jié)果判斷表示,以幫助求得查準率、召回率。
表2 是否患病的結(jié)果判斷表示
表2中,True/False表示計算出的結(jié)果是否正確;Positive/Negative表示計算出的結(jié)果是1(患病)或0(未患病)。故TruePositive表示正確的計算出患??;FalsePositive表示錯誤的計算出患病;FalseNegative表示錯誤的計算出未患病。查準率、召回率的計算公式如公式(3)和公式(4)所示。
查準率:
(3)
召回率:
(4)
查準率PRi的計算公式中,CTruePositive表示對比計算出的患病結(jié)果和實際患病情況,為TruePositive的個數(shù);CFalsePositive表示對比計算出的患病結(jié)果和實際患病情況,為FalsePositive的個數(shù)。召回率RRi的計算公式中,CFalseNegative表示對比計算出的患病結(jié)果和實際患病情況,為FalseNegative的個數(shù)。
F1成績的計算公式如公式(5):
(5)
如果機器學(xué)習(xí)模型Mi同時滿足條件3則可繼續(xù)進入下一輪的篩選:
條件3:PRi≥rand RRi≥rand F1i≥r,r≥0.7
以上條件,表示查準率、召回率、F1成績均應(yīng)大于或等于閾值r,閾值r被稱為三率閾值,三率閾值r默認設(shè)置為0.7。
3)用帶權(quán)值的總成績計算公式推薦最優(yōu)的機器學(xué)習(xí)模型。
根據(jù)公式(6)計算機器學(xué)習(xí)模型Mi的總成績:
(6)
公式(6)中,w1和w2分別為測試準確度TAi和F1成績F1i的權(quán)值,均默認設(shè)置為0.5。最后,給出總成績最高的機器學(xué)習(xí)模型作為推薦給醫(yī)生的最優(yōu)的機器學(xué)習(xí)模型。
11月28日,ofo創(chuàng)始人兼CEO戴威的一封內(nèi)部信流出,一向高傲倔強的戴威在信中近乎悲壯地說:“哪怕跪著也要活下去?!钡词构蛄?,就能解決問題嗎?去年還被資本和大佬熱捧的共享單車,怎么就變成了燙手山芋?
不失一般性,下面采用TensorFlow的scikit-learn庫中自帶的乳腺癌數(shù)據(jù)集作為輔助診斷分析示例的數(shù)據(jù)集。
從本文數(shù)據(jù)集中的腫瘤病灶造影圖片中提取了10個關(guān)鍵特征,如表3所示。
表3 乳腺癌數(shù)據(jù)集的10個關(guān)鍵特征
此外,根據(jù)這10個關(guān)鍵特征又計算形成了每個特征的標(biāo)準差、最大值,這樣形成了共計30個特征。數(shù)據(jù)集樣本一共569個,其中,陽性樣本(患有乳腺癌)357個,陰性樣本(未患乳腺癌)212個。
在Windows10操作系統(tǒng)下采用Anaconda3(64 bit)的Sypder作為開發(fā)工具,編程語言為Python3.6。軟件開發(fā)和運行的硬件環(huán)境是Thinkpad T460s機型,該機型擁有512 GB固態(tài)硬盤,內(nèi)存為8 GB,CPU為Intel(R)Core(TM)i5-6200U CPU @ 2.30 GHz 2.40 GHz。
篩選機器學(xué)習(xí)模型方法中的參數(shù)值設(shè)置如下:
t=0.9,d=0.02,r=0.9,w1=w2=0.5
為便于對比分析,充分利用scikit-learn庫中已有的機器學(xué)習(xí)模型,這里用8個機器學(xué)習(xí)模型作為篩選的備選模型:
1)1階邏輯回歸模型。
2)普通的K-近鄰模型。K值設(shè)為2。
3)帶權(quán)重的K-近鄰模型。K值設(shè)為2,權(quán)重設(shè)置為“distance”,即按距離設(shè)置權(quán)值。
4)線性的支持向量機模型。
5)2階多項式的支持向量機模型。
6)3階多項式的支持向量機模型。
7)一種高斯核心函數(shù)向量機模型。其中,γ=0.1。
8)一種高斯核心函數(shù)向量機模型。其中,γ=0.5。
經(jīng)過10次模型訓(xùn)練和10次驗證測試后,得出的8種機器學(xué)習(xí)模型的訓(xùn)練準確度和測試準確度如表4所示,繪制8個機器學(xué)習(xí)模型的學(xué)習(xí)曲線如圖2所示。
表4 8個機器學(xué)習(xí)模型的訓(xùn)練準確度、測試準確度和計算時間
(a)1階邏輯回歸
根據(jù)條件1判斷,發(fā)現(xiàn)2階多項式的支持向量機、3階多項式的支持向量機2個學(xué)習(xí)模型不滿足條件,直接排除掉。從圖2(e)、圖2(f)這2個機器學(xué)習(xí)模型的學(xué)習(xí)曲線可以看出,2階多項式的支持向量機模型雖然訓(xùn)練準確度和測試準確度隨學(xué)習(xí)樣本、測試樣本數(shù)的增加而上升,但收斂于0.81左右;3階多項式的支持向量機訓(xùn)練準確度和測試準確度變化不大,且收斂于0.64左右。
根據(jù)條件2,可以排除普通的K-近鄰模型,因為|PAi-TAi|=0.025>0.02;也可以排除帶權(quán)重的K-近鄰模型,因為|PAi-TAi|=0.047>0.02。排除這2個機器學(xué)習(xí)模型的原因是認為學(xué)習(xí)曲線不收斂。從圖8(b)、圖8(c)也可以看出,普通的K-近鄰模型和帶權(quán)重的K-近鄰模型這2個機器學(xué)習(xí)模型的訓(xùn)練準確率曲線和測試準確率曲線中間的間隙相對較寬。
實驗中,通過記錄各種模型的計算時間(訓(xùn)練時間+測試時間),可得到如表4所示的結(jié)果。從表中可見,2階多項式的支持向量機模型花費時間最多,1階邏輯回歸模型花費時間最少。
經(jīng)過上一步驟后,已經(jīng)排除掉4個機器學(xué)習(xí)模型。再對上一步篩選出來的4個機器學(xué)習(xí)模型作10次模型訓(xùn)練和10次驗證測試,得出查準率、召回率、F1成績?nèi)绫?所示。
表5 4個機器學(xué)習(xí)模型的查準率、召回率、F1成績
從模型訓(xùn)練和測試結(jié)果數(shù)據(jù)來看,4個機器學(xué)習(xí)模型都滿足條件3。
經(jīng)計算,4個機器學(xué)習(xí)模型的總成績?nèi)绫?的最后1列所示??梢?,高斯核心函數(shù)向量機模型(γ=0.5)的總成績最高,作為最優(yōu)的機器學(xué)習(xí)模型推薦給醫(yī)生使用。
本文研究工作尚存在以下不足:
1)支持的機器學(xué)習(xí)模型數(shù)量不足。目前僅支持8種機器學(xué)習(xí)模型,應(yīng)當(dāng)加入更多可用的通用機器學(xué)習(xí)模型,如決策樹、樸素貝葉斯、神經(jīng)網(wǎng)絡(luò)等類型的機器學(xué)習(xí)模型。
2)篩選方法還有改進的空間。在應(yīng)對需要長時間的訓(xùn)練時間的機器學(xué)習(xí)模型上應(yīng)改進策略,如4階多項式及更高階的邏輯回歸、支持向量機模型需要訓(xùn)練的時間就較長,可對比發(fā)現(xiàn)相對低階多項式的機器學(xué)習(xí)模型在增加階數(shù)并不能提升準確率的情況下,應(yīng)停止嘗試更高階多項式的機器學(xué)習(xí)模型。
改進的辦法是繼續(xù)開展研究工作,加入更多的可支持的機器學(xué)習(xí)模型,改進機器模型的篩選方法使之更為高效、普適。
本文提出的篩選機器學(xué)習(xí)模型的方法分為用訓(xùn)練準確度和測試準確度篩選機器學(xué)習(xí)模型,用查準率、召回率和F1成績篩選機器學(xué)習(xí)模型,用帶權(quán)值的總成績計算公式推薦最優(yōu)的機器學(xué)習(xí)模型3個步驟來實現(xiàn),可最終篩選出最優(yōu)的機器學(xué)習(xí)模型推薦給醫(yī)生使用。使用篩選方法前,應(yīng)設(shè)置準確度閾值t、收斂閾值d、三率閾值r、測試準確度TAi的權(quán)值w1和F1成績的權(quán)值w2這5個配置參數(shù),也可以采用默認值。
本文提出的篩選機器學(xué)習(xí)模型的方法可用于多種疾病的輔助診斷。從乳腺癌的輔助診斷實例分析來看,最終選擇高斯核心函數(shù)向量機模型(γ=0.5)推薦給醫(yī)生使用,因為這個模型除滿足篩選方法的3個條件外,總成績最高,達到了0.985。
下一步的研究工作將加入更多的機器學(xué)習(xí)模型并改進機器模型的篩選方法,以彌補研究工作的不足。