使用 R 的决策树中的 y 是什么意思

what is mean y in decision tree using R

我在 R 中使用虹膜数据。

我写的代码是这样的:

irisctree<-ctree(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width)
plot(itisctree,type="simple")

然后,结果看到我是这样的:

这是什么意思?

y=(1,0,0) 和 y=(0,0.939,0.061), y=(0,0.031,0.969)

如果您查看 iris 数据集中的 Species(您的响应变量),您会发现它是一个具有 3 个水平的因子:

> unique(iris$Species)
[1] setosa     versicolor virginica 
Levels: setosa versicolor virginica

鉴于级别按上述顺序出现:setosa、versicolor、virginica,决策树的输出是每个级别的概率,概率总和为 1。

要验证这一点,请查看树的左侧拆分。它在 Petal.Length <= 1.9 处分裂。 Petal.Length <= 1.9时的物种分布情况如何?

prop.table(table(iris[iris$Petal.Length <= 1.9,]$Species))

setosa versicolor  virginica 
     1          0          0

在上面的代码中,我对 Petal.Length <= 1.9 进行了子集化,然后查看物种的分布(因此 prop.table(table(...)))。 100% 是 Setosa。

另一个例子:右拆分 (Petal.Length > 1.9) 和左拆分 (Petal.Width <= 1.6)。结果是:

prop.table(table(iris[iris$Petal.Length > 1.9 & iris$Petal.Width <= 1.6,]$Species))

setosa versicolor  virginica 
0.00000000 0.92307692 0.07692308 

我这里的号码和你的不匹配。我相信你有一个 100 行的训练集,而我正在使用整个数据集。这可能是差异的原因。如果我错了请纠正我。

对于位于每个叶节点中的实例,这些是目标变量 Species 的三个 类 中每一个的概率。

因此,例如,在您的中间叶子中,Species == setosa 的概率为 0,Species == versicolor 为 0.939,Species == virginica 的概率为 0.061。