【发布时间】:2021-09-10 20:02:47
【问题描述】:
我正在尝试在多个预测中找到权重,以给出尽可能接近已知目标的结果(例如,均方误差)。
这是一个简化的示例,显示了跨四个数据点的三种不同类型的预测:
target = [1.0, 1.02, 1.01, 1.04] # all approx 1.0
forecasts = [
[0.9, 0.91, 0.92, 0.91], # all approx 0.9
[1.1, 1.11, 1.13, 1.11], # all approx 1.1
[1.21, 1.23, 1.21, 1.23] # all approx 1.2
]
其中一个预测值始终约为 0.9,一个始终约为 1.1,一个始终约为 1.2。
我想要一种自动查找三个预测的权重约为 [0.5, 0.5, 0.0] 的方法,因为平均前两个预测并忽略第三个预测非常接近目标。理想情况下,权重将被限制为非负且总和为 1。
我认为我需要使用某种形式的线性规划或二次规划来做到这一点。我已经安装了 Python quadprog library,但我不确定如何将这个问题转化为像这样的求解器所需的形式。谁能指出我正确的方向?
【问题讨论】:
-
对系数是否有任何限制(例如,全为正数、总和为 1 等)?与维度相比,有多少向量可以组合?
-
是的,系数都应该是非负的。理想情况下,它们的总和应为 1,尽管打开和关闭此约束的能力会更好。每个向量的长度会超过向量的个数。
标签: python linear-programming quadratic-programming quadprog