【问题标题】:leave-one-out regression using lasso in Matlab在 Matlab 中使用套索进行留一回归
【发布时间】:2014-05-27 20:41:34
【问题描述】:

我有 300 个数据样本,每个样本约有 4000 个维度特征。每个输入有一个 5 暗淡。输出在 -2 到 2 的范围内。我正在尝试为其拟合套索模型。我浏览了几篇关于交叉验证策略的帖子:Leave one out cross validation algorithm in matlab

但我看到 lasso 在 Matlab 中不支持省略! http://www.mathworks.com/help/stats/lasso.html

如何使用留一法交叉验证训练模型并使用套索在我的数据集上拟合模型?我正在尝试在 matlab 中执行此操作。我想获得一组权重,我可以将其用于未来对其他数据的预测。

我尝试使用 glmnet:http://www.stanford.edu/~hastie/glmnet_matlab/intro.html 但由于缺少适当的 mex 编译器,我无法在我的机器上编译它。

我的问题有什么解决方案吗?谢谢:)

编辑

我也在尝试使用 MATLAB 内置的套索函数。它有一个执行交叉验证的选项。它输出 B 和 Fit Statistics,其中 B 是拟合系数,一个 p-by-L 矩阵,其中 p 是 X 中的预测变量(列)的数量,L 是 Lambda 值的数量。

现在给定一个新的测试样本,我如何使用这个模型计算输出?

【问题讨论】:

    标签: matlab regression cross-validation glmnet lasso-regression


    【解决方案1】:

    无论您采用何种训练方法,都可以使用留一法。正如here 解释的那样,您可以使用crossvalind 将数据拆分为训练集和测试集。

    [Train, Test] = crossvalind('LeaveMOut', N, M)
    

    【讨论】:

    猜你喜欢
    • 2019-07-11
    • 2018-07-16
    • 2017-08-10
    • 2021-03-02
    • 2014-03-06
    • 2013-08-08
    • 2017-11-08
    • 2020-09-10
    • 1970-01-01
    相关资源
    最近更新 更多