问题标签 [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.
r - 在 R 中使用 cv.glmnet 进行多项式时出错
在尝试使用cv.glmnet
对我的数据执行交叉验证时出现错误
在下面的行中,y
是一个 3 级变量(我as.factor()
在原始变量上使用)。预测器x
由一个连续变量(mage)和一些因子变量(再次用于as.factor()
分类变量)组成。正如另一篇在线帖子所建议的那样,我收集所有预测变量的代码是:
然后使用以下方法进行交叉验证:
我想知道是否有人以前遇到过这个问题,可能的原因是什么。
r - 如何强制 cv.glmnet 不删除一个特定变量?
我正在运行一个包含 67 个观察值和 32 个变量的回归。我正在使用 glmnet 包中的 cv.glmnet 函数进行变量选择。我想将一个变量强加到模型中。(它在正常过程中被丢弃。)如何在 cv.glmnet 中指定这个条件?
谢谢!
我的代码如下所示:
我想要的变量是 mydata[,2]。
r - glmnet R 包中 cv.glmnet 的“丢弃错误(y %*% rep(1, nc))”错误
我有一个函数可以返回 cv.glmnet 模型的 auc 值,虽然不是大多数时候,但它经常在执行 cv.glmnet 函数时返回以下错误:
drop(y % % rep(1, nc)) 中的错误:在为函数 'drop' 选择方法时评估参数 'x' 时出错:y % % rep(1, nc) 中的错误:参数不一致
我已经阅读了一些关于该错误的信息,我能找到的唯一建议是使用 data.matrix() 而不是 as.matrix()。我的函数如下(其中“form”是带有我想要的变量的公式,“dt”是数据框):
我在另一个函数中实现了这个函数,该函数迭代了几个变量的组合,以查看哪些变量组合运行良好(这是一种非常强力的方法)。无论如何,当错误被抛出时,我打印出迭代的公式,并只用那个公式调用函数,它工作得很好。所以不幸的是,我无法确定哪些调用会引发错误,否则我会尝试提供更多信息。数据框大约有 30 行,当我在具有 110 行的较大数据集上运行代码时没有错误。两个数据集中也没有 NA。
有没有人见过这个或有任何想法?谢谢!
r - 我可以将 glmnet 与插入符号和稀疏矩阵一起使用吗?
对我来说使用 glmnet 的一大好处是能够直接使用稀疏矩阵而无需转换它们。这里的帖子似乎表明 caret 的 train 函数只能接收训练集的数据帧,而 ?caret::train 建议相同。真的是这样吗?
r - glmnet 拒绝预测
我有一个可以工作的 glm 模型。由于我想添加(岭)正则化,我想我会切换到 glmnet。出于某种原因,我无法让 glmnet 工作。它似乎总是预测第一类,而不是第二类,这导致准确性低且 kappa = 0。
下面是一些重现问题的代码。我究竟做错了什么?
它生成的测试数据如下所示:
由于数据不能线性分离,因此添加了两个多项式项 A^2 和 B^2。
glm 模型正确预测数据(准确度 = 1 和 kappa = 1)。这是它的预测边界:
虽然 glmnet 模型的 kappa = 0,但无论它尝试什么 lambda:
重现问题的代码:
直接调用 glmnet(没有插入符号)会导致同样的问题:
编辑:绘制缩放数据和 glm 找到的决策边界:
型号:-37 + 6317*A + 6059*B - 6316*A2 - 6059*B2
r - 如何在 glmnet 中指定日志链接?
我正在使用 R 中的 glmnet 和 caret 包在广义线性模型上运行弹性网络。
我的响应变量是成本(其中成本 > 0 美元),因此我想为我的 GLM 指定一个带有日志链接的高斯族。但是 glmnet 似乎不允许我指定 (link="log")
如下:
我尝试了不同的变体,带引号和不带引号,但没有运气。glmnet 文档没有讨论如何包含日志链接。
我错过了什么吗?是否family="gaussian"
已经隐含地假设了一个日志链接?
r - How does glmnet compute the maximal lambda value?
The glmnet
package uses a range of LASSO
tuning parameters lambda
scaled from the maximal lambda_max
under which no predictors are selected. I want to find out how glmnet
computes this lambda_max
value. For example, in a trivial dataset:
The package vignette (http://www.jstatsoft.org/v33/i01/paper) describes in section 2.5 that it computes this value as follows:
Which clearly is close but not the same value. So, what causes this difference? And in a related question, how could I compute lambda_max
for a logistic regression?
r - 从 glmnet 中的因子变量解释/提取系数
我已经通过glmnet
. 我正在从最小 lambda 中提取系数,它给了我期望的结果。但是,我有一个具有九个唯一值的因子变量,并glmnet
为此生成一个系数,这对于二进制变量是预期的,但不是因子...
所以我的问题:
1)我应该如何解释来自因子变量的单个系数glmnet
?
2)有没有一种方法可以提取变量不同因子的系数?
r - 未找到所有假 (r0) 对象“r_all0”中的错误
cv.glmnet
从glmnet
R 中的包尝试时出现以下错误。
下面的代码
我无法弄清楚这里引用了哪个“r_all0”对象。red.trn.x
此外,矩阵中没有这样的变量。
r - 如何使用 glmnet 逻辑回归获得 0 和 1 之间的概率
考虑下面的例子
鉴于上述概率,我应该使用/修改预测中的哪个函数或参数来将它们在 0 和 1 之间转换?