使用套索回归指定测量类型
Specifying type of measure with lasso regression
我正在尝试使用 glmnet 和套索泊松回归进行变量选择。
它运行如果我使用:
model.lasso <- glmnet(X,ED.visits, family="poisson", alpha=1, nlambda=1000)
但有人要求我使用 "deviance" 作为衡量标准。当我 运行:
时出现错误
model.lasso <- glmnet(X,ED.visits, type.measure=c("deviance"), family="poisson", alpha=1, nlambda=1000)
type.measure
是根据 the documentation.
的正确规范
参数:type.measure,不是 glmnet 函数的一部分,而是 cv.glmnet 函数的一部分。您正在调用不属于上述函数的参数。
对于泊松族回归,默认情况下它使用偏差(最小化偏差)进行拟合。 cv.glmnet 的目的是使用交叉验证找到最佳 lambda,但是由于您已经指定了它,因此使用 cv.glmnet 和 glmnet 的结果是相同的:
library(glmnet)
x = matrix(rnorm(10000),1000,10)
y = rpois(1000,10)
cv.lasso <- cv.glmnet(x,y,
type.measure="deviance", family="poisson",
alpha=1, nlambda=1000)
model.lasso <- glmnet(x,y, family="poisson",
alpha=1, nlambda=1000)
> identical(cv.lasso$glmnet.fit$beta,model.lasso$beta)
[1] TRUE
您需要找到最优的 lambda 吗?如果不只是使用没有 type="measure" 参数的 glmnet。
我正在尝试使用 glmnet 和套索泊松回归进行变量选择。
它运行如果我使用:
model.lasso <- glmnet(X,ED.visits, family="poisson", alpha=1, nlambda=1000)
但有人要求我使用 "deviance" 作为衡量标准。当我 运行:
时出现错误model.lasso <- glmnet(X,ED.visits, type.measure=c("deviance"), family="poisson", alpha=1, nlambda=1000)
type.measure
是根据 the documentation.
参数:type.measure,不是 glmnet 函数的一部分,而是 cv.glmnet 函数的一部分。您正在调用不属于上述函数的参数。
对于泊松族回归,默认情况下它使用偏差(最小化偏差)进行拟合。 cv.glmnet 的目的是使用交叉验证找到最佳 lambda,但是由于您已经指定了它,因此使用 cv.glmnet 和 glmnet 的结果是相同的:
library(glmnet)
x = matrix(rnorm(10000),1000,10)
y = rpois(1000,10)
cv.lasso <- cv.glmnet(x,y,
type.measure="deviance", family="poisson",
alpha=1, nlambda=1000)
model.lasso <- glmnet(x,y, family="poisson",
alpha=1, nlambda=1000)
> identical(cv.lasso$glmnet.fit$beta,model.lasso$beta)
[1] TRUE
您需要找到最优的 lambda 吗?如果不只是使用没有 type="measure" 参数的 glmnet。