用glmnet包做lasso回归,做预测时的疑问

COS论坛 | 统计之都 COS论坛 | 统计之都 统计学世界 数据挖掘和机器学习 用glmnet包做lasso回归,做预测时的疑问

Tagged: ,

该主题包含 0 条回复,1个帖子,最后由  newcafans2 周, 3 天 之前 更新。

查看 1 个帖子(总计 1 个)
  • 作者
    帖子
  • 1 楼

    newcafans
    Participant

    我用R语言的glmnet包做Lasso回归,做的是二分类,代码如下:

    g <- cv.glmnet(xd, yd,family="binomial",type.measure="auc", nfolds = 10) 
    g.best <- g$glmnet.fit #对应的最佳模型
    g.coef <- coef(g$glmnet.fit,s=glambda.1se) #系数
    beta<-as.matrix(g.coef[which(g.coef != 0)] )#选择的变量
    fn<-feature_NUM[which(g.coef != 0)]
    

    我用以上代码提取了模型中的特征序号fn和系数beta。算出了每个观测的分值score

    score[i]<-beta[1]+beta[2]*xd[i,fn[1]]+beta[3]*xd[i,fn[2]]
      +beta[4]*xd[i,fn[3]]+beta[5]*xd[i,fn[4]]+beta[6]*xd[i,fn[5]]
      +beta[7]*xd[i,fn[6]]+beta[8]*xd[i,fn[7]]+beta[9]*xd[i,fn[8]]
      +beta[10]*xd[i,fn[9]]+beta[11]*xd[i,fn[10]]+beta[12]*xd[i,fn[11]]
      +beta[13]*xd[i,fn[12]]+beta[14]*xd[i,fn[13]]+beta[15]*xd[i,fn[14]]
      +beta[16]*xd[i,fn[15]]
    

    然后用predict进行预测:

    pre <-predict(g$glmnet.fit,newx=xd,s=g$lambda.1se, type='link')
    

    这一句算出的结果,我一直以为就是score,但和score对比完全不同

    用这个预测向量去预测效果不错,但我并不知道用type=’link’得到的这个向量和score有什么关系?
    如果是没关系的,那么这个预测向量又是怎样算出来的呢?说明文档说是线性模型的预测值,不就应该是score吗?

查看 1 个帖子(总计 1 个)

您必须先登录才能回复该主题。