问题标签 [glmnet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2915 浏览

r - 无法预测 R 的 GLMNET 包中的拟合模型

我试图通过使用 R包mpg中的岭回归来根据许多变量来预测汽车。glmnet我已经将数据分为训练数据和测试数据,并对分类变量进行了虚拟编码。

我拟合了一个交叉验证模型,如下所示:

一切都很好,但是,当我尝试对predict()拟合模型的测试数据使用该函数时,就会出现问题:

我收到以下错误:

谁能告诉我我做错了什么??谢谢!

0 投票
2 回答
2626 浏览

r - cv.glmnet 是否使用完整的 lambda 序列过度拟合数据?

cv.glmnet 已被大多数研究论文和公司使用。在构建类似cv.glmnetfor的类似函数glmnet.cr(实现连续比率序数回归的套索的类似包)时,我在cv.glmnet.

使用完整数据创建对象后glmnet,下一步如下:lambda从完整的模型拟合中提取

现在他们确保折叠次数超过 3

创建一个列表来存储交叉验证的结果

根据for loop交叉验证理论运行以拟合不同的数据部分

那么会发生什么。在将数据拟合到完整数据后,使用完整数据中的 lambda 进行交叉验证。有人能告诉我这怎么可能不是数据过度拟合?我们在交叉验证中希望模型没有关于数据遗漏部分的信息。但是cv.glmnet在这方面作弊!

0 投票
4 回答
36981 浏览

r - glmnet 中的 R 错误:外部函数调用中的 NA/NaN/Inf

我正在尝试使用 glmnet 创建一个模型(当前使用 cv 来查找 lambda 值),但出现错误NA/NaN/Inf in foreign function call (arg 5)。我相信这与我的数据集中的 NA 值有关,因为当我使用 NA 删除所有数据点时,命令会成功运行。

我的印象是 glmnet可以处理 NA 值。我不确定错误来自哪里:

数据集如下所示:

0 投票
1 回答
3536 浏览

r - R - cv.glmnet 错误:矩阵必须具有相同的列数

从具有大型稀疏数据集的 glmnet 包中运行 R cv.glmnet 函数我经常收到以下错误:

我用随机生成的数据复制了错误:

这可能与初始变量筛选有关(基于 和 的内积XY。glmnet 不是将系数固定为零,而是从X矩阵中删除变量,这是针对每个验证集完成的。然后,如果在其中一些变量中删除变量并保留在其他变量中,则会出现错误。

有时增加有nfolds帮助。这与假设一致,因为数量越多nfolds意味着验证子集越大,并且在其中任何一个中删除变量的机会越小。

一些附加说明:

错误仅出现在alpha接近 1(alpha=1相当于 L1 正则化)和使用标准化的情况下。它没有出现family="Gaussian"

你认为会发生什么?

0 投票
1 回答
685 浏览

r - Glmnet. Different results for the same lambda vector, depending on whether it was calculated by glmnet or passed down as a parameter

Glmnet with ridge regularization calculates coefficients for the first lambda value differently when lambda vector is chosen by glmnet algorithm compared to when it is given in a function call. For example, two models (that I would expect to be identical)

give completely different coefficients:

The same happens with different datasets too. When lambda is not provided for glmnet, all coefficients for lambda.max coef(m, s=m$lambda[1]) (except for the intercept) are very close to zero and predictions are equal for any X (due to rounding?).

My questions:

  1. Why is this the case? Is the difference intentional?
  2. How exactly are coefficients for the greatest lambda coef(m, s=m$lambda[1]) determined?
0 投票
1 回答
759 浏览

glmnet - 使用 glmnet 进行变量选择

对于一个大学项目,我必须通过 glmnet 函数找到一个模型,它应该同时估计和选择变量。

类似于我在互联网上找到的一个示例,我有以下 R 代码:

我得到了一些输出,但我真的看不出这个程序选择了哪些变量?

有人可以通过澄清我必须在哪里查看输出以获得所选变量来帮助我吗?

提前谢谢了。

亲切的问候,

Pieter 鲁汶天主教大学学生

0 投票
1 回答
1396 浏览

matlab - 在 Matlab 中使用套索进行留一回归

我有 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 值的数量。

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

0 投票
1 回答
7440 浏览

glmnet - glmnet 中用于交叉验证的默认 lambda 序列

有人知道 cv.glmnet(在 R 的 glmnet 中)或 LassoCV(scikit-learn)如何选择他们在交叉验证中使用的一系列正则化常数(lambdas)吗?非常感谢!

0 投票
1 回答
1827 浏览

r - 套索,glmnet,数据预处理

我试图使用 glmnet 包在具有二进制结果(logit)的模型上拟合套索(L1 惩罚)。我的预测变量都是二进制的(它们是 1/0 未排序的,~4000),除了一个连续变量。我需要将预测变量转换为稀疏矩阵,因为它需要永远和一天。我的问题是:似乎人们正在使用 sparse.model.matrix 而不仅仅是将他们的矩阵转换为稀疏矩阵。这是为什么?我需要在这里做吗?两种方法的结果略有不同。

另外,我的因子是否需要编码为因子(当涉及到结果和预测变量时)或者使用稀疏矩阵并在 glmnet 模型中指定结果是二项式就足够了?

这是我到目前为止所做的

所以总结我的两个问题是:1-即使我的因子只是二进制而不是有序的,我是否需要使用 sparse.model.matrix?[如果是的话,它实际上与仅将矩阵转换为稀疏矩阵有什么不同] 2-我需要将二进制变量编码为因子吗?我问的原因是我的数据集很大。无需编码即可节省大量时间。

0 投票
2 回答
13007 浏览

r - 如何使用 glmnet 包提取最佳 lambda 的 CV 错误?

我在 R 中使用glment包进行回归。我使用 进行交叉验证cv.fit<-cv.glmnet(x,y,...),并使用cvfit$lambda.min. 但我还想获得该MSElambda 的对应(均方误差)。有人会帮我拿到它吗?