R中的非负套索实现


13

我正在寻找可以使用的开放源代码或现有库。据我所知,glmnet软件包不是很容易扩展以涵盖非负面情况。我可能是错的,任何有任何想法的人都非常感谢。

非负数是指所有系数均被约束为正数(> 0)。


1
请原谅我,但是非负套索到底意味着什么?要使所有系数都> 0还是只允许正面预测?谷歌搜索并没有启发我,但这听起来像是我想了解的东西。
Backlin '10

1
抱歉,关闭您的问题,但最好在www.crossvalidated.com上提问和回答。我已将问题标记为要迁移,因此mod会尽快处理该问题。话虽如此,请明确您的问题,并确切解释您想要什么。我们研究小组的套索专家无法弄清楚您的目标是什么...
Joris Meys 2012年

对于那个很抱歉。非负意味着所有系数均为正。我尝试使用软件包glmnet,但这只能解决一般情况。
gbh。

Answers:


8

glmnet里面有选择

lower.limits=0

可以使用它,并且这是对拟合系数施加阳性约束的适当方法,如果将参数设置alpha为1,则将拟合LASSO。结合参数,upper.limits您还可以指定框约束。该glmnet软件包还比该penalized软件包快得多,在此处的另一个答案中建议。

一个Rcpp版本glmnet可以容纳套索和弹性网络与积极性和箱形约束的支持也在筹备中,并且可用于在测试https://github.com/jaredhuling/ordinis


7

请参阅受罚的软件包以了解一种选择。包装随附的小插图(PDF!)在3.9节中提供了此示例。

本质上positive = TRUE是在penalized()函数调用中设置参数。


4

论文表明,在某些条件下,所述非负最小二乘解的硬阈值化可以执行比L1正规化(LASSO)同等或更好的,在性能方面。一个示例是您的设计矩阵中是否只有非负条目,通常就是这种情况。

值得一试,因为NNLS得到了广泛的支持,并且也将更容易/更快地解决。

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.