插入符号中的哪些模型可以对 X 使用稀疏矩阵?
Which models in caret can use a sparse matrix for X?
我希望能够在 caret::train
中使用稀疏矩阵作为 x
,看起来他们中的许多人都希望有一个数据框。我已经能够将稀疏矩阵与 XGboost
和 caret
一起使用,但 nnet
和 ELM
似乎都需要一个数据框。我在代码中注意到,插入符号尝试将 x
转换为 nnet
和 ELM
模型的数据框。
是否有支持稀疏矩阵的模型列表?
您可以使用这段代码来查找哪些模型在 fit 函数中使用 as.matrix。
请注意 as.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"
我希望能够在 caret::train
中使用稀疏矩阵作为 x
,看起来他们中的许多人都希望有一个数据框。我已经能够将稀疏矩阵与 XGboost
和 caret
一起使用,但 nnet
和 ELM
似乎都需要一个数据框。我在代码中注意到,插入符号尝试将 x
转换为 nnet
和 ELM
模型的数据框。
是否有支持稀疏矩阵的模型列表?
您可以使用这段代码来查找哪些模型在 fit 函数中使用 as.matrix。
请注意 as.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"