我有一个算法问题可以简化为这个任务:
假设我们列出了n
疾病和m
症状
对于每种疾病d
和症状s
,我们有三种选择之一:
s => d
s => ~d
该算法的目标是创建一个关于症状的是/否问题列表(甚至更好 - 问题的二叉树),它可以根据症状推断出确切的疾病。
非常感谢任何对特定算法,相关软件工具甚至特定领域术语的引用。
答案 0 :(得分:5)
您使用决策树:http://en.wikipedia.org/wiki/Decision_tree_learning
基本上找到最佳树(即在确定疾病之前将问题的平均数量降至最低)是NP难的。
您可以使用贪婪算法,然后尝试对其进行优化(如果需要)。
在每个步骤中,您希望尽可能减少仍然“可能”的死亡数量。
您位于树的顶部,因此您可以为给定的s
提供三种可能的选项,计算每个选项中的疾病数量:pc
nc
{{1} }。
一方面,uc
另一方pc
和nc
你不能说什么(你可以查看你的树的两个级别来获得一些信息,但是现在我们不这样做了。)
最糟糕的情况是,您有uc
/ pc
或nc + uc
/ pc + uc
,请选择最小化最差情况的nc
(即:一方面,另一方面只有少数几个。)
您需要最小化s
。
您现在有了abs( pc - (nc + uc)) + abs ( (pc+uc) - nc)
作为第一个问题,您可以迭代地构建您的树。
答案 1 :(得分:2)
您的域名是否真的是“二元”或事实上,您是否更有可能希望将每个症状/疾病对的相关系数用作数值?这将允许强相关性影响结果而不是弱相关。
如果是这样,那么您可能希望查看分析数据和识别模式的Support Vector Machines。
答案 2 :(得分:1)
问题与Mycin的细菌/抗生素问题非常相似,Mycin是20世纪80年代更普遍的基于规则的专家系统技术的先驱。使用由此产生的工具开发了其他医学诊断程序。
答案 3 :(得分:0)
如果您只需要参考,请查看Russel & Norvig本书。我现在手头没有我的副本,但我明天可以用一些章节建议更新这个答案。
答案 4 :(得分:0)
如果每种疾病只有一些症状,那么您可以使用图形模型对概率进行建模。
http://en.wikipedia.org/wiki/Graphical_model
http://www.cs.ubc.ca/~murphyk/Software/bnsoft.html
但我不知道你是否可以使用图形模型来创建一个问题树。