麗江師范高等??茖W校教師教育學院 何天榮
不必要的知識(條件屬性)對決策是沒有任何參考價值的。以下通過某些病人的決策表來闡述知識約簡的具體過程。
注:知識約簡只需考慮條件屬性,不需要考慮決策屬性,為了節省篇幅,例1、例2 共用一個知識表達系統,所以本例的表格中也列出了決策屬性。
例1:表1 是某些病人的決策表。
表1
U 是集合{m1,m2,m3,m4,m5,m6,m7,m8},C={頭痛,肌肉痛,體溫},設S=(U,A,V,f)為一知識表達系統,A 是屬性集,即C ∪D,C ∩D 非空,C 表示條件屬性集,D 表示決策屬性集。我們稱具有條件屬性以及決策屬性的知識表達系統為決策表。
設C1={頭痛},C2={肌肉痛},C3={體溫},則:
U/C1={{m1,m2,m3},{m4,m5,m6,m7,m8}},
U/C2={{m1,m2,m3,m4,m6,m8},{m5,m7}},
U/C3={{m1,m4},{m2,m5,m7},{m3,m6,m8}},
U/indC={{m1},{m2},{m3},{m4},{m5,m7},{m6,m8}},
因為U/ind(C-{c1})={{m1,m4},{m2},{m5,m7},{m3,m6,m8}}≠U/indC,所以條件屬性C1在屬性集C 中是必要的,即在診斷病人是否為流感時,{頭痛}是必要考慮的癥狀。
因為U/ind(C-{c2})={{m1},{m2},{m3},{m4},{m5,m7},{m6,m8}}=U/indC,所以條件屬性C2在屬性集C 中是必要的,即在診斷病人是否為流感時,{肌肉痛}是不必要考慮的癥狀。
同理,U/ind(C-{c3})={{m1,m2,m3},{m4,m6,m8},{m5,m7}}≠U/indC,故條件屬性C3在屬性集C 中是必要的,即在診斷病人是否為流感時,{體溫}是必要考慮的癥狀。
所以{C2,C3}是條件屬性集C 的約簡,得出的結論是,在考慮病人是否得流感時,{頭痛}和{體溫}是有必要參考的癥狀,而肌肉痛是沒有參考價值的,即肌肉痛不痛與是否得流感沒有邏輯關系。
在決策表中,對于決策屬性而言,不同的條件屬性的重要性不是完全相同的,例如, 當由臨床癥狀描述病人的情況時,有的條件屬性(癥狀)對于診斷病人的病癥具有更重要的意義。
為了找出某些條件屬性的重要性,具體的處理方法是從表格中剔除某些屬性,再來考查該屬性的分類會如何變化,如果去掉該屬性,分類變化較大,則說明這個條件屬性的重要性高,反之,則說明該條件屬性的重要性低。以下通過醫生診斷病情的實例(決策表見例1)來說明確定條件屬性重要性的具體過程。
綜合以上計算的數據,得到的結論是,在決策表表1 中,在判斷病人是否得流感的診斷中條件屬性的重要性為:{體溫}最重要,其次是{頭痛},{肌肉痛}不重要,沒有參考價值。
本文通過具體實例闡述了條件屬性的約簡方法及條件屬性重要性的確定,對醫生診斷病人的癥狀有一定的參考價值。