我使用以下代码制作了一个模型。我的变量中有一个分类变量,称为“ot_soilTextu”。
rf_final <- caret::train(BULK_DENSITY ~ forest_210 + legumes_158 + corn_147 + bio3 +
ot_soilTextu + grass_122 + mrvbf + bio5 + bio15 + bio9 +
grav_1st_1 + bio18 + deme2000 + grav_1st_2,
method = "rf",
data=cq,
tuneGrid = expand.grid(mtry = rf_CV$bestTune$mtry),
trControl = trainControl(method = "none"),
importance = TRUE)
然后,我使用以下代码制作了重要性图。
imp <- varImp(rf_final)
plot(imp, main="BD: 14V ",xlab = list(font=1, cex = 1.25),
scales = list(x = list(font=1,cex=1),y=list(font=1,cex=1)))
重要性图显示了分类变量的所有分割,这不好。我只需要查看 14 个变量的重要性,而不是添加所有分类变量的分割。有没有办法不用写额外的代码就可以解决这个问题呢? 这是重要性图:
您可以在运行
caret::train
函数之前将分类变量转换为数字
cq$ot_soilTextu <- as.numeric(cq$ot_soilTextu)
然后你可以运行
caret::train
只得到14个变量的重要性。