通过功能自动构建决策树

时间:2019-06-04 13:33:42

标签: algorithm automation decision-tree

(很抱歉,这个问题让我们有些头脑风暴)

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

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

给出a_1, a_2...,我想构建一个决策树算法,该算法找到使函数x最小化F的b。我想自动执行此决策树构建器,以适应F的更改(通过p_1, p_2...)。

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

本能的想法之一是构建假样本并在数据集上学习决策树,这将为我提供所需的决策树。但是,这似乎过于复杂,因为我已经同意生成此问题的函数。

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

编辑:

我正在更改问题范围:

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

enter image description here

例如,决策树将显示if a_2 = "type2" and a_1 < 6 -> 3等。我不是在寻找确切的分区,一个不错的估计就足够了。

我当时正在考虑使用ML算法来构建决策树,该树使用F'的蒙特卡罗模拟生成的伪样本来构建。那有道理吗?

1 个答案:

答案 0 :(得分:1)

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

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

2)由于决策树难以处理相关变量,因此某些预处理可能有助于提高问题的严重性。尝试从PCA开始。

对于使用真实数据还是从原始函数生成真实数据,我认为应该没有显着差异。如果您发现某些“区域”中的数据代表性不足,则可能需要在此处和那里扩充初始训练数据集。