2016-08-15 7 views
5

मैं caret::train में एक स्पैर मैट्रिक्स का उपयोग करने में सक्षम होना चाहता हूं और ऐसा लगता है कि उनमें से कई डेटा फ्रेम की अपेक्षा करते हैं। मैं के साथ caret के साथ स्पैर मैट्रिक्स का उपयोग करने में सक्षम हूं लेकिन nnet और ELM दोनों को डेटा फ्रेम की आवश्यकता होती है। मैंने कोड में देखा है, कैरेट x को nnet और ELM मॉडल के लिए डेटा फ्रेम में बदलने की कोशिश करता है।कैरेट में कौन से मॉडल एक्स के लिए एक स्पैर मैट्रिक्स का उपयोग कर सकते हैं?

क्या ऐसे मॉडलों की एक सूची है जो स्पैर मैट्रिक्स का समर्थन करती हैं?

उत्तर

2

आप इस फ़ंक्शन का उपयोग यह पता लगाने के लिए कर सकते हैं कि कौन से मॉडल फिट फ़ंक्शन में .matrix के रूप में उपयोग कर रहे हैं।

सावधान रहें कि .मैट्रिक्स एक पूर्ण उड़ा मैट्रिक्स में एक स्पैर मैट्रिक्स बदल देता है। आप स्मृति मुद्दों में भाग सकते हैं। मैंने परीक्षण नहीं किया है अगर व्यक्ति अंतर्निहित मॉडल एक स्पैर मैट्रिक्स स्वीकार करते हैं।

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

धन्यवाद। यह मेरे प्रश्न का उत्तर देता है। लेकिन .matrix प्रकार का उपयोग स्पैर मैट्रिक्स का उपयोग करने के उद्देश्य को हरा देता है। –

संबंधित मुद्दे