matlab - 如何从 MATLAB 中的 LASSO 拟合获得决定系数 (R^2)?

标签 matlab statistics

在 MATLAB 中,我们可以使用以下命令执行交叉验证的 LASSO

[w, FitInfo] = lasso(X, y, 'CV', 3);

并获得最佳权重

w(:,FitInfo.IndexMinMSE)

我们如何找到决定系数?

最佳答案

如果我理解得很好的话MATLAB documentationcoefficient of determination definition ,我认为下面的代码应该可以完成这项工作:

 optimal_weights = w(:,FitInfo.IndexMinMSE);
 SStot = var(y)*length(y);
 predicted_values = X*optimal_weights;
 SSres = sum( (y(:)-predicted_values(:)).^2 );
 R2 = 1 - SSres/SStot;

注意SStot可以使用sum()计算,但我认为使用var()会更快一些。

关于matlab - 如何从 MATLAB 中的 LASSO 拟合获得决定系数 (R^2)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28096155/

相关文章:

matlab - 从主函数中清除局部函数中的持久变量

arrays - 如何将某些索引的行和列移动到矩阵的任一端?

matlab - 对于类型 'isDone' 的输入参数,未定义函数 'single'

java - 用最少的迭代次数求均值

c++ - 使用 Boost 基于 Beta 分布生成随机数

image - 用于图像分类的 Matlab SVM

matlab - 使用 MATLAB 提取文本文件中 "Data starts on next line:"以外的数据

r - 有什么方法可以根据 R 中的 wilcoxon 测试选择单变量特征吗?

python - 朴素贝叶斯如何工作

r - 将非平稳转换为平稳