Questions tagged «glmnet»

套索和弹性网正则化广义线性模型的R包。

1
解读LASSO变量迹线图
我是该glmnet软件包的新手,但仍不确定如何解释结果。谁能帮助我阅读以下跟踪图? 通过运行以下命令获得该图: library(glmnet) return <- matrix(ret.ff.zoo[which(index(ret.ff.zoo)==beta.df$date[2]), ]) data <- matrix(unlist(beta.df[which(beta.df$date==beta.df$date[2]), ][ ,-1]), ncol=num.factors) model <- cv.glmnet(data, return, standardize=TRUE) op <- par(mfrow=c(1, 2)) plot(model$glmnet.fit, "norm", label=TRUE) plot(model$glmnet.fit, "lambda", label=TRUE) par(op)

3
逻辑回归:Scikit Learn与glmnet
我正在尝试sklearn使用glmnetR中的包复制逻辑回归库的结果。 sklearn分w ^ ,Ç1个2wŤw + C∑我= 1ñ日志(exp(- ÿ一世(XŤ一世w + c ))+ 1 )分w,C1个2wŤw+C∑一世=1个ñ日志⁡(经验值⁡(-ÿ一世(X一世Ťw+C))+1个)\min_{w,c} \frac12 w^Tw + C\sum_{i=1}^N \log(\exp(-y_i(X_i^Tw+c)) + 1) 从的渐近点来看glmnet,它的实现将成本函数 分β,β0− [ 1ñ∑我= 1ñÿ一世(β0+ xŤ一世β)- 日志(1 + e(β0+ xŤ一世β))] + λ [ (α - 1 )| | β| |22/ 2+α | | β| |1个]分β,β0-[1个ñ∑一世=1个ñÿ一世(β0+X一世Ťβ)-日志⁡(1个+Ë(β0+X一世Ťβ))]+λ[(α-1个)||β||22/2+α||β||1个]\min_{\beta, \beta_0} -\left[\frac1N \sum_{i=1}^N y_i(\beta_0+x_i^T\beta)-\log(1+e^{(\beta_0+x_i^T\beta)})\right] + …

1
glmnet logistic回归可以直接处理因子(类别)变量而不需要虚拟变量吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为交叉验证的主题。 3年前关闭。 我正在使用LASSO方法在R中构建逻辑回归,并具有cv.glmnet用于选择lambda和glmnet用于最终模型的功能。 我已经知道关于自动模型选择的所有缺点,但是无论如何我都需要这样做。 我的问题是我需要在模型中包括因子(分类)变量,有什么方法可以在不创建大量虚拟变量的情况下做到这一点?此变量几乎是所有字符串,而不是数字。

1
插入符glmnet与cv.glmnet
在glmnet内部caret使用搜索最佳lambda和cv.glmnet执行相同任务的比较中似乎有很多困惑。 提出了许多问题,例如: 分类模型train.glmnet与cv.glmnet? 在插入符号中使用glmnet的正确方法是什么? 使用`caret`交叉验证`glmnet` 但是没有给出答案,这可能是由于问题的可重复性。在第一个问题之后,我给出了一个非常相似的示例,但确实存在相同的问题:为什么估计的lambda如此不同? library(caret) library(glmnet) set.seed(849) training <- twoClassSim(50, linearVars = 2) set.seed(849) testing <- twoClassSim(500, linearVars = 2) trainX <- training[, -ncol(training)] testX <- testing[, -ncol(testing)] trainY <- training$Class # Using glmnet to directly perform CV set.seed(849) cvob1=cv.glmnet(x=as.matrix(trainX),y=trainY,family="binomial",alpha=1, type.measure="auc", nfolds = 3,lambda = seq(0.001,0.1,by = 0.001),standardize=FALSE) …

