问题标签 [lasso-regression]

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 投票
0 回答
1061 浏览

r - 分类 LASSO 模型:使用 NA 响应值进行预测

我在训练数据上开发了一个 LASSO 模型来预测 R 中的二元响应变量,使用交叉验证来选择我的 $\lambda$:

然后我在测试数据上测试了模型,得到了可靠的结果(下面,我在测试数据上插入了模型的 ROC 曲线): 在此处输入图像描述

在上面使用的训练和测试数据中,我都有响应变量的实际值,并且能够使用该model.matrix()函数来计算预测值。但是,我有第二部分测试数据,其中响应变量的每个值都是 NA。应用model.matrix()此数据后,我的矩阵的维度为 0x22:

我尝试了一些替代方法model.matrix(),但只是得到错误。例如,当我尝试使用 时data.matrix(),我的矩阵的尺寸是正确的:

但是,当我尝试使用我的模型估计概率或分类时,我收到以下错误:

有人在使用 LASSO 之前遇到过这个问题吗?或者,有人可以帮助我了解.matrix()LASSO 如何使用不同的函数,以及在响应值为 NA 时计算预测的可能解决方法吗?

0 投票
0 回答
548 浏览

r - 统计学习--具有LASSO预测误差的分类模型

我在训练数据上开发了一个 LASSO 模型来预测 R 中的二元响应变量,使用交叉验证来选择我的 $\lambda$:

plot(glm.train, xvar = "lambda") grid() glm.train.cv = cv.glmnet(x, y = train$dem, alpha = 1, family = 'binomial') opt.lambd = glm.train .cv$lambda.min train.fit.lasso = glmnet(x, y = train$dem, alpha = 1, family = 'binomial') predict(train.fit.lasso, s = opt.lambd, type = "coefficients ")[1:23, ]

然后我在测试数据上测试了模型,得到了可靠的结果(下面,我在测试数据上插入了模型的 ROC 曲线): 在此处输入图像描述

在上面使用的训练和测试数据中,我都有响应变量的实际值,并且能够使用该model.matrix()函数来计算预测值。但是,我有第二部分测试数据,其中响应变量的每个值都是 NA。应用model.matrix()此数据后,我的矩阵的维度为 0x22:

我尝试了一些替代方法model.matrix(),但只是得到错误。例如,当我尝试使用 时data.matrix(),我的矩阵的尺寸是正确的:

但是,当我尝试使用我的模型估计概率或分类时,我收到以下错误:

as.matrix(cbind2(1, newx) % % nbeta) 中的错误:在为函数“as.matrix”选择方法时评估参数“x”时出错:cbind2(1, newx) % % nbeta 中的错误:Cholmod文件 ../MatrixOps/cholmod_sdmult.c 第 90 行中的错误“X 和/或 Y 尺寸错误”

test$test.predicts = predict(train.fit.lasso, newx = x.predict[1:5010,], s = opt.lambd, type = "class") as.matrix(cbind2(1, newx) 中的错误% % nbeta) :在为函数 'as.matrix' 选择方法时评估参数 'x' 时出错:cbind2(1, newx) 中的错误 % % nbeta :Cholmod 错误 'X 和/或 Y 尺寸错误'文件 ../MatrixOps/cholmod_sdmult.c,第 90 行

有人在使用 LASSO 之前遇到过这个问题吗?或者,有人可以帮助我了解.matrix()LASSO 如何使用不同的函数,以及在响应值为 NA 时计算预测的可能解决方法吗?

0 投票
1 回答
582 浏览

r - 如何使用 SGL 包开发逻辑回归模型?

我目前正在使用具有大量变量的数据集。因此,我决定使用在 SGL 包上实现的稀疏组 LASSO 变量选择技术。

我的问题是逻辑回归问题,这是使用此包构建的可能模型之一。但是,当我尝试使用它时,我收到一条错误消息。我的数据框称为 N,我的二进制向量称为 y:

在之前的情况下,Y是0和1的二进制数字向量,所以我认为问题在于Y不是一个因素,所以我又试了一次:

所以这个错误信息似乎表明 y 不应该是一个因素。我不知道出了什么问题,特别是因为如果我运行 cvSGL 函数,将 y 视为数字二进制向量,但我构建的是线性模型而不是 logit 模型(尽管线性模型对我来说并不重要),它实际工作并且没有给出任何错误。

我指的是应用这个:

