生成CART决策树计算过程例子
时间: 2023-11-27 07:41:49 浏览: 41
这里提供一个简单的例子来演示生成CART决策树的计算过程:
假设我们有一个数据集,其中包含了5个样本,每个样本有三个特征:x1、x2和x3,以及一个二分类的标签y。数据集如下:
| 样本 | x1 | x2 | x3 | y |
| --- | --- | --- | --- | --- |
| 1 | 1 | 2 | 0 | 0 |
| 2 | 1 | 3 | 1 | 1 |
| 3 | 2 | 2 | 0 | 0 |
| 4 | 3 | 1 | 1 | 1 |
| 5 | 3 | 3 | 0 | 0 |
我们要使用CART算法生成一个决策树来对这个数据集进行分类。下面是CART算法生成决策树的步骤:
1. 选择初始节点,将整个数据集作为初始节点。计算当前节点的基尼指数(或者信息熵),作为当前节点的损失函数。
2. 对于每个特征,计算在当前节点上的基尼指数或信息熵,选择最小的作为当前特征。
3. 对于当前选择的特征,将所有可能的取值分成两个子集,计算每个子集的基尼指数或信息熵,选择最小的作为该子集的损失函数。选择使得损失函数最小的特征和子集作为当前节点的分裂条件。
4. 重复步骤2和3,直到满足停止条件(如达到最大深度、节点样本数量小于阈值等)为止。在每个叶节点上输出该节点的类别。
下面我们来演示这个算法在我们的数据集上的运行过程:
1. 首先计算整个数据集的基尼指数作为初始损失函数:
Gini(D) = 1 - (3/5)^2 - (2/5)^2 = 0.48
2. 对于每个特征,计算在当前节点上的基尼指数,选择最小的作为当前特征:
Gini(D, x1) = 0.4
Gini(D, x2) = 0.48
Gini(D, x3) = 0.4
因此选择特征x1作为当前特征。
3. 对于特征x1,将所有可能的取值分成两个子集,计算每个子集的基尼指数,选择最小的作为该子集的损失函数。选择使得损失函数最小的特征和子集作为当前节点的分裂条件:
Gini(D1) = 1 - (1/2)^2 - (1/2)^2 = 0.5
Gini(D2) = 0
因此选择x1=1作为分裂条件,将样本1和2划分到左子树,将样本3、4和5划分到右子树。
4. 对于左子树,重复步骤2和3,选择特征x2作为当前特征,将样本1和2划分到x2=2的节点和x2=3的节点。因为左子树上的节点样本全部属于同一类别,因此不再进行分裂。
5. 对于右子树,重复步骤2和3,选择特征x3作为当前特征,将样本3和5划分到x3=0的节点,将样本4划分到x3=1的节点。因为右子树上的节点样本全部属于同一类别,因此不再进行分裂。
最后得到的决策树如下图所示:
```
x1=1
/ \
x2=2 x2=3
/ \
0 1
x1=2,3
/ \
x3=0 x3=1
/ \ \
0 1 1
```
这就是使用CART算法生成的决策树,可以使用该决策树对新样本进行分类。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)