【问题标题】:Solution finder algorithm based on answers to a given questionnaire基于给定问卷答案的解决方案查找算法
【发布时间】:2011-04-12 21:36:20
【问题描述】:

考虑以下场景:

  1. 潜在客户会收到一份调查问卷,他们可以在其中为每个问题选择无、一个或多个答案。
  2. 自动算法应根据客户的回答推荐最佳解决方案。

例子:

  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

总结:

  • 对于给定的一组答案,必须推荐解决方案。
  • 由较少数量的答案定义的解决方案应优先于由较大数量的答案定义的解决方案。

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

【问题讨论】:

  • 仅从问题的描述来看,我会选择一系列 if 语句。是什么让您认为您需要一种算法?
  • jdv:如果你有 57 个解决方案、112 个问题和 378 个答案,那将是一个非常长的一系列陈述。
  • @John at CashCommons:是的,我知道,但我不想假设。
  • 这个例子只是问题的简化。我正在设计一个系统,允许管理员定义他们的问卷、解决方案,并定义如何根据答案推荐解决方案。然后,同一系统将向客户提出问题并自动推荐解决方案。

标签: algorithm data-modeling modeling


【解决方案1】:

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

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

您可以在机器学习或神经网络工具箱中找到其中一些内容的代码。由于您没有指定一种语言,我无法指出一种语言,但算法(不是代码)在 Hastie、Tibshirani 和 Friedman 的 The Elements of Statistical Learning 等各种书籍中都有描述。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-06-06
      • 2015-11-20
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多