首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matlab中的Lasso回归

matlab中的Lasso回归
EN

Stack Overflow用户
提问于 2015-09-01 14:53:46
回答 1查看 5.2K关注 0票数 0

我在Matlab2013a中使用lasso函数。它的工作如下:

代码语言:javascript
复制
    X = randn(100,5);
    r = [0;2;0;-3;0];
    Y = X*r + randn(100,1)*.1; 
%Construct the lasso fit using ten-fold cross validation. Include the FitInfo 
%output so you can plot the result.
    [B FitInfo] = lasso(X,Y,'CV',10); %B is a p-by-L matrix, where p is the %number of predictors (columns) in X, and L is the number of Lambda values

%Plot the cross-validated fits.
    lassoPlot(B,FitInfo,'PlotType','CV');

绿色圆圈和虚线定位Lambda时,交叉验证误差最小.蓝色圆和虚线定位点的交叉验证误差最小加上一个标准差。

因此,我所理解的是,绿色圆对应于λ的最佳值,它将误差降到最低。,但我如何“自动”(不需要绘制图形)找到向量B,它对应于图形中以绿色圆圈表示的λ值?

任何帮助都将非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-01 15:47:28

根据文档,它应该在FitInfo.Lambda中,这是一个包含lambdas的1xL向量。您可能可以使用min(FitInfo.Lambda)找到它。如果将CV名称-值对设置为cross validate,则FitInfo结构包含其他字段:FitInfo.LambdaMinMSE,这正是您要寻找的值。

多亏了@Christina,这是一种略显简洁的写作方式:

代码语言:javascript
复制
bestValue = find(FitInfo.Lambda == FitInfo.LambdaMinMSE)

这将为您提供最小lambda位于数组L中的索引。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32334777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档