专家系统(?)算法

ada*_*amk 6 algorithm expert-system

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

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

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

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

任何对特定算法,相关软件工具甚至特定领域术语的引用都将非常受欢迎.

Loï*_*ier 5

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

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

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

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

你处于树的顶端,所以你有三个可能的选择s,计算每个选项中的疾病数量:pc nc uc.

一方面你有pc另一方面nc,uc你不能说什么(你可以看看你的树的两个级别有一些信息,但现在我们不这样做).

所以最糟糕的情况是,你有pc/ nc + ucpc + uc/ nc,选择s最小化最坏情况(即:一方很多,另一方只有少数).

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

您现在s可以获得第一个问题,并且可以迭代地构建树.