请用具体数字实例阐述GINI或Entropy在决策树中的使用(不与课件例子重复),并分析其区别。
时间: 2024-05-05 11:22:21 浏览: 7
假设有一组数据,其中有5个正例和5个反例,每个样本都有两个特征x1和x2,数据如下:
| x1 | x2 | y |
|----|----|---|
| 1 | 0 | 0 |
| 1 | 1 | 0 |
| 1 | 1 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 1 |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
我们需要根据这些数据构建一个决策树。
首先,我们需要选择一个特征作为根节点,可以计算每个特征的GINI或Entropy,选择最小值作为根节点。
我们先计算x1的GINI和Entropy:
- x1=0: 正例有3个,反例有2个,GINI=1-(3/5)^2-(2/5)^2=0.48,Entropy=-3/5*log2(3/5)-2/5*log2(2/5)=0.971
- x1=1: 正例有2个,反例有3个,GINI=1-(2/5)^2-(3/5)^2=0.48,Entropy=-2/5*log2(2/5)-3/5*log2(3/5)=0.971
因此,x1的GINI和Entropy都是0.48,没有区别。我们可以随意选择一个作为根节点,这里选择x1=0。
接下来,我们需要选择x1=0分支和x1=1分支的子节点。我们可以计算x2的GINI或Entropy,选择最小值作为子节点。
我们先计算x2在x1=0分支的GINI和Entropy:
- x2=0: 正例有2个,反例有2个,GINI=1-(2/4)^2-(2/4)^2=0.5,Entropy=-2/4*log2(2/4)-2/4*log2(2/4)=1
- x2=1: 正例有1个,反例有1个,GINI=1-(1/2)^2-(1/2)^2=0.5,Entropy=-1/2*log2(1/2)-1/2*log2(1/2)=1
因此,在x1=0分支中,x2的GINI和Entropy都是0.5,没有区别。我们可以随意选择一个作为子节点,这里选择x2=0。
接下来,我们计算x2在x1=1分支的GINI和Entropy:
- x2=0: 正例有1个,反例有1个,GINI=1-(1/2)^2-(1/2)^2=0.5,Entropy=-1/2*log2(1/2)-1/2*log2(1/2)=1
- x2=1: 正例有1个,反例有2个,GINI=1-(1/3)^2-(2/3)^2=0.44,Entropy=-1/3*log2(1/3)-2/3*log2(2/3)=0.918
因此,在x1=1分支中,x2的GINI为0.44,Entropy为0.918,我们选择Entropy最小的x2=1作为子节点。
最终的决策树如下:
```
x1=0
/ \
x2=0 x2=1(y)
| |
y x1=1
/ \
x2=0 x2=1
(y) |
y
```
从上面的例子中可以看出,GINI和Entropy都是用来衡量数据集的不纯度,它们的差别在于:
- GINI指标更注重分类的准确性,适用于多分类问题,计算简单,但它对于少数类样本比较敏感。
- Entropy指标更注重信息增益,适用于二分类问题,计算稍微复杂一些,但它对于少数类样本比较不敏感。