【问题标题】:Automated buiding of decision tree from function从函数自动构建决策树
【发布时间】:2019-10-20 01:14:00
【问题描述】:

(对不起,如果这个问题感觉有点头脑风暴)

我有一个函数F,参数a_1, a_2...b 输出x。 该函数还由一系列p_1, p_2... 参数定义,这些参数在我的工作中可能会发生变化。

F(a_1, a_2... , b) = x

给定a_1, a_2...,我想构建一个决策树算法,为函数F 找到最小化x 的b。我想自动化这个决策树构建器,以适应F(通过p_1, p_2...)的变化。

自动化过程非常重要,因为实际上a_x 可以是任何东西(整数、连续数、离散参数),而F 是高度非线性的。

我的一个直觉想法是构建假样本并在数据集上学习决策树,这将为我提供所需的决策树。然而,这似乎过于复杂,因为我可以访问产生这个问题的函数。

如果有人有任何想法或向我指出任何可以帮助我解决问题的方向,我们将不胜感激。

编辑:

我正在改变我的问题范围:

假设从最初的问题你得到了函数F',它将a_1, a_2... 映射到bb 是离散的)。是否有一种算法试图通过以a_1, a_2... 为节点的决策树来“简化”F'

例如一个会说if a_2 = "type2" and a_1 < 6 -> 3等的决策树。我不是在寻找精确的分区,一个合适的估计就足够了。

我正在考虑使用 ML 算法使用由 F' 的蒙特卡罗模拟生成的假样本来构建决策树。这有意义吗?

【问题讨论】:

  • 如果可以评估函数,为什么不直接使用标准优化方法?
  • a_i 已修复,您必须仅将 F 视为 b 的函数(真的吗?)。然后如上所述,您可以使用经典的一维最小化方法
  • 我将尝试扩展问题以包含一个简化的示例,其想法是 F 根本不是线性的(而 b 是离散的)。我已经好几年没有做优化问题了,但感觉非线性会带来麻烦,对吧?
  • 不,有一些众所周知的非线性优化方法。
  • “复杂函数”会误导任何知道mathematical sense of this term的人

标签: algorithm automation decision-tree


【解决方案1】:

你的想法是有道理的,如果你想要F' 的快速和贪婪的近似,但你应该注意正确地实现它:

1) 当您声明变量可能是分类变量和数值变量时,您应该考虑对变量进行分箱的方式。对于高度非线性函数,广泛接受的线性分箱不会是optimal

2) 由于决策树难以处理相关变量,一些预处理可能有助于提升问题。尝试从 PCA 开始。

至于使用真实数据或从原始函数生成数据,我认为应该没有显着差异。如果您发现在某些“区域”中您的数据代表性不足,您可能希望在这里和那里增加初始训练数据集。

【讨论】:

猜你喜欢
  • 2016-07-27
  • 2021-04-22
  • 2015-09-09
  • 2012-12-19
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
  • 2021-03-02
  • 2011-04-27
相关资源
最近更新 更多