【问题标题】:how to get probabilities between 0 and 1 using glmnet categorical regression如何使用 glmnet 分类回归获得 0 和 1 之间的概率
【发布时间】:2017-09-12 10:50:03
【问题描述】:
我的响应变量是分类的,从 1 到 7。我了解使用 glmnet 我可以将 type 设置为响应并获得预测的概率。
prob.vec = predict.cv.glmnet(cvfit, newx = X.test, s = "lambda.min",
type = "响应")
但是,我也对其他类别的概率感兴趣。我想知道 glmnet 中是否存在这样的功能。
【问题讨论】:
标签:
regression
categorical-data
glmnet
【解决方案1】:
将family = 'multinomial' 设置在cv.glmnet 中,您应该一切就绪。这是一个简单的例子。
library(glmnet)
y <- iris$Species
x <- as.matrix(iris[,1:4])
m1 <- cv.glmnet(x, y, family = 'multinomial')
predict(m1, newx = x, s = 'lambda.min', type = 'response')[1:2,,]
# setosa versicolor virginica
#[1,] 0.9992059 0.000794057 2.548623e-20
#[2,] 0.9961627 0.003837330 1.206001e-18