解决L-无穷范数线性回归的软件包


10

是否有任何软件包可以解决线性回归问题,以最小化L-无穷大范数。


好吧,任何线性编程包都可以。这给您留下了很多选择。:)
红衣主教

1
@Cardinal您如何将其重铸为线性程序?即使在琐碎的情况下(例如两个数据点和一个参数),如何执行该操作也不是很明显:没有约束,目标函数是非线性的。
ub

关键词:切比雪夫近似。(更多内容。我们的想法是引入一个额外的变量,然后将目标转化为约束。)
主教

@cardinal您的意思是这个:mathworld.wolfram.com/ChebyshevApproximationFormula.html似乎很复杂。
张帆

好吧,这有点相关,但与这个问题无关。您的问题可以通过简单的LP解决。只要我可以使用计算机,我就会发布答案。
主教

Answers:


17

简短答案:您的问题可以表述为线性程序(LP),让您为任务选择最喜欢的LP解算器。要了解如何将问题写为LP,请继续阅读。

这种最小化问题通常称为Chebyshev逼近

让,,第行由和表示。然后,我们试图最小化函数相对于。通过表示最佳值 y=(yi)RnXRn×pixiβRpf(β)=yXββ

f=f(β)=inf{f(β):βRp}.

将其重铸为LP的关键是以题词形式重写问题。不难说服自己,事实上,

f=inf{t:f(β)t,tR,βRp}.

现在,使用函数的定义,我们可以将上面的右侧重写为 因此我们看到在回归设置中最小化范数等于LP 完成优化的地方over,并且表示长度为的向量。对于读者来说,我将其作为(轻松)练习以标准格式重铸上述LP。f

f=inf{t:tyixiβt,tR,βRp,1in},
minimizetsubject toyXβt1nyXβt1n,
(β,t)1nn

关系到线性回归(总变化)版本1

有趣的是,规范可以完成非常相似的操作。令。然后,类似的论点引出一个结论,即 因此对应的LP为 1g(β)=yXβ1

g=inf{tT1n:tiyixiβti,t=(ti)Rn,βRp,1in},
minimizetT1nsubject toyXβtyXβt.

注意这里现在是长度为的向量,而不是标量,就像情况一样。tn

当然,这两个问题的相似之处以及它们都可以被视为LP的事实并非偶然。这两个规范相互关联,因为它们是彼此的对偶规范


您如何找到参数和/或预测的某种精度度量?我之所以问这个问题,是因为以下最近一个问题: mathematica.stackexchange.com/questions/214226/…
JimB

3

Malab可以使用cvx做到这一点。获得cvx(免费):

http://cvxr.com/cvx/download/

在cvx中,您可以这样编写:

cvx_begin
   variable x(n);
   minimize( norm(A*x-b,Inf) );
cvx_end

(请参见手册第12页的示例)

有CVX的Python实现(在此),但命令略有不同...


1

@cardinal的答案已被很好地陈述并被接受,但是,为了完全关闭该线程,我将提供以下内容:IMSL数值库包含用于执行L-无穷范数回归的例程。该例程在Fortran,C,Java,C#和Python中可用。我使用的C和Python版本的方法称为lnorm_regression,它也支持常规的 -norm回归,。Lpp>=1

请注意,这些都是商业库,但是Python版本是免费的(例如在啤酒中),用于非商业用途。


不幸的是,该链接不再起作用。你能更新吗?
COOLSerdash
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.