在glmnet包中输入度量差异?

时间:2018-03-28 12:56:39

标签: r

在glmnet包中使用“mse”和“class”有什么区别?

log_x <- model.matrix(response~.,train)
log_y <- ifelse(train$response=="good",1,0)
log_cv <- cv.glmnet(log_x,log_y,alpha=1,family="binomial", type.measure =  "class")
summary(log_cv)
plot(log_cv)

VS。

log_x <- model.matrix(response~.,train)
log_y <- ifelse(train$response=="good",1,0)
log_cv <- cv.glmnet(log_x,log_y,alpha=1,family="binomial", type.measure =  "mse")
summary(log_cv)
plot(log_cv)

我注意到我的情节曲线略有不同或平滑,精度差异有几个百分点。但是,对于预测二项式类的响应,一种类型的度量比另一种更合适吗?

1 个答案:

答案 0 :(得分:0)

这取决于您的案例研究以及您希望从模型中学到什么。来自帮助文件

  

默认值为type.measure =“deviance”,它使用平方误差   对于高斯模型(a.k.a type.measure =“mse”那里)[...]。 type.measure = “类”   仅适用于二项式和多项Logistic回归,并给出错误分类   错误

因此,您必须问自己,在您的问题中,您是否希望最大限度地减少错误分类错误或均方误差。

没有直接的答案最好。它们是两种不同的统计数据,根据交叉验证生成的不同模型,模型可以根据这些统计数据确定最佳惩罚参数是什么。