如果其他人尝试使用此软件包构建 logit 模型,我将感谢任何帮助。

0 投票
1 回答
382 浏览

python - 为什么这里的套索没有为我提供零系数?

我从这里的论文中得到了实现我的深度特征选择版本的想法, http: //link.springer.com/chapter/10.1007%2F978-3-319-16706-0_20

根据这篇论文,深度特征选择的基本思想是在任何全连接隐藏层之前添加一个一对一的映射层,然后通过添加一个正则化项(无论是套索还是弹性网络)在输入层权重中产生零。

我的问题是,尽管我似乎已经很好地实现了深度特征选择框架,但对 numpy.rand.random(1000,50) 生成的随机数据的测试未能给我初始权重的任何零。套索是否像正则化一样常见?我是否要调整我用于这个框架的参数(甚至更大的时期)?还是我的代码做错了什么。

0 投票
0 回答
119 浏览

r - R中GLMNET库的属性

我在 R 中使用 glmnet 包,并将输入 x 保存为 csv 文件。它的尺寸是:34 x 8。我将输出变量 y 保存为另一个 csv 文件,它的尺寸是:34 x 1

代码:x <- read.csv("input.csv") y <- read.csv("output.csv")

这显示以下错误: weighted.mean.default(y, weights) 中的错误:“x”和“w”必须具有相同的长度

我什至尝试过: as.numeric(unlist(y)),以确保 y 是一个向量,但它似乎不起作用。有人可以告诉我属性格式的错误吗?

0 投票
1 回答
926 浏览

r - 为 Lasso 回归准备数据的问题

我正在尝试进行套索回归,但我无法在 R 中很好地定义我的 X 和 Y。

#load data

然后我收到此错误消息:

现在所有列的长度相同(222),但错误表明 Y 中只有 100 列,X 中只有 222 列。

#So I checked for Y here

现在,它肯定表明我错过了一些东西。显然矩阵大小不同,X 是 222*5 列,但我怎样才能让它工作呢?这意味着这个错误将会消失......我尝试了很多方法。我已经为此工作了几个小时,这确实阻止了我的进步,而且谷歌没有太多帮助。将不胜感激解决方案。

0 投票
4 回答
3267 浏览

r - $\lambda = 0$ 和 OLS 的 LASSO 在 R glmnet 中产生不同的结果

我希望没有惩罚的 LASSO ($\lambda=0$) 产生与 OLS 拟合相同(或非常相似)的系数估计。但是,我在 R 中得到不同的系数估计值,将相同的数据 (x,y) 放入

  • glmnet(x, y , alpha=1, lambda=0)对于 LASSO 适合没有惩罚和
  • lm(y ~ x)适合 OLS。

这是为什么?

0 投票
1 回答
2570 浏览

python - 为什么 GridSearchCV 返回的分数与直接运行模型返回的分数如此不同?

我使用 GridSearchCV 为套索模型找到了最佳 alpha。

我得到的最佳参数为 0.0014873521072935117,负 r2 得分为 -0.0470788758558。


然后我直接在模型上尝试了这个 alpha。我在循环中运行了以下代码。

请注意,我没有设置随机状态,因此它应该用作交叉验证。但是无论我运行代码多少次,我在这里得到的分数都在 0.11 左右(0.11-0.12)。


问题

为什么两种方法的分数 -0.0470788758558 和 0.11 如此不同?

0 投票
1 回答
8505 浏览

r - 为什么在 lasso 回归中计算 MSE 会给出不同的输出?

我正在尝试对来自 lasso2 包的前列腺癌数据运行不同的回归模型。当我使用 Lasso 时,我看到了两种不同的方法来计算均方误差。但是它们确实给了我完全不同的结果,所以我想知道我是否做错了什么,或者这是否意味着一种方法比另一种更好?

所以这些是我为两个 MSE 得到的输出:

而且它们完全不同。有谁知道为什么?非常感谢您的帮助!

塞缪尔

0 投票
0 回答
1993 浏览

tensorflow - 使用 TensorFlow 实现 lasso 回归

我想使用 TensorFlow 运行套索回归。由于 Lasso 回归只是将 L1 范数添加到成本中,因此我将成本项定义为

上面的代码可以作为 Lasso 回归吗?我的一个问题是在这种情况下我是否可以使用梯度下降。Lasso 回归具有不可微分的点,并且坐标下降被广泛使用,这在 TensorFlow 库中不存在。