剪枝优化
将规则的“由短变长”的过程看成是树枝生长过程,那么,对树就有剪枝,包括预剪枝(阻止生长)和后剪枝(“由长变短”),在讲决策树时讨论过,这里与其相似,不再赘述。
剪枝过程涉及到规则的取舍,可以用统计显著性检验:设计一个统计量,并指定其阈值,然后,对某个规则,在训练集中计算该统计量的值,与阈值比较来决定该规则的取舍。
CN 2 \text{CN}_2 CN2算法是预剪枝,使用似然率统计量LRS(参见2.7 具体的性能检验方法 中的式(28),变形即为【西瓜书式(15.2)】所示。 式中对数中的分数具有特点:
- 分子:规则所覆盖的正(反)样例的占比。
- 分母:训练集中实际的正(反)样例的占比。
通常设定一个较大的阈值(如:0.99),当LRS大于阈值时,“树”停止生长。
降错剪枝(REP)是一种后剪枝,其简化版为IREP,若将其与“后处理优化”进行结合,更能有效地提升学习速度,突出的代表算法有RIPPER【西瓜书图15.2】所示,我们分析一下该算法的来龙去脉。
(i) 将训练集
D
D
D,分解为
D
′
D'
D′与
D
′
′
D''
D′′,分别在
D
′
D'
D′和
D
′
′
D''
D′′上训练出规则集
R
′
\mathcal{R} '
R′和
R
′
′
\mathcal{R}''
R′′,再以
R
′
∪
R
′
′
\mathcal{R}'\cup \mathcal{R}''
R′∪R′′近似地作为
D
′
∪
D
′
′
D'\cup D''
D′∪D′′的规则集,即
D
D
D的规则集
R
=
R
′
∪
R
′
′
\mathcal{R}=\mathcal{R}'\cup \mathcal{R}''
R=R′∪R′′。
(ii) 如何训练集
D
D
D的分解?将图15.3 中的显示分解改为“隐式分解”,如图15.4 所示:
(1) 修改 R ′ \mathcal{R}' R′的生成路径:由 D D D生成 R \mathcal{R} R,再对 R \mathcal{R} R进行优化,结果记为 R ′ \mathcal{R}' R′;
(2) 已知 R ′ \mathcal{R}' R′后,设 D D D中被 R ′ \mathcal{R}' R′所覆盖的为 D ′ D' D′,未覆盖的即为 D ′ ′ D'' D′′,则完成了“隐式分解”;
(3) 后续同图15.3 ,即 D D D的规则集更新为 R = R ′ ∪ R ′ ′ \mathcal{R}=\mathcal{R}'\cup \mathcal{R}'' R=R′∪R′′。
(iii) 图15.4 中,从 R \mathcal{R} R到新 R \mathcal{R} R(更新后的 R \mathcal{R} R),再在新 R \mathcal{R} R的基础上进行下一轮迭代,由此形成一个迭代算法,以 i i i记迭代次数,并指定终止值 K K K,则算法可描述成【西瓜书图15.2】的伪代码。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权
上一篇:15.4 序贯覆盖(规则集与数据集)
下一篇:15.6 一阶逻辑公式及“分拆”