我有一个算法问题,这可以减少到这项任务:专家系统算法
假设我们有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