我想不出以下问题:如果可以,我想给你举个例子
想象一下,您使用营销数据,并且想出了一个很好的回归模型,可以预测某个广告系列的“覆盖率”。一切都很好。数据科学家工作完成。
可是等等。我们可以做的更多。
我对您的问题是
假设我们有一个好的模型,我们如何优化输入向量(=市场营销活动)以获得最佳的“覆盖率”(=预测变量/要优化的目标)?
我当时像疯了似的搜索,但找不到任何好的方法(我不是在谈论任何hypterparameter优化)。到目前为止,我发现的最佳方法是遗传算法 ...示例here和here
或者-用蛮力方法-用大量可能的输入向量计算一个巨大的网格,然后检查哪一个是最好的(直截了当)-但这将在计算上昂贵。
我很想听听您对此的看法。关于应该检查哪些主题的任何建议?
答案 0 :(得分:0)
长篇评论:
遗传算法可以嵌套。将您的遗传解决方案查找器置于适应功能中。将其交给父遗传算法。通过从外部GA“优化输入向量”和从内部GA“优化目标”来让他们搜索结果。
您甚至可以添加第三层GA,以测试中间层GA的构造参数,因为我们可能不知道我们需要哪种搜索空间。如果我们知道这一点,那么我们就不需要优化该向量。
您甚至可以通过这种方式减少每个GA的问题范围。
vector:x,y,z
GA1: optimizes x and GA2 parameters
GA2: optimizes y and GA3 parameters
GA3: optimizes z
fitness(x,y,z)
all pass their best fitness to parent
我不确定是否会比
快/慢GA: optimize x,y,z
fitness(x,y,z)
因为我不知道GA3的突变是否可以从局部最小值中节省整个优化器。其他版本:
GA1: optimize GA2
GA2: optimize x,y,z
fitness(x,y,z)
我不知道它的表现。也许GA可以解决那里应该有多少个嵌套的GA
GA0: optimize N, x0,x1,..xM-N
GA1: optimize XM-N+1
GA2: optimize XM-N+2
...
GAM: optimize XM
fitness(X0,X1,..XM)
但是我想在所有级别上构造/销毁太多的对象会降低性能(与内存带宽有关)和可读性(回调地狱)。