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