在使用train()函数拟合randomForest后,我在调用partialPlot()和plotmo()时遇到问题。这是一些可重现的代码:
<script>
function showAssetPicker(){
alert('worked!');
//Do a lot
}
</script>
答案 0 :(得分:1)
某些函数(包括randomForest
和train
)如何处理虚拟变量之间存在一些不一致。 R中使用公式方法的大多数函数会将因子预测变量转换为虚拟变量,因为它们的模型需要数据的数字表示。对此的例外是基于树和规则的模型(可以分类为分类预测变量),朴素贝叶斯和其他一些模型。
因此randomForest
不会在您使用randomForest(y ~ ., data = dat)
时创建虚拟变量,但train
(以及大多数其他人)将使用train(y ~ ., data = dat)
之类的调用。
发生错误是因为rate
,married
和其他一些预测因素是因素。由train
创建的虚拟变量具有相同的名称,因此partialPlot
无法找到它们。
将非公式方法与train
一起使用会将因子预测变量传递给randomForest
,一切都会有效。
TL; DR
在这种情况下,使用非公式方法train
:
Final.rfModel <- train(form=networth ~ ., data=Mortgage,
method = "rf",
metric='RMSE',
trControl = fitControl,
tuneLength=10,
importance = TRUE)
最高