如何绘制随机森林模型的决策边界

Posted

技术标签:

【中文标题】如何绘制随机森林模型的决策边界【英文标题】:How to plot a decision boundary of random forest model 【发布时间】:2015-09-23 10:18:49 【问题描述】:

我有

## Classification:
library("randomForest")
data=iris
data<-data[data$Species!="setosa",]
data$Species<-factor(as.character(data$Species))
iris.rf <- randomForest(Species ~ Sepal.Length+Petal.Length, data=data, importance=TRUE,            proximity=TRUE)

我想构造一个带有决策边界的Sepal.Length~Petal.Length。这将是一个什么样的边界? 2 个类别中的每一个的概率为 0.5?

【问题讨论】:

【参考方案1】:

您有一个随机森林,因此不一定有一个明确的决策边界,就像您从 SVM 等非概率线性分类器中获得的那样。但是你可以用类似的东西来绘制它......

library(ggplot2)
ggplot(data=data,aes(x=Petal.Length, y=Sepal.Length, color= iris.rf$predicted) ) + 
       geom_point()

在这种情况下是的,因为你只在两个类上训练它,颜色变化表示的边界发生在 0.5。

【讨论】:

如果您输入 RF 模型 newdata=data.frame(expand.grid(Sepal.Length=seq(5,8,0.1), Petal.Length=seq(3,7,0.1)) ) 你不应该能够在 Sepal.Length ~ Petal.Length 平面上获得决策边界吗? 你想得到看起来像第三个数字here的东西吗? 如果x轴和y轴是RF模型的2个自变量,是的。

以上是关于如何绘制随机森林模型的决策边界的主要内容,如果未能解决你的问题,请参考以下文章

Python实现随机森林(Random Forest)

如何生产 XG 提升 / 决策树 / 随机森林模型

导出/绘制随机森林决策树/“RandomForestClassifier”对象没有属性“tree_”

随机森林原理

基于随机森林算法完成鸢尾花卉品种预测任务 代码+数据

决策树与随机森林