2016-08-15 23 views
5

Tôi muốn có thể sử dụng ma trận thưa thớt như x trong caret::train và có vẻ như nhiều người trong số họ mong đợi một khung dữ liệu. Tôi đã có thể sử dụng ma trận thưa thớt với XGboost với caret nhưng nnetELM cả hai dường như đều yêu cầu một khung dữ liệu. Tôi nhận thấy trong mã, dấu mũ cố gắng chuyển đổi x thành khung dữ liệu cho các mô hình nnetELM.Mô hình nào trong dấu mũ có thể sử dụng ma trận thưa thớt cho X?

Có danh sách các mô hình hỗ trợ ma trận thưa thớt không?

Trả lời

2

Bạn có thể sử dụng đoạn mã này để tìm mô hình nào đang sử dụng as.matrix trong hàm phù hợp.

Hãy coi chừng rằng as.matrix biến một ma trận thưa thớt thành ma trận thổi hoàn toàn. Bạn có thể gặp vấn đề về bộ nhớ. Tôi chưa thử nghiệm nếu các mô hình cơ bản riêng lẻ chấp nhận một ma trận thưa thớt.

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

Cảm ơn bạn. Điều này trả lời câu hỏi của tôi. Nhưng việc sử dụng loại as.matrix đánh bại mục đích sử dụng ma trận thưa thớt. –

Các vấn đề liên quan