2014-07-21 56 views

回答

3

這在過去是絕對正確的,目前預測器數據將被轉換爲數據幀。但是,最近對軟件包的一些更改可能會允許維護稀疏矩陣對象。

我加了this並且會調查一下。

最大

+0

好的,謝謝。 –

+1

@topepo請快速跟進。我們今天能做到嗎?謝謝!! –

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"