规则学习中的规则 (rule) 指狭义的逻辑规则,呈 if-then 形式
\begin{align} \overbrace{\otimes}^{规则头} \underbrace{\gets}_{蕴含} \overbrace{f_1 \wedge \underbrace{f_2}_{文字} \wedge \cdots \wedge f_L}^{规则体} \end{align}
文字 (literal):对特征进行检验的布尔表达式,如$(天气 = 雨天)$
一个规则可以看成一个学习模型
符合规则的样本称为被该规则覆盖 (cover)
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$\class{blue}{是 \gets (方式 = 吃饭) \wedge (疫情 = 清零)}$
$\class{red}{否 \gets (课业 = 繁重)}$
一个样本若被判定结果不同的多个规则覆盖,称发生了冲突
冲突消解 (conflict resolution):
规则集合未必能覆盖所有未知样本
\begin{align} 规则集合 = \begin{cases} 是 \gets (方式 = 吃饭) \wedge (疫情 = 清零) \\ 否 \gets (课业 = 繁重) \end{cases} \end{align}
默认规则:例如“未被规则集合覆盖的都不约会”
序贯覆盖 (sequential covering),即逐条归纳
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$是 \gets (时间 = 周六)$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$是 \gets (时间 = 周日)$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$是 \gets (时间 = 周六) \wedge (方式 = 吃饭)$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$是 \gets (时间 = 周日) \wedge (方式 = 吃饭)$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$是 \gets (时间 = 周日) \wedge (方式 = 吃饭)$
$\class{red}{是 \gets (时间 = 周间) \wedge (课业 = 轻松)}$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$是 \gets (时间 = 周日) \wedge (方式 = 吃饭)$
$\class{red}{是 \gets (时间 = 周间) \wedge (课业 = 轻松)}$
$\class{yellow}{是 \gets (方式 = 吃饭) \wedge (课业 = 轻松)}$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$是 \gets (时间 = 周日) \wedge (方式 = 吃饭)$
$\class{red}{是 \gets (时间 = 周间) \wedge (课业 = 轻松)}$
$\class{yellow}{是 \gets (方式 = 吃饭) \wedge (课业 = 轻松)}$
$\class{blue}{是 \gets (课业 = 轻松) \wedge (电视 = 精彩)}$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$是 \gets (时间 = 周日) \wedge (方式 = 吃饭)$
$\class{red}{是 \gets (时间 = 周间) \wedge (课业 = 轻松)}$
$\class{yellow}{是 \gets (方式 = 吃饭) \wedge (课业 = 轻松)}$
$\class{blue}{是 \gets (课业 = 轻松) \wedge (电视 = 精彩)}$
$\class{orange}{是 \gets (课业=适中) \wedge (电视 = 无聊)}$
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
$是 \gets (时间 = 周日) \wedge (方式 = 吃饭)$
$\class{red}{是 \gets (时间 = 周间) \wedge (课业 = 轻松)}$
$\class{yellow}{是 \gets (方式 = 吃饭) \wedge (课业 = 轻松)}$
$\class{blue}{是 \gets (课业 = 轻松) \wedge (电视 = 精彩)}$
$\class{orange}{是 \gets (课业=适中) \wedge (电视 = 无聊)}$
$\class{cyan}{是 \gets (时间 = 周六) \wedge (方式=逛街) \\ \quad \quad \quad \wedge (课业 = 轻松)}$
序贯覆盖:删除样本
决策树:划分样本
输入:训练集$\dc = \{ (\xv_i, y_i) \}_{i \in [m]}$,属性集$\ac = \{ a_j \}_{j \in [d]}$
过程:函数$\TG(\dc,\ac)$
输出:以$v$为根结点的一棵决策树
目标:随着划分的不断进行,决策树结点的纯度越来越高
设数据集$\dc$中第$k$类样本的比例为$p_k = p(y = k)$,熵定义为
\begin{align} H(\dc) = - \sum_{k \in [C]} p_k \log p_k \end{align}
设属性$a$取值为$a_1, \ldots, a_V$,据此可将$\dc$划分为$\dc_1, \ldots, \dc_V$
用属性$a$对$\dc$进行划分产生的信息增益 (information gain)
\begin{align} \gain(\dc,a) = H(\dc) - \sum_{v \in [V]} \frac{|\dc_v|}{|\dc|} H(\dc_v) \end{align}
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 1 | 周六 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 2 | 周日 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 3 | 周日 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 4 | 周六 | 吃饭 | 阴天 | 轻松 | 清零 | 精彩 | 是 |
| 5 | 周间 | 吃饭 | 晴天 | 轻松 | 清零 | 精彩 | 是 |
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 10 | 周六 | 学习 | 雨天 | 轻松 | 严峻 | 无聊 | 否 |
| 11 | 周间 | 学习 | 雨天 | 繁重 | 严峻 | 精彩 | 否 |
| 12 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 无聊 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
| 16 | 周间 | 吃饭 | 晴天 | 繁重 | 严峻 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
\begin{align} H(\dc) & = - \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}
\begin{align} \class{red}{\dc_1}-周六,\class{yellow}{\dc_2}-周日,\class{blue}{\dc_3}-周间 \end{align}
\begin{align} \class{red}{H(\dc_1)} & = - \frac{3}{6} \log \frac{3}{6} - \frac{3}{6} \log \frac{3}{6} = \log 2 = 1 \\[4pt] \class{yellow}{H(\dc_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(\dc_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 & (\dc, 时间) = 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(\dc) & = - \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}
\begin{align} \class{red}{\dc_1}-吃饭,\class{yellow}{\dc_2}-逛街,\class{blue}{\dc_3}-学习 \end{align}
\begin{align} \class{red}{H(\dc_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(\dc_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(\dc_3)} & = 0 \end{align}
\begin{align} \gain & (\dc, 方式) = 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(\dc) & = - \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}
\begin{align} \class{red}{\dc_1}-晴天,\class{yellow}{\dc_2}-阴天,\class{blue}{\dc_3}-雨天 \end{align}
\begin{align} \class{red}{H(\dc_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(\dc_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(\dc_3)} & = 0 \end{align}
\begin{align} \gain & (\dc, 天气) = 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(\dc) & = - \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}
\begin{align} \class{red}{\dc_1}-轻松,\class{yellow}{\dc_2}-适中,\class{blue}{\dc_3}-繁重 \end{align}
\begin{align} \class{red}{H(\dc_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(\dc_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(\dc_3)} & = 0 \end{align}
\begin{align} \gain & (\dc, 课业) = 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(\dc) & = - \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}
\begin{align} \class{red}{\dc_1}-清零,\class{yellow}{\dc_2}-平缓,\class{blue}{\dc_3}-严峻 \end{align}
\begin{align} \class{red}{H(\dc_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(\dc_2)} & = - \frac{3}{6} \log \frac{3}{6} - \frac{3}{6} \log \frac{3}{6} = \log 2 = 1 \\[4pt] \class{blue}{H(\dc_3)} & = 0 \end{align}
\begin{align} \gain & (\dc, 疫情) = 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(\dc) & = - \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}
\begin{align} \class{red}{\dc_1}-精彩,\class{yellow}{\dc_2}-无聊 \end{align}
\begin{align} \class{red}{H(\dc_1)} & = - \frac{6}{12} \log \frac{6}{12} - \frac{6}{12} \log \frac{6}{12} = 1 \\[4pt] \class{yellow}{H(\dc_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 & (\dc, 电视) = 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 (\dc, 时间) = 0.108 \\ & \gain (\dc, 方式) = 0.143 \\ & \gain (\dc, 天气) = 0.141 \\ & \gain (\dc, 课业) = \class{blue}{0.381} \\ & \gain (\dc, 疫情) = 0.289 \\ & \gain (\dc, 电视) = 0.006 \\[4pt] & 属性\class{blue}{课业}的信息增益最大 \\[4pt] & \dc_1 = \{ 1, 2, 3, 4, 5, 6, 8, 10, 15 \} \\ & \dc_2 = \{ 7, 9, 13, 14, 17 \} \\ & \dc_3 = \{ 11, 12, 16 \} ,全负 \end{align}
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 7 | 周日 | 逛街 | 晴天 | 适中 | 平缓 | 无聊 | 是 |
| 9 | 周日 | 逛街 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
| 13 | 周六 | 逛街 | 晴天 | 适中 | 清零 | 精彩 | 否 |
| 14 | 周间 | 逛街 | 阴天 | 适中 | 清零 | 精彩 | 否 |
| 17 | 周六 | 吃饭 | 阴天 | 适中 | 平缓 | 精彩 | 否 |
\begin{align} & 时间: \frac{2}{5} H(\class{blue}{\{ 7,9 \}}) + \frac{2}{5} H(\{ 13,17 \}) + \frac{1}{5} H(\{ 14 \}) > 0 \\ & 方式: \frac{4}{5} H(\class{blue}{\{ 7,9,13,14 \}}) + \frac{1}{5} H(\{ 17 \}) > 0 \\ & 天气: \frac{2}{5} H(\class{blue}{\{ 7,13 \}}) + \frac{3}{5} H(\{ 9,14,17 \}) > 0 \\ & 疫情: \frac{3}{5} H(\class{blue}{\{ 7,9,17 \}}) + \frac{2}{5} H(\{ 13,14 \}) > 0 \\ & 电视: \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 (\dc_1, 时间) = H (\dc_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 (\dc_1, 方式) = H (\dc_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 (\dc_1, 天气) = H (\dc_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 (\dc_1, 疫情) = H (\dc_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 (\dc_1, 电视) = H (\dc_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 (\dc_1, 时间) = 0.043 \\ & \gain (\dc_1, 方式) = 0.458 \\ & \gain (\dc_1, 天气) = 0.331 \\ & \gain (\dc_1, 疫情) = \class{blue}{0.458} \\ & \gain (\dc_1, 电视) = 0.458 \\[4pt] & \{ 1, 2, 3, 4, 5 \} 全正,\{ 10 \} 全负 \\[4pt] & \dc_4 = \{ 6, 8, 15 \} \\ \end{align}
| 次序 | 时间 | 方式 | 天气 | 课业 | 疫情 | 电视 | 约会 |
|---|---|---|---|---|---|---|---|
| 6 | 周六 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 是 |
| 8 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 精彩 | 是 |
| 15 | 周日 | 逛街 | 晴天 | 轻松 | 平缓 | 无聊 | 否 |
\begin{align} & \gain (\dc_4, 时间) = \gain (\dc_4, 电视) = H(\dc_4) - \frac{2}{3} \times 1, ~ 不妨选时间 \end{align}
ID3 (iterative dichotomiser)
信息增益偏好取值数目多的属性,将“次序”加入属性集会如何?
C4.5 决策树:使用增益率选择最优划分属性
\begin{align} \textrm{Gain\_ratio} = \frac{\gain(\dc,a)}{\textrm{IV}(a)}, \quad \textrm{IV}(a) = -\sum_{v \in [V]} \frac{|\dc_v|}{|\dc|} \log \frac{|\dc_v|}{|\dc|} \end{align}
分类回归树 (classification and regression tree, CART)
\begin{align} \gini(\dc) = \sum_{k \in [C]} \sum_{k' \ne k} p_k p_{k'}, \quad \textrm{Gini\_index} (\dc,a) = \sum_{v \in [V]} \frac{|\dc_v|}{|\dc|} \gini(\dc_v) \end{align}
给定数据集$\dc$和属性$a$,假设$m$个样本出现了$n$个不同的取值
\begin{align} a_1 < a_2 < \cdots < a_n \end{align}
考虑$n-1$个区间的中点作为候选划分点
\begin{align} T_a = \left\{ \frac{a_i+a_{i+1}}{2} \mid i \in [n-1] \right\} \end{align}
每个划分点$t$将数据集$\dc$分为$\dc_+^{(t)}$和$\dc_-^{(t)}$两部分,信息增益为
\begin{align} \gain(\dc,a) & = \max_{t \in T_a} \gain (\dc,a,t) \\ & = \max_{t \in T_a} \left\{ H(\dc) - \frac{|\dc_+^{(t)}|}{|\dc|} H(\dc_+^{(t)}) - \frac{|\dc_-^{(t)}|}{|\dc|} H(\dc_-^{(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!) # ============== ==== ==== ======= ===== ==================== # # :Missing Attribute Values: None # :Class Distribution: 33.3% for each of 3 classes. # :Creator: R.A. Fisher # :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov) # :Date: July, 1988 # # The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken # from Fisher's paper. Note that it's the same as in R, but not as in the UCI # Machine Learning Repository, which has two wrong data points. # # This is perhaps the best known database to be found in the # pattern recognition literature. Fisher's paper is a classic in the field and # is referenced frequently to this day. (See Duda & Hart, for example.) The # data set contains 3 classes of 50 instances each, where each class refers to a # type of iris plant. One class is linearly separable from the other 2; the # latter are NOT linearly separable from each other. # # .. dropdown:: References # # - Fisher, R.A. "The use of multiple measurements in taxonomic problems" # Annual Eugenics, 7, Part II, 179-188 (1936); also in "Contributions to # Mathematical Statistics" (John Wiley, NY, 1950). # - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis. # (Q327.D83) John Wiley & Sons. ISBN 0-471-22361-1. See page 218. # - Dasarathy, B.V. (1980) "Nosing Around the Neighborhood: A New System # Structure and Classification Rule for Recognition in Partially Exposed # Environments". IEEE Transactions on Pattern Analysis and Machine # Intelligence, Vol. PAMI-2, No. 1, 67-71. # - Gates, G.W. (1972) "The Reduced Nearest Neighbor Rule". IEEE Transactions # on Information Theory, May 1972, 431-433. # - See also: 1988 MLC Proceedings, 54-64. Cheeseman et al"s AUTOCLASS II # conceptual clustering system finds 3 classes in the data. # - Many, many more ... X, y = iris.data, iris.target irisdf = pd.DataFrame( # numpy格式 -> pandas格式 np.hstack((X, y[:, np.newaxis])), columns=['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class'] ) kind_dict = {0: "setosa", 1: "versicolor", 2: "virginica"} irisdf["class"] = irisdf["class"].map(kind_dict) print(irisdf.head()) # 前5个样本 # -------------------- # sepal-length sepal-width petal-length petal-width class # 0 5.1 3.5 1.4 0.2 setosa # 1 4.9 3.0 1.4 0.2 setosa # 2 4.7 3.2 1.3 0.2 setosa # 3 4.6 3.1 1.5 0.2 setosa # 4 5.0 3.6 1.4 0.2 setosa print(irisdf.tail()) # 最后5个样本 # -------------------- # sepal-length sepal-width petal-length petal-width class # 145 6.7 3.0 5.2 2.3 virginica # 146 6.3 2.5 5.0 1.9 virginica # 147 6.5 3.0 5.2 2.0 virginica # 148 6.2 3.4 5.4 2.3 virginica # 149 5.9 3.0 5.1 1.8 virginica print(irisdf.describe()) # 特征统计信息 # -------------------- # sepal-length sepal-width petal-length petal-width # count 150.000000 150.000000 150.000000 150.000000 # mean 5.843333 3.057333 3.758000 1.199333 # std 0.828066 0.435866 1.765298 0.762238 # min 4.300000 2.000000 1.000000 0.100000 # 25% 5.100000 2.800000 1.600000 0.300000 # 50% 5.800000 3.000000 4.350000 1.300000 # 75% 6.400000 3.300000 5.100000 1.800000 # max 7.900000 4.400000 6.900000 2.500000
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 )
决策树的每一个分支都是一条逻辑规则
决策树转化成规则集,经合并、删减,泛化性能可能会变得更好
除信息增益、增益率、基尼指数外,还有许多划分准则,它们
剪枝的方法和程度对决策树泛化性能的影响很显著
多变量决策树