权重受限的加权和

数据挖掘 机器学习 回归 统计数据 线性回归
2022-02-07 12:48:48

给定一个值和一些值如何找到权重以使 最小,其中权重必须总和为 1 或不同的值?yx1,...,xnw1,...wnerror=yw1x1+...wnxn

2个回答

您正在寻找的模型的名称是:Constrained Estimation of Ordinary Least Squares,该模型允许您通过仅修改 OLS 估计的矩阵表达式来为您的估计引入线性约束。

生成的模型应满足表达式

QTβ=c

求解方程为:

βc^=β^(XTX)1Q(QT(XTX)1Q)1(QTβ^c)

对于您的问题,是您的数据的矩阵。Q=[1,1,1]c=1XY

此问题称为约束优化,其中您的约束是权重之和为 x(例如 x=1)。

编写自己的梯度下降实现可能会很有见地,而且不会太复杂,它尊重这个约束。为此,您将在每次更新后缩放权重向量 (w),使其总和为 x。

另一种可能性是使用约束优化的现有实现,例如在 scipy 中我认为您要求的约束如下:

from scipy.optimize import LinearConstraint
linear_constraint = LinearConstraint([[1] * n], [x], [x])

其中 n 是权重的数量,x 是您希望将 w 约束到的长度。