2016-08-15 38 views
5

caret::train'da x gibi seyrek bir matris kullanabilmeyi ve bunların bir veri çerçevesi beklemesine benzemesini istiyorum. caret ile XGboost ve nnet ve ELM ile seyrek matris kullanabildim bir veri çerçevesi gerektiriyor gibi görünüyor. Kodda fark ettim, caret x'u nnet ve ELM modelleri için veri çerçevesine dönüştürmeyi dener.Caret'te hangi modeller X için seyrek bir matris kullanabilir?

Seyrek matrisi destekleyen modellerin bir listesi var mı?

cevap

2

Uyum işlevinde hangi modellerin as.matrix kullandığını bulmak için bu kod parçasını kullanabilirsiniz.

As.matrix'in, seyrek bir matrisi, tam üfleme matrisine dönüştürdüğünü unutmayın. Bellek sorunları yaşayabilirsiniz. Altta yatan modellerin seyrek bir matrisi kabul edip etmediğini test etmedim.

library(caret) # run on version 6.0-71 

model_list <- getModelInfo() 
df <- data.frame(models = names(model_list), 
       fit = rep("", length(model_list)), 
       stringsAsFactors = FALSE) 

for (i in 1:length(model_list)) { 
    df$fit[i] <- as.expression(functionBody(model_list[[i]]$fit)) 
} 

# find xgboost matrix 
df$models[grep("xgb.DMatrix", df$fit)] 
[1] "xgbLinear" "xgbTree" 

# find all models where fit contains as.matrix(x) 
df$models[grep("as.matrix\\(x\\)", df$fit)] 

[1] "bdk"    "binda"    "blasso"   "blassoAveraged" "bridge"   "brnn"    
[7] "dnn"    "dwdLinear"   "dwdPoly"   "dwdRadial"   "enet"    "enpls.fs"   
[13] "enpls"    "foba"    "gaussprLinear"  "gaussprPoly"  "gaussprRadial"  "glmnet"   
[19] "knn"    "lars"    "lars2"    "lasso"    "logicBag"   "LogitBoost"  
[25] "lssvmLinear"  "lssvmPoly"   "lssvmRadial"  "mlpSGD"   "nnls"    "ordinalNet"  
[31] "ORFlog"   "ORFpls"   "ORFridge"   "ORFsvm"   "ownn"    "PenalizedLDA"  
[37] "ppr"    "qrnn"    "randomGLM"   "relaxo"   "ridge"    "rocc"    
[43] "rqlasso"   "rqnc"    "rvmLinear"   "rvmPoly"   "rvmRadial"   "sda"    
[49] "sddaLDA"   "sddaQDA"   "sdwd"    "snn"    "spikeslab"   "svmLinear"   
[55] "svmLinear2"  "svmLinear3"  "svmLinearWeights" "svmLinearWeights2" "svmPoly"   "svmRadial"   
[61] "svmRadialCost"  "svmRadialSigma" "svmRadialWeights" "xgbLinear"   "xgbTree"   "xyf"  
+1

Teşekkür ederiz. Bu sorumu cevaplıyor. Fakat as.matrix türünün kullanımı, seyrek matris kullanma amacını yitirmektedir. –