我有一个混合整数问题。我需要最小化一个函数,这是一个加权最小二乘回归,权重取决于回归(迭代地重新加权最小二乘)。7 个参数定义了我的分段回归。我需要在第一个猜测附近找到一个局部最小值。
我试图用 gekko 写这个问题,但不知何故我发现它很难实现。经过多次尝试,我停在“负自由度”。
无论如何,我决定蛮力解决这个问题。它有效,但速度很慢。我在 7D 中围绕我的工作点构建一个立方体(itertools),并计算 3^7 点中的每个点的加权平方误差。我对每个维度都有边界,有时我的工作点位于我的 7D 域的一个面上。从技术上讲,我有 2^p * 3^(7-p) 点。我现在有一个所有值的列表,找到最小值,将我的工作点移到那里并重新开始构建一个立方体,不包括我在前面的循环步骤中已经计算的所有点。
现在我想通过计算我的工作点的梯度来加速它并更快地移动(在我的循环中跳过一两步)。np.gradient 需要一个 7d 数组才能正确执行。
给定一个点,以及围绕该点的 7 个范围,如何以有效的方式制作 7D 数组?如何用我的函数值制作这个数组的图像?
请不要说 7 for 循环。