1

我有 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 和拟合统计信息,其中 B 是拟合系数,一个 p×L 矩阵,其中 p 是 X 中的预测变量(列)的数量,L 是 Lambda 值的数量。

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

4

1 回答 1

1

无论您的训练方法如何,您都可以使用留一法。如此处所述,您可以使用crossvalind将数据拆分为训练集和测试集。

[Train, Test] = crossvalind('LeaveMOut', N, M)
于 2014-04-14T13:16:06.493 回答