二次编程和套索


11

我正在尝试执行套索回归,其格式如下:

在最小化Y - X w 'Y - X w + λw(YXw)(YXw)+λ|w|1

给定,建议我借助二次编程来找到最佳,二次编程采用以下形式:w ^λw

最小化在,受1xXb12xQx+cxAxb.

现在,我意识到应该将项转换为约束项,这非常简单。但是,我以某种方式看不到如何将第一个方程式的第一项转换为第二个方程式的第一项。我在网上找不到很多,所以决定在这里问。X bλAxb

Answers:


10

请记住,我们正在将作为标准形式的' '变量,展开并收集以及和以及常数。x Y - X w 'Y - X w w 'wx(YXw)(YXw)w ^ ' w ^w[something]www

解释为什么您可以忽略常量。

说明为什么可以组合和项。 w ^ww


正如BananaCode现在已经弄清楚了这条道路上的一些领先者一样,您可以写和更简单,您可以写和(因为和对于任何都具有相同的argmin )。c ^ = - 2 X ' Ŷ Q = X ' X Ç = - X ' Ý ˚F X ķ ˚F X ķ > 0Q=2XXc=2XY Q=XXc=XYf(x)kf(x)k>0


常数可以忽略,因为如果x_是f(x)的最小值,则x_ + c是f(x)+ c的最小值,因此我们可以忽略常数c。我将编辑问题以显示卡住的地方。
spurra

BananaCode您的解释有几个缺陷。如果“是最小的,以 ”你的意思是“在它的参数最小化”,你说,像“是的 ”。但是你的结论是错误的。如果将添加到,则不要将添加到argmin。f x x * argmin f c f cf(x)f(x)xargminfcfc
Glen_b-恢复莫妮卡2014年

看到答案中我在哪里写了吗?有什么东西,你现在有间和你的问题的底部?w ^ ' w ^w[something]www
Glen_b-恢复莫妮卡2014年

是的,我的意思是是的。您能举一个我的结论错误的例子吗?在是矩阵我试图形成。如果我扩展我得到。第一部分代表矩阵的形式,但是我不能摆脱第二项。一个ř Ñ ˚F [ 小号ø é ħ Ñ ] Q 瓦特'X ' X 瓦特- X ' Ý 瓦特' X ' X 瓦特- 瓦特' X ' ý Q - 瓦特' X ÿxargminf[something]Qw(XXwXY)wXXwwXYQwXY
spurra

1
@ AD.Net约束大部分包含在其他答案中。
Glen_b-恢复莫妮卡

11

我想添加如何解决转换约束成为二次编程的可用形式,因为它不像我想的那么简单。不可能找到一个真实的矩阵使得。一个一个w ^ 小号Σ | w ^ | |wi|sAAws|wi|s

我使用的方法是将向量的元素分为和,这样。如果,则您有和,否则您有并且。或更用数学术语来说,和无论和为非负数。分解数字的想法是,您现在有了瓦特瓦特+ 瓦特- 瓦特 = 瓦特+ - 瓦特- 瓦特0 瓦特+ = 瓦特瓦特- = 0 瓦特- = | w ^ | w + i = 0 w + i = | w ^ | + w ^ wiwwi+wiwi=wi+wiwi0wi+=wiwi=0wi=|wi|wi+=0 wi =| w ^| -w ^wi+=|wi|+wi2wi w + i | w ^| =w + i +wiwi=|wi|wi2.wiwi+|wi|=wi++wi,有效地摆脱了绝对值。

优化函数变为:,主题到 瓦特 + +瓦特 - 小号12(w+w)TQ(w+w)+cT(w+w)wi++wis,wi+,wi0

当和被定为由Glen_b上述çQc

这需要转换为可用形式,即我们需要一个向量。这是通过以下方式完成的:

12[w+w]T[QQQQ][w+w]+[cTcT][w+w]

服从

[IDIDI2D][w+w][sD02D]

其中是维单位矩阵,是仅由值组成的维向量,是维零向量。前半部分确保,第二个现在,以二次编程的形式使用二次编程来搜索和是给定的一种可用形式。完成后,关于最佳参数是。 D s D D s 0 D 2 D | w ^ | = 瓦特+ + 瓦特- š 瓦特+ 瓦特- 0 瓦特+ 瓦特-小号小号瓦特= 瓦特+ - 瓦特-IDDsDDs0D2D|wi|=wi++wiswi+,wi0w+wssw=w+w

资料来源和进一步阅读:用线性约束包含绝对值来解决二次编程问题


假设我们找到了最佳的向量。是什么确保和实际上是某个向量的正部分和负部分,即它们的入口位置匹配?瓦特+瓦特- 瓦特+ 瓦特-瓦特2D(w+,w)w+ww0
Myath

最终表达式中的矩阵和向量可以更简单,并且实际上更正确。代替[Id Id] [w + w-]'≤Sd,您可以简单地输入[1 1 .... 1] [w + w-]'≤s。这从字面上等效于∑ | wi |。= ∑(wi + + wi−)≤s。
Marko
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.