2010-11-04 124 views
6

我有一個算法問題,這可以減少到這項任務:專家系統算法

假設我們有n疾病和症狀m名單。
對每種疾病d和症狀s,我們有三個選項之一:

  • 症狀是積極與疾病相關的:s => d
  • ,症狀是負與疾病相關:s => ~d
  • 的症狀是不相關的疾病

算法的目標是創建肯定列表/ no問題就小號ymptoms(甚至更好 - 一個問題的二叉樹),它可以根據症狀推斷確切的疾病。

任何有關特定算法,相關軟件工具以及特定領域專業術語的引用都將非常感謝。

+0

我認爲這是類似於'最小測試Set'問題 – 2010-11-04 16:09:03

+0

沒有足夠的信息的選項來排除任何可能性,除非正,負相關性是絕對的。在現實生活中,這絕不會發生。 – 2010-11-04 18:09:12

回答

5

的情況下,您使用的決策樹:http://en.wikipedia.org/wiki/Decision_tree_learning

基本上找到最佳樹(即,將你之前問能識別疾病影響的問題的平均數量最小化)是NP難。

你可以使用貪婪算法,然後嘗試優化它(如果你需要的話)。

在每個步驟中,您都希望儘可能減少仍然「可能」的死亡數量。

你是在你的樹的頂部,讓你有一個給定的s三種可能的選擇,計算每種選項的疾病數量:pcncuc

在一邊,你在其他ncpcuc你不能說什麼(你可以看兩個級別的樹有一些信息,但現在我們不這樣做)。

所以最壞的情況下,你有pc/nc + ucpc + uc/nc,選擇s,最大限度地減少最壞的情況下(即:大量的一面,只有在其他一些)。

您需要儘量減少abs(pc - (nc + uc)) + abs ((pc+uc) - nc)

您現在有第一個問題s,您可以迭代構建您的樹。

2

您的域名真的是'二元'還是實際上,您是否更希望將每個症狀/疾病對的相關係數用作數值?這將允許強相關性影響結果而不是弱相關性。

如果是這樣,那麼你可能想看看Support Vector Machines分析數據和識別模式。

0

如果您只是需要參考,請參閱Russel & Norvig書。我現在手邊沒有我的副本,但我可以在明天更新這個答案並提供一些章節建議。

1

該問題與Mycin的細菌/抗生素問題非常相似,後者是20世紀80年代更廣義的基於規則的專家系統技術的先驅。還有其他醫療診斷程序與所產生的工具一起開發。

http://en.wikipedia.org/wiki/Mycin