首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >虚系数回归因子

虚系数回归因子
EN

Stack Overflow用户
提问于 2015-09-10 02:44:31
回答 3查看 819关注 0票数 2

假设我在稀疏矩阵上有一个经过训练的glmnet模型,多个预测器包含不同级别的因素(因此也包括不同数量的虚拟预测器)。

代码语言:javascript
复制
df <- data.frame(y=runif(10), catVar=as.factor(sample(0:5,10,TRUE)))
A <- model.matrix(y ~ catVar,df) 
train <- cv.glmnet(A[,c('catVar3', 'catVar4')], df$y)
coef(train, s="lambda.min")

转换虚拟系数/值或整体公式的最佳(最有效)方法是什么,就好像虚拟列不是稀疏格式(只是一列不同的因素)?

编辑:我需要将虚拟系数和它们的斜率/值转换回每个级别的不同斜率的单个系数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-10 03:11:32

邮寄名单中改编一个巧妙的例子,

代码语言:javascript
复制
n <- length(levels(df$catVar))
factor(A%*%1:n, labels = levels(df$catVar))
票数 0
EN

Stack Overflow用户

发布于 2015-09-10 03:02:34

使用max.col获取索引向量,然后转换回一个因子,将级别设置为列名。

编辑示例:

代码语言:javascript
复制
X <- model.matrix(~group-1, sleep)                                               

factor(max.col(X), labels=colnames(X))                                           
票数 0
EN

Stack Overflow用户

发布于 2015-09-10 03:27:23

稀疏矩阵的独立答案。您可以转换为三元组并直接读取索引:

代码语言:javascript
复制
require(Matrix)                                                                  
X <- Diagonal(10)[sample(10,20,T), ]                                             
factor(as(X, "TsparseMatrix")@j, labels=LETTERS[1:10])                                    

如果您的矩阵存储转置,那么您应该能够使用@i

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32492264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档