3

我需要实现对我来说看起来像决策树的东西(尽管搜索该术语会返回有关在决策过程中找出影响因素的帖子——这不是我所追求的)。

我正在构建的系统将制定保修期,以根据某些标准进行产品安装。要求是创建一组可能的向量(例如安装间距、配置文件、位置、材料类型等...),并由用户将这些向量组装成树形结构:

-- Profile == corrugate (warranty = 20 years)
  -- Pitch >= 0 && < 5 (warranty = 2 years)
  -- Pitch >= 5 && < 20 (warranty = 10 years)
-- Environment == coastal && distance <= 500 meters (warranty 2 years)

这是一个简单的案例,但理论上我可以在确定保修期时走这棵树,然后根据提供的信息选择树产生的最低值。

现在我可以明智地看到它被存储为数据库中的树(它是一个 Rails 应用程序)并且只是编写一些方法来遍历树并决定,但我想知道是否有更好的方法来解决这个问题?

当我还实施另一个决策树时,我将不得不在项目后期重复自己,该决策树将决定保修申请是否需要我们的保修团队进一步审核。在这种情况下,每个节点的结果将只是真或假。

看到它是应用程序的一个非常重要的部分,我想第一次得到正确的结构 :) 并且也许在此过程中学习一些新的东西 :)

4

2 回答 2

0

我认为这就是您正在寻找的: Ruby 中的决策树 - 它甚至使用类似的示例,根据一些数据馈送,做出选择加入或退出程序的决定。因此,根据您的示例 - 使用某些标准决定是否可以使用保修。它使用一个名为“决策树”的宝石

希望有帮助。

于 2011-02-01T19:42:34.853 回答
0

我认为一棵树(或多棵树——因为在做出决定之前一次只能比较一个向量元素)可以非常直观地转换这些数据。可能有一种更紧凑的方式来做,但是如果将来有其他人会查看此代码,则树方法将帮助他们维护它。

于 2011-03-12T08:49:43.423 回答