我有一個算法問題,這可以減少到這項任務:專家系統算法
假設我們有n
疾病和症狀m
名單。
對每種疾病d
和症狀s
,我們有三個選項之一:
- 症狀是積極與疾病相關的:
s => d
- ,症狀是負與疾病相關:
s => ~d
- 的症狀是不相關的疾病
算法的目標是創建肯定列表/ no問題就小號ymptoms(甚至更好 - 一個問題的二叉樹),它可以根據症狀推斷確切的疾病。
任何有關特定算法,相關軟件工具以及特定領域專業術語的引用都將非常感謝。
我有一個算法問題,這可以減少到這項任務:專家系統算法
假設我們有n
疾病和症狀m
名單。
對每種疾病d
和症狀s
,我們有三個選項之一:
s => d
s => ~d
算法的目標是創建肯定列表/ no問題就小號ymptoms(甚至更好 - 一個問題的二叉樹),它可以根據症狀推斷確切的疾病。
任何有關特定算法,相關軟件工具以及特定領域專業術語的引用都將非常感謝。
的情況下,您使用的決策樹:http://en.wikipedia.org/wiki/Decision_tree_learning
基本上找到最佳樹(即,將你之前問能識別疾病影響的問題的平均數量最小化)是NP難。
你可以使用貪婪算法,然後嘗試優化它(如果你需要的話)。
在每個步驟中,您都希望儘可能減少仍然「可能」的死亡數量。
你是在你的樹的頂部,讓你有一個給定的s
三種可能的選擇,計算每種選項的疾病數量:pc
nc
uc
。
在一邊,你在其他nc
有pc
和uc
你不能說什麼(你可以看兩個級別的樹有一些信息,但現在我們不這樣做)。
所以最壞的情況下,你有pc
/nc + uc
或pc + uc
/nc
,選擇s
,最大限度地減少最壞的情況下(即:大量的一面,只有在其他一些)。
您需要儘量減少abs(pc - (nc + uc)) + abs ((pc+uc) - nc)
。
您現在有第一個問題s
,您可以迭代構建您的樹。
您的域名真的是'二元'還是實際上,您是否更希望將每個症狀/疾病對的相關係數用作數值?這將允許強相關性影響結果而不是弱相關性。
如果是這樣,那麼你可能想看看Support Vector Machines分析數據和識別模式。
如果您只是需要參考,請參閱Russel & Norvig書。我現在手邊沒有我的副本,但我可以在明天更新這個答案並提供一些章節建議。
如果每種疾病只有少數症狀,那麼您可以使用圖形模型來對概率進行建模。
http://en.wikipedia.org/wiki/Graphical_model
http://www.cs.ubc.ca/~murphyk/Software/bnsoft.html
但我不知道是否可以使用圖形模型來創建的問題樹。
該問題與Mycin的細菌/抗生素問題非常相似,後者是20世紀80年代更廣義的基於規則的專家系統技術的先驅。還有其他醫療診斷程序與所產生的工具一起開發。
我認爲這是類似於'最小測試Set'問題 – 2010-11-04 16:09:03
沒有足夠的信息的選項來排除任何可能性,除非正,負相關性是絕對的。在現實生活中,這絕不會發生。 – 2010-11-04 18:09:12