(如果这个问题有点头脑风暴,很抱歉)
我有一个函数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...
映射为b
(b
是离散的)。是否会有一个算法试图通过一个以F'
为节点的决策树来“简化”a_1, a_2...
。
例如,一个决策树,它会说if a_2 = "type2" and a_1 < 6 -> 3
等。我不是在寻找一个精确的分区,一个体面的估计是足够的。
我正在考虑使用ML算法来构建决策树,使用由F'
蒙特卡罗模拟生成的假样本。这有道理吗?
发布于 2019-06-12 05:34:52
如果您想要F'
的快速和贪婪的近似,那么您的想法是有意义的,但是您应该注意正确地实现它:
1)当你说你的变量可能是绝对的和数值的,你应该考虑如何绑定这些变量。对于高度非线性的函数,普遍接受的线性二值化不是最优。
2)由于决策树在处理相关变量方面存在困难,一些预处理可能有助于提高决策树的处理效率。从PCA开始。
至于使用实际数据或从原始函数生成数据,我认为不应该有明显的差别。如果您看到在某些“区域”中,您的数据表示不足,您可能希望在这里和那里扩展初始培训数据集。
https://stackoverflow.com/questions/56445026
复制相似问题