代码之家  ›  专栏  ›  技术社区  ›  Thundersheep

套索回归glmnet赋值y值。

  •  1
  • Thundersheep  · 技术社区  · 6 年前

    好吧,我正在做一个套索回归,但是我的Y学期有问题。 我知道x必须是矩阵,y必须是数值。 这是我那套的。但是我觉得我的模型运行不正常。我先告诉你我做了什么,然后我认为应该做什么(但不知道怎么做)。

    所以我所做的如下。我在这个例子中使用了r的核数据集。

    library(boot)
    data("nuclear")
    attach(nuclear)
    nuclear <- as.matrix(nuclear)
    

    所以我把它转换成矩阵。然后我在x和y上使用矩阵。

    CV = cv.glmnet(x=nuclear,y=nuclear, family="multinomial", type.measure = "class", alpha = 1, nlambda = 100)
    

    但是我觉得我的y轴不对。我觉得我的因变量应该在那里。但我怎么才能做到呢?假设nuclear$pt是我的因变量。把核武器$pt换成y不起作用。

    plot(CV)
    
    fit = glmnet(x=nuclear, y=nuclear, family = "multinomial" , alpha=1, lambda=CV$lambda.1se)
    

    如果我运行这个,它觉得我的模型根本没有运行。可能是我的Y有点不对劲,但我不能用手指去碰它。

    1 回复  |  直到 6 年前
        1
  •  3
  •   talat    6 年前

    你对x和y使用相同的矩阵,你必须以某种方式分离自变量和因变量。例如,可以使用索引选择变量:

    cv.glmnet(x=nuclear[, 1:10],y=nuclear[, 11], family="binomial", 
       type.measure = "class", alpha = 1, nlambda = 100)
    

    这将使用nuclear的前10列作为自变量,第11列作为因变量。

    推荐文章