为什么不同的机器学习方法在插入符号中赋予相同的变量重要性?
Why do different machine learning methods give the same variable importance, in caret?
我正在使用插入符号比较不同的机器学习方法,但尽管这些方法非常不同,但我得到的变量贡献是相同的。
vNNet、ctree、enet、knn、M5、pcr、ridge、svmRadial 给出相同的变量贡献。
其中一些将 importance = TRUE 作为输入:vNNet、enet、knn、pcr、ridge、svmRadial。
其他人生成了 importance = TRUE 的错误:ctree,M5。
(错误是"Something is wrong; all the RMSE metric values are missing:")
我的问题是为什么不同的方法赋予相同的变量重要性?
这似乎是错误的,但我看不出我做错了什么。
library(ggplot2)
library(caret)
library(elasticnet)
library(party)
data_set <- diamonds[1:1000, c(1, 5, 6, 7, 8, 9, 10)]
formula <- price ~ carat + depth + table + x + y + z
set.seed(100)
enet_model <- train(formula,
importance = TRUE,
data = data_set,
method = "enet",
trControl = trainControl(method = "cv"),
preProc = c("center", "scale"))
set.seed(100)
ctree_model <- train(formula,
data = data_set,
method = "ctree",
trControl = trainControl(method = "cv"))
set.seed(Set_seed_seed)
knn_model <- train(formula,
importance = TRUE,
data = data_set,
method = "knn",
preProc = c("center", "scale"),
tuneGrid = data.frame(k = 1:20),
trControl = training_control)
varImp(enet_model)
varImp(ctree_model)
varImp(knn_model)
我正在使用插入符号 6.0-52
来自?varImp
:
For models that do not have corresponding varImp
methods, see filterVarImp
.
这些方法没有实现重要性分数,因此您可以获得无模型的度量。我可以根据系数值为 enet
添加一个,但是 knn
和 ctree
没有明显的方法。
我正在使用插入符号比较不同的机器学习方法,但尽管这些方法非常不同,但我得到的变量贡献是相同的。
vNNet、ctree、enet、knn、M5、pcr、ridge、svmRadial 给出相同的变量贡献。
其中一些将 importance = TRUE 作为输入:vNNet、enet、knn、pcr、ridge、svmRadial。 其他人生成了 importance = TRUE 的错误:ctree,M5。 (错误是"Something is wrong; all the RMSE metric values are missing:")
我的问题是为什么不同的方法赋予相同的变量重要性? 这似乎是错误的,但我看不出我做错了什么。
library(ggplot2)
library(caret)
library(elasticnet)
library(party)
data_set <- diamonds[1:1000, c(1, 5, 6, 7, 8, 9, 10)]
formula <- price ~ carat + depth + table + x + y + z
set.seed(100)
enet_model <- train(formula,
importance = TRUE,
data = data_set,
method = "enet",
trControl = trainControl(method = "cv"),
preProc = c("center", "scale"))
set.seed(100)
ctree_model <- train(formula,
data = data_set,
method = "ctree",
trControl = trainControl(method = "cv"))
set.seed(Set_seed_seed)
knn_model <- train(formula,
importance = TRUE,
data = data_set,
method = "knn",
preProc = c("center", "scale"),
tuneGrid = data.frame(k = 1:20),
trControl = training_control)
varImp(enet_model)
varImp(ctree_model)
varImp(knn_model)
我正在使用插入符号 6.0-52
来自?varImp
:
For models that do not have corresponding
varImp
methods, seefilterVarImp
.
这些方法没有实现重要性分数,因此您可以获得无模型的度量。我可以根据系数值为 enet
添加一个,但是 knn
和 ctree
没有明显的方法。