规则学习中的规则 (rule) 指狭义的逻辑规则,呈 if-then 形式
$$ \begin{align*} \quad \overbrace{\otimes}^{\text{规则头}} \underbrace{\longleftarrow}_{\text{蕴含}} \overbrace{f_1 \wedge \underbrace{f_2}_{\text{文字}} \wedge \cdots \wedge f_L}^{\text{规则体}} \end{align*} $$
文字 (literal):对特征进行检验的布尔表达式,如$(\text{天气 = 雨天})$
一个规则可以看成一个学习模型
符合规则的样本称为被该规则覆盖 (cover)
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$\class{blue}{\text{是} \longleftarrow (\text{方式=吃饭}) \wedge (\text{疫情=清零})}$
$\class{red}{\text{否} \longleftarrow (\text{课业=繁重})}$
一个样本若被判定结果不同的多个规则覆盖,称发生了冲突
冲突消解 (conflict resolution):
规则集合未必能覆盖所有未知样本
$$ \begin{align*} \qquad \quad \text{规则集合} = \begin{cases} \text{是} \longleftarrow (\text{方式=吃饭}) \wedge (\text{疫情=清零}) \\ \text{否} \longleftarrow (\text{课业=繁重}) \end{cases} \end{align*} $$
默认规则:例如“未被规则集合覆盖的都不约会”
序贯覆盖 (sequential covering),即逐条归纳
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$\text{是} \longleftarrow (\text{时间=周六})$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$\text{是} \longleftarrow (\text{时间=周日})$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$\text{是} \longleftarrow (\text{时间=周六}) \wedge (\text{方式=吃饭})$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$\text{是} \longleftarrow (\text{时间=周日}) \wedge (\text{方式=吃饭})$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$\text{是} \longleftarrow (\text{时间=周日}) \wedge (\text{方式=吃饭})$
$\class{red}{\text{是} \longleftarrow (\text{时间=周间}) \wedge (\text{课业=轻松})}$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$\text{是} \longleftarrow (\text{时间=周日}) \wedge (\text{方式=吃饭})$
$\class{red}{\text{是} \longleftarrow (\text{时间=周间}) \wedge (\text{课业=轻松})}$
$\class{yellow}{\text{是} \longleftarrow (\text{方式=吃饭}) \wedge (\text{课业=轻松})}$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$\text{是} \longleftarrow (\text{时间=周日}) \wedge (\text{方式=吃饭})$
$\class{red}{\text{是} \longleftarrow (\text{时间=周间}) \wedge (\text{课业=轻松})}$
$\class{yellow}{\text{是} \longleftarrow (\text{方式=吃饭}) \wedge (\text{课业=轻松})}$
$\class{blue}{\text{是} \longleftarrow (\text{课业=轻松}) \wedge (\text{电视=精彩})}$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$\text{是} \longleftarrow (\text{时间=周日}) \wedge (\text{方式=吃饭})$
$\class{red}{\text{是} \longleftarrow (\text{时间=周间}) \wedge (\text{课业=轻松})}$
$\class{yellow}{\text{是} \longleftarrow (\text{方式=吃饭}) \wedge (\text{课业=轻松})}$
$\class{blue}{\text{是} \longleftarrow (\text{课业=轻松}) \wedge (\text{电视=精彩})}$
$\class{orange}{\text{是} \longleftarrow (\text{课业=适中}) \wedge (\text{电视=无聊})}$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$\text{是} \longleftarrow (\text{时间=周日}) \wedge (\text{方式=吃饭})$
$\class{red}{\text{是} \longleftarrow (\text{时间=周间}) \wedge (\text{课业=轻松})}$
$\class{yellow}{\text{是} \longleftarrow (\text{方式=吃饭}) \wedge (\text{课业=轻松})}$
$\class{blue}{\text{是} \longleftarrow (\text{课业=轻松}) \wedge (\text{电视=精彩})}$
$\class{orange}{\text{是} \longleftarrow (\text{课业=适中}) \wedge (\text{电视=无聊})}$
$\class{cyan}{\text{是} \longleftarrow (\text{时间=周六}) \wedge (\text{方式=逛街}) \\ \quad \quad \quad \wedge (\text{课业=轻松})}$
序贯覆盖:删除样本
决策树:划分样本
输入:训练集$D = \{ (\xv_i, y_i) \}_{i \in [m]}$,属性集$A = \{ a_j \}_{j \in [d]}$
过程:函数$\TG(D,A)$
输出:以$\node$为根结点的一棵决策树
目标:随着划分的不断进行,决策树结点的纯度越来越高
设数据集$D$中第$k$类样本的比例为$p_k = p(y = k)$,熵定义为
$$ \begin{align*} \quad H(D) = - \sum_{k \in [C]} p_k \log p_k \end{align*} $$
设属性$a$取值为$a_1, \ldots, a_V$,据此可将$D$划分为$D_1, \ldots, D_V$
用属性$a$对$D$进行划分产生的信息增益 (information gain)
$$ \begin{align*} \quad \gain(D,a) = H(D) - \sum_{v \in [V]} \frac{|D_v|}{|D|} H(D_v) \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$$ \begin{align*} H(D) & = - \frac{8}{17} \log \frac{8}{17} - \frac{9}{17} \log \frac{9}{17} \\ & = \log 17 - \frac{18}{17} \log 3 - \frac{24}{17} = 0.998 \end{align*} $$
$\class{red}{D_1}$-周六,$\class{yellow}{D_2}$-周日,$\class{blue}{D_3}$-周间
$$ \begin{align*} \class{red}{H(D_1)} & = - \frac{3}{6} \log \frac{3}{6} - \frac{3}{6} \log \frac{3}{6} = \log 2 = 1 \\[4pt] \class{yellow}{H(D_2)} & = - \frac{4}{6} \log \frac{4}{6} - \frac{2}{6} \log \frac{2}{6} \\ & = \log 3 - \frac{2}{3} = 0.918 \\[4pt] \class{blue}{H(D_3)} & = - \frac{1}{5} \log \frac{1}{5} - \frac{4}{5} \log \frac{4}{5} \\ & = \log 5 - \frac{8}{5} = 0.722 \end{align*} $$
$$ \begin{align*} \gain & (D, \text{时间}) = 0.998 - \frac{6}{17} \times 1 \\ & - \frac{6}{17} \times 0.918 - \frac{5}{17} \times 0.722 = 0.108 \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$$ \begin{align*} H(D) & = - \frac{8}{17} \log \frac{8}{17} - \frac{9}{17} \log \frac{9}{17} \\ & = \log 17 - \frac{18}{17} \log 3 - \frac{24}{17} = 0.998 \end{align*} $$
$\class{red}{D_1}$-吃饭,$\class{yellow}{D_2}$-逛街,$\class{blue}{D_3}$-学习
$$ \begin{align*} \class{red}{H(D_1)} & = - \frac{5}{8} \log \frac{5}{8} - \frac{3}{8} \log \frac{3}{8} \\ & = 3 - \frac{5}{8} \log 5 - \frac{3}{8} \log 3 = 0.954 \\[4pt] \class{yellow}{H(D_2)} & = - \frac{3}{7} \log \frac{3}{7} - \frac{4}{7} \log \frac{4}{7} \\ & = \log 7 - \frac{3}{7} \log 3 - \frac{8}{7} = 0.985 \\[4pt] \class{blue}{H(D_3)} & = 0 \end{align*} $$
$$ \begin{align*} \gain & (D, \text{方式}) = 0.998 - \frac{8}{17} \times 0.954 \\ & - \frac{7}{17} \times 0.985 = 0.143 \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$$ \begin{align*} H(D) & = - \frac{8}{17} \log \frac{8}{17} - \frac{9}{17} \log \frac{9}{17} \\ & = \log 17 - \frac{18}{17} \log 3 - \frac{24}{17} = 0.998 \end{align*} $$
$\class{red}{D_1}$-晴天,$\class{yellow}{D_2}$-阴天,$\class{blue}{D_3}$-雨天
$$ \begin{align*} \class{red}{H(D_1)} & = - \frac{6}{10} \log \frac{6}{10} - \frac{4}{10} \log \frac{4}{10} \\ & = \log 5 - \frac{3}{5} \log 3 - \frac{2}{5} = 0.971 \\[4pt] \class{yellow}{H(D_2)} & = - \frac{2}{5} \log \frac{2}{5} - \frac{3}{5} \log \frac{3}{5} \\ & = \log 5 - \frac{3}{5} \log 3 - \frac{2}{5} = 0.971 \\[4pt] \class{blue}{H(D_3)} & = 0 \end{align*} $$
$$ \begin{align*} \gain & (D, \text{天气}) = 0.998 - \frac{10}{17} \times 0.971 \\ & - \frac{5}{17} \times 0.971 = 0.141 \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$$ \begin{align*} H(D) & = - \frac{8}{17} \log \frac{8}{17} - \frac{9}{17} \log \frac{9}{17} \\ & = \log 17 - \frac{18}{17} \log 3 - \frac{24}{17} = 0.998 \end{align*} $$
$\class{red}{D_1}$-轻松,$\class{yellow}{D_2}$-适中,$\class{blue}{D_3}$-繁重
$$ \begin{align*} \class{red}{H(D_1)} & = - \frac{7}{9} \log \frac{7}{9} - \frac{2}{9} \log \frac{2}{9} \\ & = 2 \log 3 - \frac{7}{9} \log 7 - \frac{2}{9} = 0.764 \\[4pt] \class{yellow}{H(D_2)} & = - \frac{1}{5} \log \frac{1}{5} - \frac{4}{5} \log \frac{4}{5} \\ & = \log 5 - \frac{8}{5} = 0.722 \\[4pt] \class{blue}{H(D_3)} & = 0 \end{align*} $$
$$ \begin{align*} \gain & (D, \text{课业}) = 0.998 - \frac{9}{17} \times 0.764 \\ & - \frac{5}{17} \times 0.722 = 0.381 \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$$ \begin{align*} H(D) & = - \frac{8}{17} \log \frac{8}{17} - \frac{9}{17} \log \frac{9}{17} \\ & = \log 17 - \frac{18}{17} \log 3 - \frac{24}{17} = 0.998 \end{align*} $$
$\class{red}{D_1}$-清零,$\class{yellow}{D_2}$-平缓,$\class{blue}{D_3}$-严峻
$$ \begin{align*} \class{red}{H(D_1)} & = - \frac{5}{7} \log \frac{5}{7} - \frac{2}{7} \log \frac{2}{7} \\ & = \log 7 - \frac{5}{7} \log 5 - \frac{2}{7} = 0.863 \\[4pt] \class{yellow}{H(D_2)} & = - \frac{3}{6} \log \frac{3}{6} - \frac{3}{6} \log \frac{3}{6} = \log 2 = 1 \\[4pt] \class{blue}{H(D_3)} & = 0 \end{align*} $$
$$ \begin{align*} \gain & (D, \text{疫情}) = 0.998 - \frac{7}{17} \times 0.863 \\ & - \frac{6}{17} \times 1 = 0.289 \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$$ \begin{align*} H(D) & = - \frac{8}{17} \log \frac{8}{17} - \frac{9}{17} \log \frac{9}{17} \\ & = \log 17 - \frac{18}{17} \log 3 - \frac{24}{17} = 0.998 \end{align*} $$
$\class{red}{D_1}$-精彩,$\class{yellow}{D_2}$-无聊
$$ \begin{align*} \class{red}{H(D_1)} & = - \frac{6}{12} \log \frac{6}{12} - \frac{6}{12} \log \frac{6}{12} = 1 \\[4pt] \class{yellow}{H(D_2)} & = - \frac{2}{5} \log \frac{2}{5} - \frac{3}{5} \log \frac{3}{5} \\ & = \log 5 - \frac{3}{5} \log 3 - \frac{2}{5} = 0.971 \end{align*} $$
$$ \begin{align*} \gain & (D, \text{电视}) = 0.998 - \frac{12}{17} \times 1 \\ & - \frac{5}{17} \times 0.971 = 0.006 \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$$ \begin{align*} & \gain (D, \text{时间}) = 0.108 \\ & \gain (D, \text{方式}) = 0.143 \\ & \gain (D, \text{天气}) = 0.141 \\ & \gain (D, \text{课业}) = 0.381 \\ & \gain (D, \text{疫情}) = 0.289 \\ & \gain (D, \text{电视}) = 0.006 \\[4pt] & \text{属性“}\class{blue}{\text{课业}}\text{”的信息增益最大} \\[4pt] & D_1 = \{ 1, 2, 3, 4, 5, 6, 8, 10, 15 \} \\ & D_2 = \{ 7, 9, 13, 14, 17 \} \\ & D_3 = \{ 11, 12, 16 \} \text{,全负} \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$$ \begin{align*} & \text{时间:} \frac{2}{5} H(\class{blue}{\{ 7,9 \}}) + \frac{2}{5} H(\{ 13,17 \}) + \frac{1}{5} H(\{ 14 \}) > 0 \\ & \text{方式:} \frac{4}{5} H(\class{blue}{\{ 7,9,13,14 \}}) + \frac{1}{5} H(\{ 17 \}) > 0 \\ & \text{天气:} \frac{2}{5} H(\class{blue}{\{ 7,13 \}}) + \frac{3}{5} H(\{ 9,14,17 \}) > 0 \\ & \text{疫情:} \frac{3}{5} H(\class{blue}{\{ 7,9,17 \}}) + \frac{2}{5} H(\{ 13,14 \}) > 0 \\ & \text{电视:} \frac{1}{5} H(\{ 7 \}) + \frac{4}{5} H(\{ 9,13,14,17 \}) = 0 \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
$$ \begin{align*} & \gain (D_1, \text{时间}) = H (D_1) - \frac{4}{9} \class{red}{H(\{ 1,4,6,10 \})} - \frac{4}{9} \class{yellow}{H(\{ 2,3,8,15 \})} - \frac{1}{9} \class{blue}{H(\{ 5 \})} \\ & = \left( - \frac{7}{9} \log \frac{7}{9} - \frac{2}{9} \log \frac{2}{9} \right) - \frac{4}{9} \left( - \frac{3}{4} \log \frac{3}{4} - \frac{1}{4} \log \frac{1}{4} \right) - \frac{4}{9} \left( - \frac{3}{4} \log \frac{3}{4} - \frac{1}{4} \log \frac{1}{4} \right) \\ & = \frac{8}{3} \log 3 - \frac{7}{9} \log 7 - 2 = 0.043 \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
$$ \begin{align*} & \gain (D_1, \text{方式}) = H (D_1) - \frac{5}{9} \class{red}{H(\{ 1,2,3,4,5 \})} - \frac{3}{9} \class{yellow}{H(\{ 6,8,15 \})} - \frac{1}{9} \class{blue}{H(\{ 10 \})} \\ & = \left( - \frac{7}{9} \log \frac{7}{9} - \frac{2}{9} \log \frac{2}{9} \right) - \frac{3}{9} \left( - \frac{2}{3} \log \frac{2}{3} - \frac{1}{3} \log \frac{1}{3} \right) \\ & = \frac{5}{3} \log 3 - \frac{7}{9} \log 7 = 0.458 \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
$$ \begin{align*} & \gain (D_1, \text{天气}) = H (D_1) - \frac{6}{9} \class{red}{H(\{ 1,3,5,6,8,15 \})} - \frac{2}{9} \class{yellow}{H(\{ 2,4 \})} - \frac{1}{9} \class{blue}{H(\{ 10 \})} \\ & = \left( - \frac{7}{9} \log \frac{7}{9} - \frac{2}{9} \log \frac{2}{9} \right) - \frac{6}{9} \left( - \frac{5}{6} \log \frac{5}{6} - \frac{1}{6} \log \frac{1}{6} \right) \\ & = \frac{4}{3} \log 3 - \frac{7}{9} \log 7 + \frac{5}{9} \log 5 - \frac{8}{9} = 0.331 \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
$$ \begin{align*} & \gain (D_1, \text{疫情}) = H (D_1) - \frac{5}{9} \class{red}{H(\{ 1,2,3,4,5 \})} - \frac{3}{9} \class{yellow}{H(\{ 6,8,15 \})} - \frac{1}{9} \class{blue}{H(\{ 10 \})} \\ & = \left( - \frac{7}{9} \log \frac{7}{9} - \frac{2}{9} \log \frac{2}{9} \right) - \frac{3}{9} \left( - \frac{2}{3} \log \frac{2}{3} - \frac{1}{3} \log \frac{1}{3} \right) \\ & = \frac{5}{3} \log 3 - \frac{7}{9} \log 7 = 0.458 \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
$$ \begin{align*} & \gain (D_1, \text{电视}) = H (D_1) - \frac{6}{9} \class{red}{H(\{ 1,2,3,4,5,8 \})} - \frac{3}{9} \class{yellow}{H(\{ 6,10,15 \})} \\ & = \left( - \frac{7}{9} \log \frac{7}{9} - \frac{2}{9} \log \frac{2}{9} \right) - \frac{3}{9} \left( - \frac{2}{3} \log \frac{2}{3} - \frac{1}{3} \log \frac{1}{3} \right) \\ & = \frac{5}{3} \log 3 - \frac{7}{9} \log 7 = 0.458 \end{align*} $$
$$ \begin{align*} & \gain (D_1, \text{时间}) = 0.043 \\ & \gain (D_1, \text{方式}) = 0.458 \\ & \gain (D_1, \text{天气}) = 0.331 \\ & \gain (D_1, \text{疫情}) = 0.458 ~ \surd \\ & \gain (D_1, \text{电视}) = 0.458 \\[4pt] & \{ 1, 2, 3, 4, 5 \} \text{全正,}\{ 10 \}\text{全负} \\ & D_4 = \{ 6, 8, 15 \} \\ \end{align*} $$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
$$ \begin{align*} & \gain (D_4, \text{时间}) = \gain (D_4, \text{电视}) = H(D_4) - \frac{2}{3} \times 1 \text{,不妨选时间} \end{align*} $$
ID3 (iterative dichotomiser)
信息增益偏好取值数目多的属性,将“次序”加入属性集会如何?
C4.5 决策树:使用增益率选择最优划分属性
$$ \begin{align*} \quad \mathrm{Gain\_ratio} = \frac{\gain(D,a)}{\mathrm{IV}(a)}, \quad \mathrm{IV}(a) = -\sum_{v \in [V]} \frac{|D_v|}{|D|} \log \frac{|D_v|}{|D|} \end{align*} $$
分类回归树 (classification and regression tree, CART)
$$ \begin{align*} \quad & \gini(D) = \sum_{k \in [C]} \sum_{k' \ne k} p_k p_{k'}, \quad \mathrm{Gini\_index} (D,a) = \sum_{v \in [V]} \frac{|D_v|}{|D|} \gini(D_v) \end{align*} $$
给定数据集$D$和属性$a$,假设$m$个样本出现了$n$个不同的取值
$$ \begin{align*} \quad a_1 < a_2 < \cdots < a_n \end{align*} $$
考虑$n-1$个区间的中点作为候选划分点
$$ \begin{align*} \quad T_a = \left\{ \frac{a_i+a_{i+1}}{2} \mid i \in [n-1] \right\} \end{align*} $$
每个划分点$t$将数据集$D$分为$D_+^{(t)}$和$D_-^{(t)}$两部分,信息增益为
$$ \begin{align*} \quad \gain(D,a) & = \max_{t \in T_a} \gain (D,a,t) \\ & = \max_{t \in T_a} \left\{ H(D) - \frac{|D_+^{(t)}|}{|D|} H(D_+^{(t)}) - \frac{|D_-^{(t)}|}{|D|} H(D_-^{(t)}) \right\} \end{align*} $$
美国植物学家安德森收集,英国统计学家费雪引入到统计分析中
150 个样本
4 个特征
3 个类别,每类 50 个样本
import numpy as np import pandas as pd from sklearn.datasets import load_iris iris = load_iris() print(iris.DESCR) # -------------------- # Iris plants dataset # # **Data Set Characteristics:** # # :Number of Instances: 150 (50 in each of three classes) # :Number of Attributes: 4 numeric, predictive attributes and the class # :Attribute Information: # - sepal length in cm 花萼长度 # - sepal width in cm 花萼宽度 # - petal length in cm 花瓣长度 # - petal width in cm 花瓣宽度 # - class: # - Iris-Setosa 山鸢尾 # - Iris-Versicolour 杂色鸢尾 # - Iris-Virginica 维吉尼亚鸢尾 # # :Summary Statistics: # # ============== ==== ==== ======= ===== ==================== # Min Max Mean SD Class Correlation # ============== ==== ==== ======= ===== ==================== # sepal length: 4.3 7.9 5.84 0.83 0.7826 # sepal width: 2.0 4.4 3.05 0.43 -0.4194 # petal length: 1.0 6.9 3.76 1.76 0.9490 (high!) # petal width: 0.1 2.5 1.20 0.76 0.9565 (high!) # ============== ==== ==== ======= ===== ==================== #
from sklearn import tree import graphviz clf = tree.DecisionTreeClassifier() clf = clf.fit(X, y) dot_data = tree.export_graphviz( clf, out_file=None ) graph = graphviz.Source(dot_data) graph
from sklearn import tree import graphviz clf = tree.DecisionTreeClassifier( criterion='entropy', max_depth=4 ) clf = clf.fit(X, y) dot_data = tree.export_graphviz( clf, out_file=None ) graph = graphviz.Source(dot_data) graph
class sklearn.tree.DecisionTreeClassifier(*, criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, class_weight=None, ccp_alpha=0.0 )
决策树的每一个分支都是一条逻辑规则
决策树转化成规则集,经合并、删减,泛化性能可能会变得更好
除信息增益、增益率、基尼指数外,还有许多划分准则,它们
剪枝的方法和程度对决策树泛化性能的影响很显著
多变量决策树