出几道机器学习决策树的大题并给出答案
时间: 2023-12-12 22:25:51 浏览: 43
机器学习决策树分类算法实验报告-机器学习高分大作业
5星 · 资源好评率100%
好的,下面是几道机器学习决策树的大题:
1. 假设有一个数据集 D,包含 4 个样本,每个样本有 3 个特征,如下所示:
| 特征1 | 特征2 | 特征3 | 标签 |
|-------|-------|-------|------|
| 1 | 0 | 1 | 是 |
| 1 | 1 | 0 | 是 |
| 0 | 1 | 1 | 否 |
| 0 | 0 | 1 | 否 |
请根据 ID3 算法构建决策树。
答案:首先计算出数据集的信息熵,得到 H(D) = -2/4 * log2(2/4) - 2/4 * log2(2/4) = 1。然后计算出各个特征的信息增益,得到 IG(特征1) = 1 - (2/4 * (-1/2 * log2(1/2) - 1/2 * log2(1/2)) + 2/4 * (-1/2 * log2(1/2) - 1/2 * log2(1/2))) = 0,IG(特征2) = 1 - (2/4 * (-1/2 * log2(1/2) - 1/2 * log2(1/2))) = 0.5,IG(特征3) = 1 - (2/4 * (-1/2 * log2(1/2) - 1/2 * log2(1/2)) + 2/4 * (-1 * log2(1))) = 0.311。因此选择信息增益最大的特征作为根节点,即特征2。将数据集按照特征2分为两部分,得到如下两个子数据集:
子数据集1:
| 特征1 | 特征2 | 特征3 | 标签 |
|-------|-------|-------|------|
| 1 | 1 | 0 | 是 |
| 0 | 1 | 1 | 否 |
子数据集2:
| 特征1 | 特征2 | 特征3 | 标签 |
|-------|-------|-------|------|
| 1 | 0 | 1 | 是 |
| 0 | 0 | 1 | 否 |
对于子数据集1,因为所有样本的标签都是“是”,所以可以直接将该节点标记为“是”。对于子数据集2,选择信息增益最大的特征作为子节点,即特征1。将子数据集2按照特征1分为两部分,得到如下两个子数据集:
子数据集3:
| 特征1 | 特征2 | 特征3 | 标签 |
|-------|-------|-------|------|
| 1 | 0 | 1 | 是 |
子数据集4:
| 特征1 | 特征2 | 特征3 | 标签 |
|-------|-------|-------|------|
| 0 | 0 | 1 | 否 |
对于子数据集3,因为所有样本的标签都是“是”,所以可以直接将该节点标记为“是”。对于子数据集4,因为所有样本的标签都是“否”,所以可以直接将该节点标记为“否”。因此构建出的决策树如下:
```
特征2
├── 1: 是
└── 0: 特征1
├── 1: 是
└── 0: 否
```
2. 假设有一个数据集 D,包含 5 个样本,每个样本有 2 个特征,如下所示:
| 特征1 | 特征2 | 标签 |
|-------|-------|------|
| 1 | 0 | 否 |
| 1 | 1 | 是 |
| 0 | 1 | 否 |
| 0 | 0 | 否 |
| 1 | 0 | 是 |
请根据 CART 算法构建决策树。
答案:首先计算出数据集的基尼指数,得到 G(D) = 1 - (2/5)^2 - (3/5)^2 = 0.48。然后计算出各个特征的基尼指数,得到 G(特征1) = 0.4,G(特征2) = 0.48。因此选择基尼指数最小的特征作为根节点,即特征1。将数据集按照特征1分为两部分,得到如下两个子数据集:
子数据集1:
| 特征1 | 特征2 | 标签 |
|-------|-------|------|
| 1 | 0 | 否 |
| 1 | 1 | 是 |
| 1 | 0 | 是 |
子数据集2:
| 特征1 | 特征2 | 标签 |
|-------|-------|------|
| 0 | 1 | 否 |
| 0 | 0 | 否 |
对于子数据集1,选择基尼指数最小的特征作为子节点,即特征2。将子数据集1按照特征2分为两部分,得到如下两个子数据集:
子数据集3:
| 特征1 | 特征2 | 标签 |
|-------|-------|------|
| 1 | 0 | 否 |
子数据集4:
| 特征1 | 特征2 | 标签 |
|-------|-------|------|
| 1 | 1 | 是 |
| 1 | 0 | 是 |
对于子数据集3,因为所有样本的标签都是“否”,所以可以直接将该节点标记为“否”。对于子数据集4,选择基尼指数最小的特征作为子节点,即特征2。将子数据集4按照特征2分为两部分,得到如下两个子数据集:
子数据集5:
| 特征1 | 特征2 | 标签 |
|-------|-------|------|
| 1 | 1 | 是 |
子数据集6:
| 特征1 | 特征2 | 标签 |
|-------|-------|------|
| 1 | 0 | 是 |
对于子数据集5,因为所有样本的标签都是“是”,所以可以直接将该节点标记为“是”。对于子数据集6,因为所有样本的标签都是“是”,所以可以直接将该节点标记为“是”。因此构建出的决策树如下:
```
特征1
├── 1: 特征2
│ ├── 1: 是
│ └── 0: 否
└── 0: 否
```
阅读全文