前置知识:
顺序覆盖是一种流行的基于规则分类的算法,用于学习析取规则集。其基本思想是:先学习一条规则,移除该规则覆盖的数据,然后重复此过程。在这个过程中,它会在训练阶段以顺序的方式涵盖所有相关规则。
涉及的算法:
**Sequential_covering (Target_attribute, Attributes, Examples, Threshold):**
Learned_rules = {}
Rule = Learn-One-Rule(Target_attribute, Attributes, Examples)
while Performance(Rule, Examples) > Threshold :
Learned_rules = Learned_rules + Rule
Examples = Examples - {examples correctly classified by Rule}
Rule = Learn-One-Rule(Target_attribute, Attributes, Examples)
Learned_rules = sort Learned_rules according to performance over Examples
return Learned_rules
这种顺序学习算法在某种程度上解决了 Learn-One-Rule 算法中的低覆盖率问题,它通过顺序的方式覆盖了所有规则。
算法运作原理:
该算法涉及一组“有序规则”或“决策列表”的生成。
> 步骤 1 – 创建一个空的决策列表,‘R‘。
> 步骤 2 – ‘Learn-One-Rule‘ 算法
> 它为特定的类别 ‘y‘ 提取最佳规则,其中规则定义如下:(图 2)
规则的通用形式
r{i}:\left(\text {condition}{1}, \ldots, \text { condition}{i}\right) \rightarrow y{i}
> 在开始阶段,
> 步骤 2.a – 如果所有训练样本 ∈ 类别 ‘y‘,则将其分类为正例(positive example)。
> 步骤 2.b – 否则,如果所有训练样本 ∉ 类别 ‘y‘,则将其分类为反例(negative example)。
>
> 步骤 3 – 当一条规则覆盖了大部分正例时,该规则就变得“理想”。
> 步骤 4 – 当获得这条规则后,删除与该规则相关的所有训练数据。
> (即当规则应用于数据集时,它覆盖了大部分训练数据,这些数据必须被移除)
>
> 步骤 5 – 新规则被添加到决策列表 ‘R‘ 的底部。(图 3)
!image图 3:决策列表 ‘R‘
下面是对该算法工作原理的直观描述。
!image图 4:算法工作原理的直观表示
- 让我们逐步理解图 4 所示示例中算法是如何工作的。
- 首先,我们创建了一个空的决策列表。在步骤 1 中,我们看到数据集中存在三组正例。因此,按照算法,我们选择包含正例数量最多的那一组。(如图 4 步骤 1 所示,数量为 6)
- 一旦我们覆盖了这 6 个正例,我们就得到了第一条规则 R1,它被推入决策列表,并且这些正例会从数据集中移除。(如图 4 步骤 2 所示)
- 现在,我们选取下一组多数正例 (如图 4 步骤 2 所示,数量为 5) 并遵循相同的过程,直到获得规则 R2。(R3 同理)
- 最后,我们获得了包含所有理想规则的最终决策列表。
顺序学习是一种在机器学习中生成基于规则分类器的强大算法。它使用 ‘Learn-One-Rule‘ 算法作为基础,来学习一系列析取规则。如果您对该算法有任何疑问,请在下方留言。