【问题标题】:Can I use glmnet with caret and sparse matrices?我可以将 glmnet 与插入符号和稀疏矩阵一起使用吗?
【发布时间】:2014-09-11 13:40:19
【问题描述】:

对我来说,使用 glmnet 的一大好处是能够直接处理稀疏矩阵而无需转换它们。这里的帖子似乎表明 caret 的 train 函数只能接收训练集的数据帧,而 ?caret::train 建议相同。真的是这样吗?

【问题讨论】:

    标签: r machine-learning sparse-matrix r-caret glmnet


    【解决方案1】:

    过去确实如此,目前,预测数据将被转换为数据框。但是,最近对该包的一些更改可能会允许维护稀疏矩阵对象。

    我添加了this 并将对其进行调查。

    最大

    【讨论】:

    • @topepo 请快速跟进。我们今天可以这样做吗?谢谢!!
    【解决方案2】:

    @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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-19
      • 2011-01-29
      • 2010-12-15
      • 2018-07-07
      • 1970-01-01
      • 2013-04-12
      相关资源
      最近更新 更多