解决方案查找器算法基于给定问卷的答案

时间:2010-09-15 20:25:49

标签: algorithm data-modeling modeling

考虑以下情况:

  1. 向潜在客户提供问卷,他们可以为每个问题选择无,一个或多个答案。
  2. 自动算法应根据客户的答案推荐最佳解决方案。
  3. 示例:

    1. 有3种可能的解决方案S1,S2,S3
    2. 问卷包含10个问题Q1,Q2 ... Q10
    3. 每个问题包含可变数量的可能答案,其中:
      • A1.1是问题1的第一个答案。
      • A3.2是问题3的第二个答案。
    4. 我希望能够根据客户提供的答案对以下解决方案进行建模:
      • A1.1,A1.3,A2.1,A3.2 => S1
      • A1.1,A1.3,A2.2 => S1
      • A1.2 => S2
      • A2.2 => S2
      • A1.1,A3.1,A3.2 => S2
      • 任何其他组合=> S3
    5. 总结:

      • 对于给定的答案集,必须建议解决方案。
      • 由较少数量的答案定义的解决方案应优先于由大量答案定义的解决方案。

      我正在寻找一个针对上述问题的现有算法(和数据模型),而不是试图从头开始编写自己的算法。

2 个答案:

答案 0 :(得分:1)

最简单的尝试就是最近邻算法:使用已知解决方案计算一组新答案与每组答案之间的相似性(按答案总数加权,如果这是你想要的),并从一组同样接近的答案中提供最常选择的已知解决方案。

如果效果不好,那么你需要某种更复杂的分类器。您应该查找decision trees(及其扩展名,交替决策树和随机森林)和Bayesian classifiers等。

您可以在机器学习或神经网络工具箱中找到其中某些内容的代码。由于你没有指定一种语言,我不能指出一种语言,但算法(不是代码)在Hastie,Tibshirani和Friedman的各种书籍中都有描述,如“统计学习的元素”。

答案 1 :(得分:0)

对我而言,它似乎更像是一个声明性的logical program,然后是一个组合或统计问题。只需撤消关于从给定答案中选择哪种解决方案的陈述并替换“=>”与“: - ”,你得到Prolog。 这些语句是Horner条款,可以使用SLD resolution算法解决,因为您的规则很简单。有许多货架解算器可以绑定不同的语言,所以你可以选择其中一些。