我已经使用cForest构建了一个随机森林模型。
现在,我想绘制一个简单的学习曲线,横轴显示树的数量,纵轴显示分类错误率(如下面所示)。然而,尽管我在谷歌上搜索了很多,我仍然无法弄清楚如何使用party包中的cForest来实现这一点。
使用randomForest包时,只需使用plot(rf)就可以轻松完成,但当我尝试对cForest对象使用时却不奏效。出现了以下错误:
plot(myforest)Error in as.double(y) : cannot coerce type 'S4' to vector of type 'double'
希望有人知道如何解决这个问题。
学习曲线示例:
回答:
我也在寻找如何做这件事,所以我联系了该包的作者。据他所说,这很难实现,因为ntree不是一个调节参数,而是定义了基础自助法分布的质量。我不确定这是由于包的编写方式还是由于cforest和传统随机森林之间数学上的差异。如果您需要制作这个图表并且仍然想使用cforest,您可以尝试运行多个cforest,每个cforest使用不同数量的树(例如50、100、500、1000、1500、2000棵树),记录每个的准确率,然后绘制图表以获得类似的图形。