首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >专家系统算法

专家系统算法
EN

Stack Overflow用户
提问于 2010-11-04 15:31:56
回答 5查看 2K关注 0票数 6

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

假设我们有一个n疾病和m症状的列表。

对于每一种疾病d和症状s,我们有三种选择:

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

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

任何对特定算法,相关软件工具,甚至特定领域术语的引用都将不胜感激。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-04 16:10:02

您可以使用决策树:学习

基本上,找出最优的树(也就是在你能够识别疾病之前所问的问题的平均数量最小化)是NP难的。

你可以使用一个贪婪的算法,然后尝试优化它(如果你需要的话)。

在每一步,你想要尽可能减少死亡的数量仍然是“可能的”。

您位于树的顶端,因此对于给定的s,您有三个可能的选项:计算每个选项中的疾病数量:pc nc uc

一方面是pc,另一边是ncuc是什么也不能说的(您可以查看树的两层来获得一些信息,但目前我们没有这样做)。

因此,在最坏的情况下,您有pc / nc + ucpc + uc / nc,选择最小化最坏情况的s (即:一方很多,另一方只有几个)。

您需要最小化abs( pc - (nc + uc)) + abs ( (pc+uc) - nc)

现在您有了您的第一个问题的s,并且可以迭代地构建树。

票数 5
EN

Stack Overflow用户

发布于 2010-11-04 16:17:15

您的域是否真的是“二进制”,或者实际上,您是否更愿意将每个症状/疾病对的相关系数用作一个数值?这将允许强相关性比弱相关性更多地影响结果。

如果是这样的话,那么您可能想看看分析数据和识别模式的支持向量机

票数 2
EN

Stack Overflow用户

发布于 2010-11-18 12:12:56

这个问题与Mycin的细菌/抗生素问题非常相似,Mycin是上世纪80年代更通用的基于规则的专家系统技术的先驱。还有其他医疗诊断程序的开发与结果工具。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4098307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档