顺序覆盖算法详解

前置知识:

Learn-One-Rule 算法

顺序覆盖是一种流行的基于规则分类的算法,用于学习析取规则集。其基本思想是:先学习一条规则,移除该规则覆盖的数据,然后重复此过程。在这个过程中,它会在训练阶段以顺序的方式涵盖所有相关规则。

涉及的算法:

**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‘ 算法作为基础,来学习一系列析取规则。如果您对该算法有任何疑问,请在下方留言。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/37911.html
点赞
0.00 平均评分 (0% 分数) - 0