摘要:計算機輔助診斷是當前人工智能和信息技術研究的熱點之一。針對計算機輔助中醫診斷的特殊性,結合ATMS這一人工智能推理系統,以脾虛證的計算機輔助診斷研究為契機,討論了運用ATMS進行中醫輔助診斷規則的表示、挖掘、查詢和更新的問題。
關鍵詞:計算機輔助診斷; 脾虛證; ATMS
中圖法分類號:TP181文獻標識碼:A
文章編號:1001-3695(2007)01-0269-03
傳統中醫藥學是我們中華民族的瑰寶。但是,當前我國中醫藥學發展存在著一些突出的問題。雖然積累了海量的臨床醫療數據,但缺乏有效的利用。中醫師診斷疾病、開處方時更多的是根據經驗的推測,而不是通過對已有臨床數據進行科學的分析和計算。利用信息技術,特別是人工智能和數據挖掘技術,在臨床醫療數據的基礎上挖掘出相對客觀的診斷標準,而且該標準可以隨著疾病臨床診斷經驗的增長而不斷改進和趨于完善,這對于提高中醫疑難疾病診斷的客觀性和科學性,降低誤診率有著積極的現實意義。
ATMS(Assumptionbased Truth Maintenance System)是由De Kleer[1]提出的一種基于假設的真值維護系統。它通常與問題求解器相結合,每當收到問題求解器傳遞的一個新的信息,便增量地計算每個數據所依賴的假設,實現信念修改和非單調推理。ATMS的基本數據結構是節點,每個節點表示問題求解器產生的數據。節點由三部分組成,即問題求解器的數據、用來表示數據成立的假設條件的標記和支持這些數據的證實。本文把ATMS的節點記作以下形式:
<數據>:<標記>:<證實>
數據、標記和證實三部分都是一個集合,其中標記和證實的元素同時也是集合。數據的元素之間用逗號隔開。標記的元素之間用分號隔開,每個元素用一組大括號括起,表示一個環境,代表著數據最終依賴的假設集,環境之間是析取關系。標記由ATMS自動維護。證實的元素也是集合,每個集合用一組大括號括起,它由問題求解器提供,表示用于支持數據的推斷中的前項,證實的集合之間也是析取關系,用分號隔開。
例如有如下節點:
該節點在問題求解器提交證實:D∨(E∧F)x∧y時被加入,表示問題求解器產生了數據x∧y,它可以由D或者E∧F推出。經過ATMS的計算,得出x∧y歸根結底是依賴于假設A∧B或者C的,所以集合{A,B}和集合{C}構成了該節點的標記。
脾虛證[2]是人體常見的一種胃腸道疾病,主要癥狀有:胃納減少或食欲差、大便溏或爛、腹脹、體倦乏力、舌質淡、舌體胖或有齒印。關于脾虛證的診斷規范化研究是當前中醫界的一個研究熱點。本文正是以脾虛證診斷規則的標準化研究為契機,提出將ATMS運用于計算機輔助中醫診斷的理論和方法。
1運用ATMS節點表示中醫診斷規則
由于中醫的診斷過程一般采用的是傳統的望、聞、問、切方法,對病人癥狀的描述多停留在定性判斷的水平,如發高熱、發低熱、腹瀉、脈濡緩等。所以我們可以很方便地為診斷規則中的癥狀類型和癥狀表現編碼,從而將規則表示成ATMS節點的形式,便于計算機識別和運算。具體方法如下:
(1)建立屬性名稱的代碼—值映射表和屬性值的代碼—值映射表,將規則轉換成形式化的數學公式。由于我們研究的規則均針對脾虛證而言,所以為簡單起見,規則中均將后件省略。這里的屬性名稱實際上是指診斷規則中出現的癥狀類型,例如舌苔、腹痛性質等;屬性值是指對應于癥狀類型所表現出來的具體癥狀表現,例如舌苔白、腹隱痛等。所以,如果我們有以下表示脾虛證的診斷規則:舌苔白,胃納減少并且腹隱痛,并且制定好代碼映射關系:舌苔為A;腹痛性質為B;胃納情況為C;舌苔白為A1;腹隱痛為B3;胃納減少為C2,那么這條規則就變成:A1∧B1∧C2。
(2)將上一步得到的形式化規則的屬性名稱部分作為ATMS節點的數據,屬性值部分作為ATMS節點的標記,并忽略證實部分,組成ATMS節點。例如規則A1∧B1∧C2對應的ATMS節點為
2從中醫臨床數據庫中挖掘診斷規則
至此,我們解決了診斷規則在計算機中的表示問題。但如何得到這些規則,就需要我們設計一定的算法,從記錄了大量病人癥狀信息的中醫臨床數據庫中挖掘出這些客觀的診斷規則,以指導中醫師的臨床實踐。我們經過研究,結合以前工作的成果,設計出以下挖掘方法:
(1)按照上一節制定的屬性名稱的代碼—值映射表和屬性值的代碼—值映射表,將整個中醫臨床數據庫轉換成代碼形式,以方便挖掘算法的運算。圖1以兩條記錄為例演示了轉換的過程和結果。
(2)運用文獻[3]提出的算法對上一步得到的事務數據庫進行關聯規則挖掘,得到帶復合項的診斷規則,并按照本文第1節的方法將規則轉換成ATMS節點的形式。
3運用基于ATMS的知識庫維護系統對現有規則進行查詢、推演和更新
以上我們得到了從中醫臨床數據庫中挖掘出來的帶復合項的規則。但要求這些規則直接指導中醫師的臨床醫學決策還有一定的困難。可能的原因有:規則數目太多,無法有效運用;不能動態適應最新臨床經驗的變化等。基于此,我們運用基于ATMS的知識庫維護系統[4]和非單調推理功能,設計了對現有規則進行查詢、推演和更新方法。所有這些方法均是基于用ATMS節點表示的規則集上的運算。為了闡述和舉例方便,假設我們現在針對脾虛證臨床數據庫挖掘得到了以下診斷規則(規則前的字母標號是為了下文闡述方便而添加):
C:
E::<{a1, b1}>F::<{a1, c2}; {a1, c1}; {a2, c3}>
G::<{a2, d4∨b2}>H::<{b1, c2}>
I:
3.1規則的查詢
基于當前得到的規則我們可以進行以下三種查詢,每種查詢對于中醫臨床輔助診斷都有重要的現實意義:
(1)直接求當前ATMS的擴展[5],可以得到在所有規則中所出現的癥狀類型的集合。例如,ATMS的擴展為{a, b, c, d}。此查詢在臨床上的意義就是確診某疾病的所有癥狀類型集。以脾虛證為例,醫師通過運行此查詢,可以在臨床數據庫所含的四十多種癥狀類型中,得知哪些癥狀類型對脾虛證的確診起著關鍵性的作用。
(2)通過ATMS知識庫的知識查詢功能,可以計算某一條新的記錄是否可能會導致目標屬性(即疾病類型)。繼續上例,向ATMS提交環境{a2, c3, d4},ATMS通過簡單的子集測試運算,就可以由此環境推出目標屬性。從脾虛證診斷的臨床意義來說,此查詢可以對一個新的病例進行分析,得出它是否可以確診為脾虛證的判斷參考。(3)通過ATMS知識庫的知識查詢功能,由節點數據求其標記,就可以從癥狀類型組合得出癥狀表現組合。繼續上例,我們想知道屬性組{a, b, c}是否是決定目標屬性的關鍵屬性,節點J直接表明了{a, b, c}的確是關鍵屬性,其具體取值為a=1,b=1,c=2。臨床上,當我們想知道某些癥狀類型的組合是否可以成為確診脾虛證的決定性癥狀,如果是,這些癥狀的表現分別是什么的時候,就可以運用此查詢、驗證和完善醫師的判斷。
3.2規則的演化和更新
我們運用ATMS知識庫維護系統和非單調推理功能,使得在新的知識不必進入數據庫,并且不必重新運行挖掘算法的情況下,隨著臨床經驗的逐漸豐富和完善,可以不斷地演化和更新診斷規則,保證輔助診斷規則的科學性、客觀性和靈活性。
有兩種形式的知識更新可用于診斷規則的演化:
(2)經過最新的臨床實踐證明,得出肯定不會導致目標疾病的癥狀表現的集合,它同樣也會引起現有規則發生重大變化。可以運用ATMS知識庫維護系統的更新知識功能,向ATMS增加Nogood(矛盾節點)來實現此功能。Nogood的增加將刪除現有節點中所有含有最新Nogood的環境,甚至引起整個節點的刪除,從而更新診斷規則的內容,使診斷規則可以快速反映最新的臨床診斷反例,減少后續診斷的誤診率。如上例,ATMS節點狀態:
如果我們把可以反映診斷標準變化的一些新的病例輸入中醫臨床數據庫,然后重新運行挖掘算法,有可能得不到我們所需要的最新規則。這是因為所有規則均需要一個支持度閾值,只有那些在整個臨床觀察表中占據一定數量,其比例超過支持度閾值的病例才能使這些病例反映出來的規律成為挖掘算法結果的一部分。我們最新病例的規模有可能還達不到這樣的數量級,或者最新的知識主要是根據醫學上的理論研究和論證得來,這樣暫時就更會缺乏相應的病例。所以,我們采用將最新的診斷知識直接運用于已有規則的方法,運用ATMS知識庫管理功能對現有規則進行演化,從而有效而及時地使最新的診斷標準能如實反映現實情況,使疾病診斷日趨科學化。
4總結
本文針對中醫臨床數據庫特點和計算機輔助中醫診斷的特殊要求,以脾虛證的中醫輔助診斷應用為切入點,討論了使用ATMS節點來表示診斷規則,以及如何運用ATMS對挖掘出來的診斷規則進行查詢和更新的問題,把人工智能技術結合到中醫的輔助診斷應用研究中,具有一定的理論創新意義和實踐意義。
參考文獻:
[1]De Kleer J. A Truth Maintenance System[J].Artificial Intelligence, 1979, 12(3): 231272.
[2]邱向紅.脾虛證診斷規范化研究概述[J].廣州中醫藥大學學報,1997,14(1):58.
[3]戴浩,方思行.中醫輔助診斷中帶復合項的關聯規則挖掘算法[J].暨南大學學報,2005,26(3):337.
[4]方思行.基于ATMS的知識庫維護系統與開放邏輯的實現[J]. 計算機科學,1995,22(1):1013.
[5]De Kleer J. Extending the ATMS[J]. Artificial Intelligence,1986,28:163196.
[6]De Kleer J. A General Labeling Algorithm for Assumptionbased Truth Maintenance[C]. The AAAI’88, 1988.188192.
作者簡介:
戴浩(1979 ),男,助教,碩士,研究方向為數據庫與數據挖掘;方思行(1946),男,教授,碩士生導師,研究方向為人工智能、時態數據庫與數據挖掘。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文