首页 文章

我可以使用带插入符号和稀疏矩阵的glmnet吗?

提问于
浏览
2

使用glmnet给我的一大好处是能够直接使用稀疏矩阵而无需转换它们 . 这里的帖子似乎表明,插入符号的列车功能只能接收训练集的数据帧,而“caret :: train”表示相同 . 实际情况如此吗?

2 回答

  • 1

    @Noobie这适用于 glmnet ,例如:

    library(glmnet)
    set.seed(1)
    X <- sparseMatrix(i=sample(1:20,20), j=sample(1:20,20), x=sample(1:100,20), 
                                           dims=c(20,20)) # some random sparse training data
    X
    # [1,] .  .  . 64  .  .  . .  . .  .  .  .  .  .  .  .  .  .  .
    # [2,] .  .  .  .  .  .  . .  . .  .  .  .  . 98  .  .  .  .  .
    # [3,] .  .  .  .  .  .  . .  . .  .  . 43  .  .  .  .  .  .  .
    # [4,] .  .  .  .  .  .  . .  . .  .  .  .  .  .  .  .  .  . 51
    # [5,] .  .  .  .  .  .  . .  . 7  .  .  .  .  .  .  .  .  .  .
    # [6,] .  .  .  .  .  .  . .  . .  .  .  .  .  .  .  .  . 83  .
    # [7,] .  .  .  .  .  .  . 9  . .  .  .  .  .  .  .  .  .  .  .
    # [8,] .  .  .  . 65  .  . .  . .  .  .  .  .  .  .  .  .  .  .
    # [9,] .  .  .  .  .  .  . .  . .  .  .  .  .  . 45  .  .  .  .
    #[10,] . 22  .  .  .  .  . .  . .  .  .  .  .  .  .  .  .  .  .
    #[11,] .  .  .  .  .  .  . .  . .  . 77  .  .  .  .  .  .  .  .
    #[12,] .  .  .  .  .  .  . . 27 .  .  .  .  .  .  .  .  .  .  .
    #[13,] .  .  .  .  .  .  . .  . .  .  .  .  .  .  . 33  .  .  .
    #[14,] .  .  .  .  . 75  . .  . .  .  .  .  .  .  .  .  .  .  .
    #[15,] 3  .  .  .  .  .  . .  . .  .  .  .  .  .  .  .  .  .  .
    #[16,] .  . 54  .  .  .  . .  . .  .  .  .  .  .  .  .  .  .  .
    #[17,] .  .  .  .  .  .  . .  . .  .  .  . 44  .  .  .  .  .  .
    #[18,] .  .  .  .  .  . 55 .  . .  .  .  .  .  .  .  .  .  .  .
    #[19,] .  .  .  .  .  .  . .  . . 68  .  .  .  .  .  .  .  .  .
    #[20,] .  .  .  .  .  .  . .  . .  .  .  .  .  .  .  . 39  .  .
    
    y <- as.factor(sample(0:1, 20, replace=TRUE))
    
    enet.fit <- glmnet(X, y, family='binomial')
    
    Xtest <- sparseMatrix(i=sample(1:10,10), j=sample(1:20,10), x=sample(1:100,10), 
                                         dims=c(10,20)) # some random sparse test data
    
    # [1,] .  . . .  . 45  . . .  . .  .  .  .  . . .  . . .
    # [2,] .  . . .  .  .  . . .  . .  .  .  .  . . . 21 . .
    # [3,] .  . . .  .  .  . . .  . .  .  .  . 97 . .  . . .
    # [4,] .  . . .  .  .  . . .  . . 27  .  .  . . .  . . .
    # [5,] .  . . . 66  .  . . .  . .  .  .  .  . . .  . . .
    # [6,] .  . . .  .  .  . . .  . .  .  . 55  . . .  . . .
    # [7,] . 35 . .  .  .  . . .  . .  .  .  .  . . .  . . .
    # [8,] .  . . .  .  .  . . . 86 .  .  .  .  . . .  . . .
    # [9,] .  . . .  .  . 13 . .  . .  .  .  .  . . .  . . .
    # [10,] .  . . .  .  .  . . .  . .  . 61  .  . . .  . . .
    
    predict(enet.fit, newx=Xtest, type='class',s=0.01)
    #      1
    # [1,] "0"
    # [2,] "1"
    # [3,] "0"
    # [4,] "0"
    # [5,] "1"
    # [6,] "1"
    # [7,] "1"
    # [8,] "1"
    # [9,] "0"
    #[10,] "0"
    
  • 3

    这在过去肯定是正确的,目前,预测数据将转换为数据框 . 但是,最近对包的一些更改可能允许维护稀疏矩阵对象 .

    我添加了this并将调查它 .

    马克斯

相关问题