在插入符号中拟合随机森林模型后使用partialPlot

时间:2015-05-04 17:29:11

标签: random-forest r-caret

在使用train()函数拟合randomForest后,我在调用partialPlot()和plotmo()时遇到问题。这是一些可重现的代码:

<script>
function showAssetPicker(){
  alert('worked!');
  //Do a lot
}
</script>

1 个答案:

答案 0 :(得分:1)

某些函数(包括randomForesttrain)如何处理虚拟变量之间存在一些不一致。 R中使用公式方法的大多数函数会将因子预测变量转换为虚拟变量,因为它们的模型需要数据的数字表示。对此的例外是基于树和规则的模型(可以分类为分类预测变量),朴素贝叶斯和其他一些模型。

因此randomForest 不会在您使用randomForest(y ~ ., data = dat)时创建虚拟变量,但train(以及大多数其他人)将使用train(y ~ ., data = dat)之类的调用。

发生错误是因为ratemarried和其他一些预测因素是因素。由train创建的虚拟变量具有相同的名称,因此partialPlot无法找到它们。

将非公式方法与train一起使用会将因子预测变量传递给randomForest,一切都会有效。

TL; DR

在这种情况下,使用非公式方法train

Final.rfModel <- train(form=networth ~ ., data=Mortgage, 
                       method = "rf", 
                       metric='RMSE', 
                       trControl = fitControl, 
                       tuneLength=10, 
                       importance = TRUE)

最高