(很抱歉,这个问题让我们有些头脑风暴)
我有一个函数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...
映射到b
(b
是离散的)。是否会有一种算法尝试通过以F'
作为节点的决策树来“简化” a_1, a_2...
。
例如,决策树将显示if a_2 = "type2" and a_1 < 6 -> 3
等。我不是在寻找确切的分区,一个不错的估计就足够了。
我当时正在考虑使用ML算法来构建决策树,该树使用F'
的蒙特卡罗模拟生成的伪样本来构建。那有道理吗?
答案 0 :(得分:1)
如果您想要F'
的快速贪婪近似,您的想法是有道理的,但是您应该注意正确实现它:
1)当您声明变量可能是分类变量和数字变量时,应考虑对变量进行装箱的方式。对于高度非线性的函数,optimal不是广为接受的线性合并。
2)由于决策树难以处理相关变量,因此某些预处理可能有助于提高问题的严重性。尝试从PCA开始。
对于使用真实数据还是从原始函数生成真实数据,我认为应该没有显着差异。如果您发现某些“区域”中的数据代表性不足,则可能需要在此处和那里扩充初始训练数据集。