于霄 陳偉建 李嶄 方然
摘要 基于數(shù)據(jù)挖掘領(lǐng)域的分類算法成功設計并實現(xiàn)了醫(yī)療診斷專家系統(tǒng)的推理機,并將應用于推薦系統(tǒng)中的潛在因子算法的思想用于改進分類算法。對幾種經(jīng)典分類算法在醫(yī)療診斷專家系統(tǒng)推理機中的應用進行了研究;結(jié)合醫(yī)療診斷中用戶個體差異對分類準確度影響極大的實際情況,使用影響因子改進了組合分類算法。實驗結(jié)果表明基于改進的組合分類算法的醫(yī)療診斷專家系統(tǒng)推理機,實現(xiàn)了對疾病的診斷,對于現(xiàn)實醫(yī)療初診具有很大意義。
關(guān)鍵詞 分類算法; 數(shù)據(jù)挖掘; 專家系統(tǒng); 潛在因子; 醫(yī)療診斷
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2018)09-0024-03
Abstract: Based on the classification algorithm in the field of data mining, a reasoning machine of intelligent medical diagnosis expert system was designed and realized successfully. And the idea of the potential factor algorithm in the recommendation system is used for improvement. The application of several classical classification algorithms in reasoning machine of medical diagnosis expert system is studied. Combined with the actual situation in which the individual differences in the medical diagnosis affect the accuracy of the classification significantly, the combined algorithm is improved by using the latent factor. The experimental results show that the reasoning machine of medical diagnosis expert system based on improved combined classification algorithm has realized the diagnosis of diseases, which is of great significance to the reality medical diagnosis.
Key words: classification algorithm; data mining; expert system; latent factor; medical diagnosis;
1 引言
分類是一種重要的數(shù)據(jù)分析方法,分類算法是解決分類問題的方法,是數(shù)據(jù)挖掘、機器學習和模式識別中一個重要的研究領(lǐng)域。分類算法通過對已知類別訓練集的分析,從中發(fā)現(xiàn)分類規(guī)則,以此預測新數(shù)據(jù)的類別,在診斷預測系統(tǒng)的開發(fā)中應用廣泛。
專家系統(tǒng)是一個具有專業(yè)知識與經(jīng)驗的計算機程序系統(tǒng),應用人工智能技術(shù)和計算機技術(shù),根據(jù)某特定領(lǐng)域?qū)<姨峁┑闹R和經(jīng)驗,進行推理和判斷,模擬人類專家的決策過程,從而解決需要人類專家親身處理的專業(yè)問題。而專家系統(tǒng)的核心就是推理機部分。
對于目前醫(yī)療診斷領(lǐng)域的專家系統(tǒng)推理機的研究,國內(nèi)外多以針對特定疾病進行二分類判斷開發(fā),過于狹窄不適應當前的實際應用需求,存在的實現(xiàn)的系統(tǒng)多為基于固定的規(guī)則判斷,無法學習進化,完全靠大量人工專家進行維護改善,最重要的是在醫(yī)療診斷領(lǐng)域忽視了用戶個體差異帶來的及其重大的影響,其診斷準確性并不可觀。研究了各種經(jīng)典分類算法在醫(yī)療診斷專家系統(tǒng)中的應用,改進了分類算法,并基于國內(nèi)外臨床醫(yī)學經(jīng)典著作,結(jié)合職業(yè)醫(yī)師建議建立了可靠的知識庫,實現(xiàn)了準確可靠魯棒的醫(yī)療診斷專家系統(tǒng)推理機。
2 醫(yī)療診斷專家系統(tǒng)推理機
專家系統(tǒng)作為以智能計算機程序為核心的系統(tǒng),其系統(tǒng)內(nèi)蘊含有專業(yè)領(lǐng)域?qū)<业闹R,模擬人類專家的決策過程,解決復雜問題。專家系統(tǒng)由人機交互界面、知識庫、推理機、解釋器、綜合數(shù)據(jù)庫、知識獲取構(gòu)成。其核心為知識庫和推理機。推理機針對當前輸入問題匹配知識庫中的知識,結(jié)合內(nèi)置算法對問題進行求解,過程如同人類專家的解決問題流程一樣。改進后的分類算法被應用于推理機模塊。
3 分類算法在推理機中的應用
3.1 分類算法的發(fā)展
分類是數(shù)據(jù)挖掘的一個重要概念。分類作為一種重要的數(shù)據(jù)分析形式,提取刻畫重要數(shù)據(jù)類的模型。這種模型成為分類器,預測分類的類標號[1]。
從最早的線性判別分析到?jīng)Q策樹分類再到神經(jīng)網(wǎng)絡。分類的方法數(shù)不勝數(shù),對于分類器的評價指標也有很多,在不同的應用環(huán)境和不同的數(shù)據(jù)集下應當將不同的指標作為評價一個分類器的依據(jù)。
3.2 經(jīng)典分類算法的效果對比與分析
對一套皮膚科疾病數(shù)據(jù)集合使用經(jīng)典的分類算法進行分類。此數(shù)據(jù)集包含內(nèi)科各種常見疾病,是由專家和研究人員共同從真實病例中提取得到I-S向量集,測試用數(shù)據(jù)集共有200條數(shù)據(jù)。對每種算法均采用10折交叉驗證(10-fold Cross-validation)。對比結(jié)果如圖1所示:
由于訓練所使用的數(shù)據(jù)集皆為人類專家認可的正樣本。故正負樣本分布得極不均勻,存在數(shù)據(jù)標簽傾斜,此時使用F-Measure和Recall來評判分類器性能比ROC-AUC更有意義:則貝葉斯算法和近鄰算法以及決策樹算法C4.5相比其他分類算法有著明顯的優(yōu)勢??紤]到實際應用下,近鄰算法的龐大計算量并不適合本系統(tǒng),而組合分類方法對分類算法的提升,以及大量理論及實驗表明決策樹的優(yōu)化相比于貝葉斯算法對于過擬合問題有更方便地改善[3]。故本系統(tǒng)采取決策樹算法作為基礎算法進行改進。
4 潛在因子在醫(yī)療診斷中的應用
4.1 潛在因子算法
潛在因子算法是在NetFlix的推薦算法競賽中獲獎的算法,最早被應用于電影推薦中。用戶-潛在因子矩陣Q,表示不同的用戶對于不用元素的偏好程度。潛在因子-電影矩陣P,表示每種電影含有各種元素的成分。由:
[R=QPT] (1)
可得每個用戶對每部電影的評分矩陣[R],從而進行推薦。
4.2 用于醫(yī)療診斷的潛在因子的挖掘
在醫(yī)療診斷中諸如性別,年齡,地理位置,季節(jié)等因素導致的個體差異對于診斷的影響不可忽視,在算法中考慮這些潛在因子的影響就能更好地應用在醫(yī)療診斷的場景中。潛在因子主要來源于臨床醫(yī)學資料以及專家的領(lǐng)域知識的經(jīng)驗總結(jié)。同時曾勇對電子病歷的挖掘研究證明對病例進行關(guān)聯(lián)規(guī)則分析是可行的[5]。故通過對大量病例進行關(guān)聯(lián)規(guī)則分析也可以作為各種疾病隱藏的潛在因子的來源。
本文采用XX市某三甲醫(yī)院皮膚科專家一年的診斷記錄進行關(guān)聯(lián)規(guī)則分析,使用Apriori算法進行挖掘,例如:
{丘疹性蕁麻疹} => {兒童,秋季}(支持度=0.04186, 置信度=0.557241)
從而我們認為丘疹性蕁麻疹的潛在因子有秋季和兒童,這些都和專家的知識以及醫(yī)學資料的描述不謀而合。挖掘大量數(shù)據(jù)分析得到的關(guān)聯(lián)規(guī)則結(jié)合專家知識從而可以建立各種疾病的潛在因子的知識庫用于改進算法。
5 基于潛在因子的組合分類算法
5.1 數(shù)據(jù)集中的數(shù)據(jù)對象
系統(tǒng)中存在數(shù)據(jù)集的模塊包括知識庫和數(shù)據(jù)庫。知識庫中的數(shù)據(jù)來源由領(lǐng)域?qū)<彝ㄟ^知識獲取模塊輸入,如此得到的數(shù)據(jù)可以保證其準確性、一致性以及可信性。采用數(shù)據(jù)挖掘中最經(jīng)典的屬性向量來存儲數(shù)據(jù)對象。
本系統(tǒng)中的屬性向量包含illness-symptom向量以及對算法優(yōu)化所使用的user-latent factor向量和illness-symptom向量。illness-symptom向量,意為疾病-癥狀屬性向量,以下均簡稱為I-S向量,由數(shù)值屬性以及標稱屬性組成。某疾病的每種癥狀作為數(shù)值屬性,而最后一個標稱屬性為疾病名稱本身:I-S向量的結(jié)構(gòu):(S1,S2,...,Sn,I)。例如,喉炎擁有如下常見的癥狀:聲嘶,中度咳嗽,咽癢,咽痛以及輕度淋巴結(jié)腫大。由專家選擇癥狀描述并根據(jù)輕重程度量化來得到I-S向量的數(shù)值屬性,最后以喉炎作為標稱屬性得到I-S向量:{1 100,2 100,3 100,11 100,12 70,15 10,42 "喉炎"}。數(shù)據(jù)集中擁有大量的數(shù)據(jù)對象,從而保證了訓練出的分類器的質(zhì)量。本文使用由大量真實病例整理,提取I-S向量作為研究所用數(shù)據(jù)集。
5.2 使用潛在因子優(yōu)化組合分類結(jié)果
潛在因子對于提高醫(yī)療診斷系統(tǒng)準確度的影響是不可忽略的,再結(jié)合4.1小節(jié)中運用組合分類思想,從而可以改進出一種適用于醫(yī)療診斷專家系統(tǒng)推理機的組合分類算法。系統(tǒng)維護用戶-潛在因子矩陣(user-latent factor)陣,記為U陣,如表1所示:
隨著時間和用戶的特定行為矩陣會變化:用戶自身信息的變化,地理遷移,重大疾病,接種疫苗等嚴重影響診斷的行為都會使該用戶的潛在因子向量發(fā)生改變。
如4.2小節(jié)所述,挖掘大量數(shù)據(jù)分析得到的關(guān)聯(lián)規(guī)則結(jié)合專家知識所建立的知識庫中維護著疾病-潛在因子矩陣(illness-latent factor)陣,記為I陣,如表2所示:
參考4.1小節(jié)則應由 [D=UIT]可得診斷結(jié)果陣D,表示用戶對不同疾病的潛在偏向程度。事實上因為因子眾多,并且對于單一疾病而言,其與大部分因子并沒有關(guān)聯(lián)性,導致矩陣十分稀疏。為了避免耗時的分解降維處理,本算法應用時由單用戶查找U陣得到向量R,由組合分類器各個子分類器的結(jié)果篩選I陣得到一個規(guī)模很小的I陣的子矩陣P,從而將之前的[D=UIT]運算簡化成了將單一的向量R和矩陣P的運算:[D=RPT]。由于矩陣P是之前各個子分類器結(jié)果的并集,其規(guī)模很小,故不會得到稀疏矩陣,故不用進行分解這一效率低耗時高的過程。然后得到一個診斷向量[D],對各維度的數(shù)值進行降序排序,先序的診斷結(jié)果擁有更高的置信度。
5.3 改進后算法流程詳述
5.3.1 基分類器算法
設S是s個數(shù)據(jù)樣本的集合,m個不同類C,[si]是[Ci]的樣本數(shù),[pi]是任意樣本屬于[Ci]的概率:設非類別屬性A的取值集[{a1,a2,...,av}] ,依據(jù)A將S劃分為v個子集:[Sj]為在A上值為[aj]的樣本。[sij]是[Sj]中[Ci]的樣本數(shù),則A劃分S的熵由式(2)給出[9]:
信息增益比率定義如式(3)所示:
基分類器采用決策樹算法,訓練流程如下:
(1)生成結(jié)點node;
(2)如果D中樣本全屬于同一類別C,則將node標記為C類葉結(jié)點;
(3)如果A為空或D中所有樣本在A上均取值相同,則將node標記為葉結(jié)點,其類別標記為D中最頻繁的類;
(4)從A中選擇最優(yōu)劃分屬性a*:使式(3)取得最大值;
(5)遍歷a*:對每一個a*_v為node生成一個分支;[Dv]表示D集合中在a*上取值為a*_v的樣本子集;若[Dv]為空則將分支結(jié)點標記為葉結(jié)點,其類別標記為D中最頻繁的類;否則,以treeGenerate([Dv], A\{a*})為分支結(jié)點。
輸出:單棵決策樹
5.3.2 改進的組合分類器算法
基于4.3小節(jié)中所述,改進組合分類算法流程。其中調(diào)用函數(shù)接口定義如下:
treeGenerate(D,A):4.4.1中基分類器的決策樹的訓練算法;
baseClassifier(I):使用treeGenerate(D,A)訓練的模型對外供調(diào)用的接口,其輸入為癥狀向量I,返回分類器的分類結(jié)果。
輸入:疾病大科分類 A 病癥屬性 I 用戶屬性 U
組合的基分類器數(shù) N
過程:function improvedClassifier(A, I, U, N)
(1)如果A||D||U||N為空,判定為非法輸入;
(2)根據(jù)A調(diào)用相應訓練好的分類器進行分類,調(diào)用N次baseClassifier(I),將N次分類返回的結(jié)果存儲為集C
(3)遍歷C:以C中每個c為索引查找illness-latent factor陣,將C的所有查找的結(jié)果即illness-latent factor陣的子矩陣存為P陣;
(4)以U為索引查找user-latent factor陣結(jié)果存為向量R;
(5)代入[D=RPT];
(6)將[D]向量各個維度的值從大到小降序排序。
輸出:最大的值對應的疾病為分類結(jié)果
5.4 改進前后的組合分類結(jié)果對比分析
下面對200例皮膚科患者病例分別使用C4.5算法和5.3中所述的改進算法進行了分類診斷,對比結(jié)果如圖2所示:
如3.2小節(jié)中所述在這個場景中我們更加關(guān)注Recall和F-Measure的指標。實驗結(jié)果表明改進后的算法比C4.5算法有更優(yōu)秀的表現(xiàn):改進后的分類器的召回率Recall達到0.689相比C4.5的0.578有了極大的提升,F(xiàn)-Measure也由0.540提升到了0.642。運行效率上由于I陣的規(guī)模小,且對于每次診斷是針對單個用戶向量R的,則實際上每次[D=RPT]運算在如今計算機運算能力下都是很輕松的,且各個基分類器在實際軟件系統(tǒng)的實現(xiàn)中可運用多線程技術(shù)來并行計算的得到結(jié)果,故由潛在因子改進的組合分類算法的優(yōu)化代價完全可以接受。
6 結(jié)束語
本文所提出的應用于醫(yī)療診斷專家系統(tǒng)推理機的一種由潛在因子改進的組合分類算法,解決了單顆決策樹易過擬合,導致泛化能力不強的問題,同時將個體差異對于診斷分類的強烈影響通過潛在因子的方式用于為組合分類器結(jié)果進行加權(quán)優(yōu)化,最后排序后得到有最高置信度的分類結(jié)果。由潛在因子改進的組合分類算法能更好地應用在醫(yī)療診斷場景中,且實現(xiàn)了對常見疾病的診斷,對于現(xiàn)實醫(yī)療診斷具有極大的參考意義,算法性能穩(wěn)定、魯棒性強,較好地滿足了使用要求。
參考文獻:
[1] Han J, Kamber M, Pei J. Data Mining: Concepts and Techniques: Concepts and Techniques[J]. Data Mining Concepts Models Methods & Algorithms Second Edition, 2011, 5(4):1 - 18.
[2] Yan R, Ma Z, Zhao Y, et al. A decision tree based data-driven diagnostic strategy for air handling units[J]. Energy & Buildings, 2016, 133:37-45.
[3] Holzinger A. Data Mining with Decision Trees: Theory and Applications[J]. Online Information Review, 2015(3).
[4] Gorunescu F. Introduction to Data Mining[J]. Data Analysis in the Cloud, 2016, 22(6):1-25.
[5] 曾勇. 基于關(guān)聯(lián)規(guī)則的電子病歷挖掘的應用研究[D]. 廣州:華南理工大學, 2012.
[6] Zhao Y, Wen J, Wang S. Diagnostic Bayesian networks for diagnosing air handling units faults – Part II: Faults in coils and sensors[J]. Applied Thermal Engineering, 2015, 90(5):145-157.
[7] Breiman L I, Friedman J H, Olshen R A, et al. Classification and Regression Trees (CART)[J]. Biometrics, 2015, 40(3):358.
[8] 孟杰. 隨機森林模型在財務失敗預警中的應用[J]. 統(tǒng)計與決策, 2014(4):179-181.
[9] 熊赟, 朱揚勇, 陳志淵. 大數(shù)據(jù)挖掘[M]. 上海:上海科學技術(shù)出版社, 2016.
[10] Smith T C, Frank E. Introducing Machine Learning Concepts with WEKA[J]. Methods in Molecular Biology, 2016, 1418:353.