专家系统(?)算法

时间:2010-11-04 15:31:56

标签: algorithm expert-system

我有一个算法问题可以简化为这个任务:

假设我们列出了n疾病和m症状 对于每种疾病d和症状s,我们有三种选择之一:

  • 症状与疾病呈正相关:s => d
  • 症状与疾病呈负相关:s => ~d
  • 症状与疾病无关

该算法的目标是创建一个关于症状的是/否问题列表(甚至更好 - 问题的二叉树),它可以根据症状推断出确切的疾病。

非常感谢任何对特定算法,相关软件工具甚至特定领域术语的引用。

5 个答案:

答案 0 :(得分:5)

您使用决策树:http://en.wikipedia.org/wiki/Decision_tree_learning

基本上找到最佳树(即在确定疾病之前将问题的平均数量降至最低)是NP难的。

您可以使用贪婪算法,然后尝试对其进行优化(如果需要)。

在每个步骤中,您希望尽可能减少仍然“可能”的死亡数量。

您位于树的顶部,因此您可以为给定的s提供三种可能的选项,计算每个选项中的疾病数量:pc nc {{1} }。

一方面,uc另一方pcnc你不能说什么(你可以查看你的树的两个级别来获得一些信息,但是现在我们不这样做了。)

最糟糕的情况是,您有uc / pcnc + uc / pc + uc,请选择最小化最差情况的nc(即:一方面,另一方面只有少数几个。)

您需要最小化s

您现在有了abs( pc - (nc + uc)) + abs ( (pc+uc) - nc)作为第一个问题,您可以迭代地构建您的树。

答案 1 :(得分:2)

您的域名是否真的是“二元”或事实上,您是否更有可能希望将每个症状/疾病对的相关系数用作数值?这将允许强相关性影响结果而不是弱相关。

如果是这样,那么您可能希望查看分析数据和识别模式的Support Vector Machines

答案 2 :(得分:1)

问题与Mycin的细菌/抗生素问题非常相似,Mycin是20世纪80年代更普遍的基于规则的专家系统技术的先驱。使用由此产生的工具开发了其他医学诊断程序。

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

答案 3 :(得分:0)

如果您只需要参考,请查看Russel & Norvig本书。我现在手头没有我的副本,但我明天可以用一些章节建议更新这个答案。

答案 4 :(得分:0)

如果每种疾病只有一些症状,那么您可以使用图形模型对概率进行建模。

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

http://www.cs.ubc.ca/~murphyk/Software/bnsoft.html

但我不知道你是否可以使用图形模型来创建一个问题树。