相同的特征集导致不同结果的决策树

数据挖掘 机器学习 决策树
2022-02-14 11:54:09

我正在按照此页面中描述的示例来测试我的决策树程序。

初始数据集是

age            astigmatism, tp-rate, contact-lenses
---------------------------------------------------
young,          no,  normal,  soft
young,          yes, reduced, none
young,          yes, normal,  hard
pre-presbyopic, no,  reduced, none
pre-presbyopic, no,  normal,  soft
pre-presbyopic, yes, normal,  hard
pre-presbyopic, yes, normal,  none
pre-presbyopic, yes, normal,  none
presbyopic,     no,  reduced, none
presbyopic,     no,  normal,  none
presbyopic,     yes, reduced, none
presbyopic,     yes, normal,  hard

年龄散光tp 率是特征,隐形眼镜的类型是结果。

当我跟踪这个例子时(熵最低的特征被用作决策节点),我们在页面的下方看到了以下情况: 在此处输入图像描述

蓝色圆圈显然是我的,以便于追踪。正如我们在构建的树中看到的那样,路径

[Astigmatism = yes] -> [TP-Rate = normal] -> [Age = PP (pre-presbyopic)]

将导致[Contact-lenses = None]的结果。

但是,当您查看数据时,我们会发现这条路径可能会导致隐形眼镜类型为 型或无型。在此处输入图像描述

那么这个例子做出了正确的决定吗?

如果没有,在拆分数据集最终在一组相同的特征下产生多个结果的情况下我们应该怎么做?

3个回答

手头的任务可以建模为分类问题。
基于某些给定特征的意义,我们旨在预测结果的“正确”类别。
一旦经过训练,大多数分类模型(包括决策树)将在给定一组输入特征的情况下预测最可能的类别。
学习什么是最可能的类,通常在模型训练的“拟合”步骤中完成。
在您的示例中,这组功能导致 2 个可能的类(硬,无),这意味着有 50% 的机会是其中一个。
分类器在预测“无”标签时与它的正确性一样错误。

** 一些决策树实现包括一个选项来预测每个类的概率,并且只有在定义了特定的置信度阈值时才预测一个类。

您可以将您的隐形眼镜列重新编码为 3 个新列,每列都是一种镜片类型的二进制指示符。对于您的示例,这将允许您查看 Yes | 的概率。正常 | PP 导致无(比如 75%),在单独的树中它导致硬(25%)。在这种情况下,任何独特的特征组合都会产生多种结果(给定足够的样本量),您可能会发现这是常态,而不是例外。

由于这两个数据点具有相同的特征,它们将始终预测相同的输出,因为机器学习算法学习的是从输入到输出的映射。话虽如此,它们仍然具有不同的输出,因为它们在数据集中未包含的其他功能方面有所不同。

因此,机器学习算法无法区分这对数据之间的差异,因为它们的输入完全相同。实际上,这样的问题一直存在。通常,决策树将预测每个叶子的多数。不过,您可以做两件事:

  1. 正如 DaFanat 所说,输出一个概率来显示不确定性。
  2. 包括更多功能以减少不确定性。