决策树中用信息增益来计算的实际数据例子
时间: 2024-04-24 14:21:52 浏览: 48
假设我们有一个数据集,其中包含了一些水果的属性和标签,如下表所示:
| 编号 | 颜色 | 直径(cm) | 类别 |
|------|---------|------------|------|
| 1 | 红色 | 3 | 苹果 |
| 2 | 红色 | 3 | 苹果 |
| 3 | 红色 | 1 | 葡萄 |
| 4 | 黄色 | 3 | 葡萄 |
| 5 | 黄色 | 2 | 橙子 |
| 6 | 红色 | 1 | 葡萄 |
| 7 | 红色 | 2 | 橙子 |
| 8 | 绿色 | 3 | 苹果 |
| 9 | 红色 | 3 | 苹果 |
| 10 | 黄色 | 1 | 橙子 |
我们想要用决策树来预测水果的类别。首先,我们需要选择一个属性来作为根节点。我们可以选择颜色或者直径作为根节点。这里我们选择颜色作为根节点。我们需要用信息增益来计算颜色这个属性的重要性。
首先,我们需要计算整个数据集的熵,用公式 $H(S) = -\sum_{i=1}^{c}p_i \log_2 p_i$ 来计算,其中 $c$ 是类别的个数,$p_i$ 是类别 $i$ 在数据集中出现的概率。在这个例子中,$c=3$,类别分别是苹果、葡萄和橙子。我们可以计算出整个数据集的熵为:
$$H(S) = -\frac{4}{10}\log_2\frac{4}{10} -\frac{3}{10}\log_2\frac{3}{10} -\frac{3}{10}\log_2\frac{3}{10} = 1.57$$
接下来,我们需要计算颜色这个属性对数据集的信息增益。用公式 $IG(S,A) = H(S) - \sum_{v \in Values(A)} \frac{|S_v|}{|S|}H(S_v)$ 来计算,其中 $A$ 是属性,$Values(A)$ 是属性 $A$ 取值的集合,$S_v$ 是在属性 $A$ 取值为 $v$ 的数据子集。在这个例子中,我们可以计算出颜色这个属性对数据集的信息增益为:
$$IG(S, 颜色) = 1.57 - \frac{7}{10}(-\frac{4}{7}\log_2\frac{4}{7} -\frac{3}{7}\log_2\frac{3}{7}) - \frac{3}{10}(-\frac{2}{3}\log_2\frac{2}{3} -\frac{1}{3}\log_2\frac{1}{3}) = 0.24$$
由于信息增益最大的属性是颜色,所以我们选择颜色作为根节点。接下来,我们需要对颜色的每个取值(红色、黄色、绿色)分别建立子树。在子树中,我们需要对剩下的属性(直径)计算信息增益,以此来选择下一个节点。重复这个过程,直到所有的叶子节点都属于同一个类别。
阅读全文