最小化绝对偏差的总和(大号1L1距离)

计算科学 优化 凸优化
2021-11-23 22:54:13

我有一个数据集x1,x2,,xk并想找到参数m使得它最小化总和

i=1k|mxi|.
那是

minmi=1k|mxi|.

4个回答

可能您要求证明中位数可以解决问题?好吧,这可以这样做:

目标是分段线性的,因此除了点m=xi之外是可微的。目标的斜率是多少是某个点mxi好吧,斜率是映射m|mxj|这是+1(对于m>xj)或1(对于m<xj)。因此,斜率表示有多少xi小于m如果有同样多的xi小于和大于m(对于偶数个xi),您会看到斜率为零。如果有奇数个xi's 那么斜率是“中间”一个左侧的-1和它右侧的+1,因此中间的一个是最小值。1+1

将此问题推广到多维称为几何中值问题正如大卫指出的那样,中位数是一维情况的解决方案;在那里,您可以使用比排序更有效的中值查找选择算法。排序是而选择算法是只有在需要多个选择时,排序才会更有效,在这种情况下,您可以(昂贵地)排序一次,然后从排序列表中重复选择。O(nlogn)O(n)

几何中值问题的链接提到了多维案例的解决方案。

中位数方面的显式解决方案是正确的,但针对 mayenew 的评论,这是另一种方法。

众所周知,最小化问题,特别是后置问题,可以通过线性规划来解决。1

以下 LP 公式将适用于未知数的给定练习:zi,m

minzi
使得:
zimxi
zixim

显然必须等于至少,因此这要求将误差的绝对值之和最小化。zi|xim|

显示这一点的过度凸分析方法只是采用次梯度。事实上,这相当于其他一些涉及斜率的答案中使用的推理。

优化问题是凸的(因为目标是凸的并且没有约束。)另外,|mxi|

-1 如果m<xi

[-1,1] 如果m=xi

+1 如果m>xi

由于当且仅当凸函数的子梯度包含零时,凸函数才被最小化,并且凸函数和的子梯度是子梯度的(集合)和,因此当且仅当是中位数 x_k mx1,xk