1
在R中使用glmnet进行预测
我正在尝试使用glmnetR中的包对一些数据进行建模。假设我有以下数据 training_x <- data.frame(variable1 = c(1, 2, 3, 2, 3), variable2 = c(1, 2, 3, 4, 5)) y <- c(1, 2, 3, 4, 5) (这是一种简化;我的数据要复杂得多。)然后,我使用以下代码创建了glmnet模型。 x <- as.matrix(training_x) library(glmnet) GLMnet_model_1 <- glmnet(x, y, family="gaussian", alpha=0.755, nlambda=1000, standardize=FALSE, maxit=100000) 我正在使用,standardize=FALSE因为我的现实生活数据已经标准化。然后,我要对一组新数据进行预测。假设我的新数据是: newdata <- as.matrix(data.frame(variable1 = c(2, 2, 1, 3), variable2 = c(6, …
13 r  glmnet 

1
复制“统计学习要素”中的表18.1
统计学习元素中的表18.1 总结了14个类别数据集上几个分类器的性能。我正在将套索和弹性网的新算法与此类多类分类问题进行比较。 使用glmnet版本1.5.3(R 2.13.0),我无法复制表中的点7(惩罚的多项式),其中报告使用的基因数量为269,测试错误为13 54。使用的数据是此14癌症微阵列数据集。无论我如何尝试,我都会在170-180个基因附近使用性能最佳的模型,其54个测试错误中的16个。大号1个大号1个L_1 注意,在654页的18.3节的开头,描述了数据的一些预处理。 我已经联系了作者-到目前为止没有任何回复-请问是否有人可以确认复制表格是否存在问题或提供有关如何复制表格的解决方案。

3
套索vs.自适应套索
LASSO和自适应LASSO是两个不同的东西,对吗?(对我来说,处罚看起来有所不同,但我只是在检查我是否错过了某件事。) 当您通常谈到弹性网时,是LASSO还是自适应LASSO? 如果您选择alpha = 1,glmnet包将执行哪一个操作? 自适应LASSO可在较温和的条件下工作,对吗?两者都在适当的数据中具有oracle属性,对吗?

3
如何使用glmnet以收缩(套索)方法处理NA值
我在GWAS中使用“ glmnet”进行套索回归。某些变体和个人缺少值,并且glmnet似乎无法处理丢失的值。 有什么解决办法吗?还是有其他软件包可以处理套索回归中的缺失值? 这是我的脚本。 > library(glmnet) > geno6<-read.table("c6sigCnt.geno") > geno6[1:10,1:10] #genotype file (0,1,2 for minor allele counts) V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 1 1 1 1 1 1 1 1 1 1 0 2 NA NA 1 1 1 1 1 1 1 1 3 …

2
glmnet包中的偏差度量的确切定义,是否具有交叉验证?
对于当前的研究,我通过二项式因变量通过R中的glmnet包使用Lasso方法。 在glmnet中,可以通过交叉验证找到最佳的lambda,并将生成的模型与各种度量进行比较,例如分类错误或偏差。 我的问题:glmnet中的偏差有多准确?如何计算? (在Friedman等人的相应论文“通过坐标下降的广义线性模型的正则化路径”中,我仅对cv.glmnet中使用的偏差发现了这一评论:“平均偏差(减去左侧的对数似然的两倍数据)”(第17页))。

2
复杂调查数据中LASSO之后的交叉验证
我正在尝试使用具有连续结果的LASSO对一些候选预测变量进行模型选择。目标是选择具有最佳预测性能的最佳模型,通常可以从LASSO获得调整参数的求解路径后,通过K倍交叉验证来完成。这里的问题是数据来自复杂的多阶段调查设计(NHANES),并进行了聚类采样和分层。估计部分并不难,因为glmnetR中可以获取采样权重。但是交叉验证部分对我而言不太清楚,因为现在不再观察到观测值了,该程序如何解释代表有限总体的权重采样? 所以我的问题是: 1)如何对复杂的调查数据进行K折交叉验证以选择最佳调整参数?更具体地说,如何将样本数据适当地划分为训练集和验证集?以及如何定义预测误差的估计? 2)是否有选择最佳调整参数的替代方法?

1
scikit-learn Python中的ElasticNet与R中的Glmnet之间的区别
是否有人尝试验证在同一数据集上的ElasticNetPython和glmnetR 中的scikit-learn中的Elastic Net模型拟合是否产生相同的算术结果?我一直在尝试使用参数的许多组合(因为这两个函数在传递给参数的默认值方面有所不同),并且还对数据进行了缩放,但是在这两种语言之间似乎并没有产生相同的模型。有人遇到过同样的问题吗?

1
R-套索回归-每个回归者的Lambda不同
我要执行以下操作: 1)OLS回归(无惩罚项)以获得beta系数;代表用于回归的变量。我这样做 Ĵb∗jbj∗b_{j}^{*}jjj lm.model = lm(y~ 0 + x) betas = coefficients(lm.model) 2)带惩罚项的套索回归,选择标准应为贝叶斯信息标准(BIC),由 λj=log(T)T|b∗j|λj=log⁡(T)T|bj∗|\lambda _{j} = \frac{\log (T)}{T|b_{j}^{*}|} 其中代表变量/回归数,代表观察数,代表步骤1)中获得的初始beta。我想获得此特定值的回归结果,该值对于使用的每个回归变量都不同。因此,如果存在三个变量,则将存在三个不同的值。Ť b * Ĵ λ Ĵ λ ĴjjjTTTb∗jbj∗b_{j}^{*}λjλj\lambda_jλjλj\lambda_j 然后通过以下公式给出OLS-Lasso优化问题 中号我Ñb ε - [Rñ= { ∑t = 1Ť(yŤ− b⊤XŤ)2+ T∑j = 1米(λŤ| bĴ| ) }minbϵRn={∑t=1T(yt−b⊤Xt)2+T∑j=1m(λt|bj|)}\underset{b\epsilon \mathbb{R}^{n} }{min} = \left \{ \sum_{t=1}^{T}(y_{t}-b^{\top} X_{t} )^{2} …
11 r  regression  glmnet  lars 

2
glmnet:如何理解多项式参数化?
接下来的问题:我想使用glmnet()预测一个(或多个)分类变量的分类响应变量。 但是,我无法理解glmnet给我的输出。 好的,首先让我们生成两个相关的分类变量: 产生资料 p <- 2 #number variables mu <- rep(0,p) sigma <- matrix(rep(0,p^2), ncol=p) sigma[1,2] <- .8 #some relationship .. diag(sigma) <- 1 sigma <- pmax(sigma, t(sigma)) n <- 100 set.seed(1) library(MASS) dat <- mvrnorm(n, mu, sigma) #discretize k <- 3 # number of categories d <- apply(dat, …

4
如何使用回归确定一个系数并拟合其他系数
我想手动固定某个系数,例如,然后将系数拟合到所有其他预测变量,同时在模型中保留。β1=1.0β1=1.0\beta_1=1.0β1=1.0β1=1.0\beta_1=1.0 如何使用R实现此目的?glmnet如果可能的话,我特别想与LASSO()合作。 或者,如何将这个系数限制在特定范围内,例如?0.5≤β1≤1.00.5≤β1≤1.00.5\le\beta_1\le1.0


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.