sheng的学习笔记-AI-序贯覆盖(sequential covering)

news2024/9/20 0:59:41

AI目录:sheng的学习笔记-AI目录-CSDN博客

规则学习:sheng的学习笔记-AI-规则学习(rule learning)-CSDN博客

剪枝:https://blog.csdn.net/coldstarry/article/details/137441167 

 

基础知识

什么是序贯覆盖

规则学习的目标是产生一个能覆盖尽可能多的样例的规则集。最直接的做法是“序贯覆盖”(sequential covering),即逐条归纳:在训练集上每学到一条规则,就将该规则覆盖的训练样例去除,然后以剩下的训练样例组成训练集重复上述过程。由于每次只处理一部分数据,因此也被称为“分治”(separate-and-conquer)策略。

命题规则学习

命题规则的规则体是对样例属性值进行评估的布尔函数,如“色泽=青绿”​“含糖率60.2”等,规则头是样例类别。

序贯覆盖法的关键是如何从训练集学出单条规则。对规则学习目标⊕,产生一条规则就是寻找最优的一组逻辑文字来构成规则体,这是一个搜索问题。

流程

概述

给定正例集合与反例集合,学习任务是基于候选文字集合来生成最优规则r.在命题规则学习中,候选文字是形如“R(属性i,属性值i,j)​”的布尔表达式,其中属性i表示样例第i个属性,属性值i,j表示属性i的第j个候选值,R(x,y)则是判断x、y是否满足关系R的二元布尔函数。

一个简单的方案是:从空规则“⊕←”开始,将正例类别作为规则头,再逐个遍历训练集中的每个属性及取值,尝试将其作为逻辑文字增加到规则体中,若能使当前规则体仅覆盖正例,则由此产生一条规则,然后去除已被覆盖的正例并基于剩余样本尝试生成下一条规则

穷举法示例分析

以西瓜为例

  1. 根据第1个样例,生成文字“好瓜”和“色泽=青绿”加入规则,得到好瓜←(色泽=青绿)​。
  2. 这条规则覆盖样例1,6,10和17,其中有两个正例和两个反例,不符合“当前规则仅覆盖正例”的条件。
  3. 尝试将该命题替换为基于属性“色泽”形成的其他原子命题,例如“色泽=乌黑”​;
  4. 在这个数据集上,这样的操作不能产生符合条件的规则。
  5. 回到“色泽=青绿”​,尝试增加一个基于其他属性的原子命题,例如“根蒂=蜷缩”​:好瓜←(色泽=青绿)∧(根蒂=蜷缩)​。
  6. 这条规则不覆盖任何反例,虽然它仅覆盖一个正例,但已满足“当前规则仅覆盖正例”的条件
  7. 因此保留这条规则并去除它覆盖的样例6,然后将剩下的9个样例用作训练集

最终得到结果:

规则1:好瓜←(色泽=青绿)∧(根蒂=稍蜷)​;

规则2:好瓜←(色泽=青绿)∧(敲声=浊响)​;

规则3:好瓜←(色泽=乌黑)∧(根蒂=蜷缩)​;

规则4:好瓜←(色泽=乌黑)∧(纹理=稍糊)​。 

注意,为了简便起见,上述只讨论了正例(好瓜),没有覆盖反例(坏瓜)

上面这种基于穷尽搜索的做法在属性和候选值较多时会由于组合爆炸而不可行

优化方式

自顶向下

从比较一般的规则开始,逐渐添加新文字以缩小规则覆盖范围,直到满足预定条件为止;亦称为“生成-测试”(generate-thentest)法,是规则逐渐“特化”(specialization)的过程。

策略是覆盖范围从大往小搜索规则

更容易产生泛化性能较好的规则

自底向上

从比较特殊的规则开始,逐渐删除文字以扩大规则覆盖范围,直到满足条件为止;亦称为“数据驱动”(data-driven)法,是规则逐渐“泛化”(generalization)的过程

策略是覆盖范围从小往大搜索规则

更适合于训练样本较少的情形

对比

  • 第一种策略是覆盖范围从大往小搜索规则,第二种策略则相反
  • 前者通常更容易产生泛化性能较好的规则,而后者则更适合于训练样本较少的情形,
  • 前者对噪声的鲁棒性比后者要强得多。因此,在命题规则学习中通常使用第一种策略,而第二种策略在一阶规则学习这类假设空间非常复杂的任务上使用较多。

示例分析

展示自顶向下的规则生成方法

从空规则“好瓜←”开始,逐一将“属性=取值”作为原子命题加入空规则进行考察。

假定基于训练集准确率来评估规则的优劣,n/m表示加入某命题后新规则在训练集上的准确率,其中m为覆盖的样例总数,n为覆盖的正例数。

如图15.1所示

  1. 经过第一轮评估,​“色泽=乌黑”和“脐部=凹陷”都达到了最高准确率3/4.
  2. 将属性次序最靠前的逻辑文字“色泽=乌黑”加入空规则,得到  好瓜←(色泽=乌黑)​。
  3. 对上面这条规则覆盖的样例,通过第二轮评估可发现,将图15.1中的五个逻辑文字加入规则后都能达到100%准确率,我们将覆盖样例最多、且属性次序最靠前的逻辑文字“根蒂=蜷缩”加入规则,得到结果  好瓜←(色泽=乌黑)∧(根蒂=蜷缩)​

规则生成过程中涉及一个评估规则优劣的标准,在上面的例子中使用的标准是:先考虑规则准确率,准确率相同时考虑覆盖样例数,再相同时考虑属性次序。现实应用中可根据具体任务情况设计适当的标准。

贪心搜索问题

局部最优

在上面的例子中每次仅考虑一个“最优”文字,这通常过于贪心,易陷入局部最优

为缓解这个问题,可采用一些相对温和的做法,例如采用“集束搜索”(beam search),即每轮保留最优的b个逻辑文字,在下一轮均用于构建候选集,再把候选集中最优的b个留待再下一轮使用

图15.1中若采用b=2的集束搜索,则第一轮将保留准确率为3/4的两个逻辑文字,在第二轮评估后就能获得下面这条规则,其准确率仍为100%,但是覆盖了3个正例:好瓜←(脐部=凹陷)∧(根蒂=蜷缩)​。

剪枝优化

贪心搜索过程,需有一定的机制来缓解过拟合的风险,最常见的做法是剪枝(pruning)。决策树的减枝可参考https://blog.csdn.net/coldstarry/article/details/137441167

剪枝可发生在规则生长过程中,即“预剪枝”​,也可发生在规则产生后,即“后剪枝”​。通常是基于某种性能度量指标来评估增/删逻辑文字前后的规则性能,或增/删规则前后的规则集性能,从而判断是否要进行剪枝。

剪枝还可借助统计显著性检验来进行。

CN2算法

例如CN2算法在预剪枝时,假设用规则集进行预测必须显著优于直接基于训练样例集后验概率分布进行预测。为便于计算,CN2使用了似然率统计量(Likelihood Ratio Statistics,简称LRS)​。令m+,m-分别表示训练样例集中的正、反例数目,分别表示规则(集)覆盖的正、反例数目,则有

是一种信息量指标,衡量了规则(集)覆盖样例的分布与训练集经验分布的差别:LRS越大,说明采用规则(集)进行预测与直接使用训练集正、反例比率进行猜测的差别越大;LRS越小,说明规则(集)的效果越可能仅是偶然现象。在数据量比较大的现实任务中,通常设置为在LRS很大(例如0.99)时CN2算法才停止规则(集)生长。

REP算法(后剪枝)

后剪枝最常用的策略是“减错剪枝”​(Reduced Error Pruning,简称REP),其基本做法是:将样例集划分为训练集和验证集,从训练集上学得规则集ℛ后进行多轮剪枝,在每一轮穷举所有可能的剪枝操作,包括删除规则中某个文字、删除规则结尾文字、删除规则尾部多个文字、删除整条规则等,然后用验证集对剪枝产生的所有候选规则集进行评估,保留最好的那个规则集进行下一轮剪枝,如此继续,直到无法通过剪枝提高验证集上的性能为止。

IREP算法(后剪枝)

REP剪枝通常很有效​,但其复杂度是O(m的4次方),m为训练样例数目。

IREP(Incremental REP)将复杂度降低,其做法是:在生成每条规则前,先将当前样例集划分为训练集和验证集,在训练集上生成一条规则r,立即在验证集上对其进行REP剪枝,得到规则r′;将r′覆盖的样例去除,在更新后的样例集上重复上述过程。显然,REP是针对规则集进行剪枝,而IREP仅对单条规则进行剪枝,因此后者比前者更高效。

RIPPER算法

RIPPER全称Repeat-ed Incremental Pruning to Produce Error Reduction,WEKA中的实现称为JRIP。

若将剪枝机制与其他一些后处理手段结合起来对规则集进行优化,则往往能获得更好的效果。RIPPER,其泛化性能超过很多决策树算法,而且学习速度也比大多数决策树算法更快,奥妙就在于将剪枝与后处理优化相结合

图15.2中重复次数取值k时亦称RIPPERk,例如RIPPER5意味着k=5.

RIPPER优化策略原因:最初生成ℛ的时候,规则是按序生成的,每条规则都没有对其后产生的规则加以考虑,这样的贪心算法本质常导致算法陷入局部最优;RIPPER的后处理优化过程将ℛ中的所有规则放在一起重新加以优化,恰是通过全局的考虑来缓解贪心算法的局部性,从而往往能得到更好的效果 

多类问题

由于序贯覆盖法简单有效,几乎所有规则学习算法都以它为基本框架。它能方便地推广到多分类问题上,只需将每类分别处理即可:当学习关于第c类的规则时,将所有属于类别c的样本作为正例,其他类别的样本作为反例。

参考资料

机器学习 书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2128673.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文翻译:arxiv-2022 Ignore Previous Prompt: Attack Techniques For Language Models

Ignore Previous Prompt: Attack Techniques For Language Models https://arxiv.org/pdf/2211.09527 忽略之前的提示:针对语言模型的攻击技术 文章目录 忽略之前的提示:针对语言模型的攻击技术摘要1 引言 摘要 基于Transformer的大型语言模型&#xf…

G1: Yunli‘s Subarray Queries (easy version)(1900)(定长区间众数)

思路&#xff1a;因为是定长区间&#xff0c;因此我们可以利用滑动窗口维护定长区间的众数的数量 AC代码&#xff1a; #include<bits/stdc.h>using namespace std;typedef long long ll; const int MOD 998244353; const int N 2e5 10;ll a[N]; ll b[N];//前i个数的…

com.alibaba.druid.pool.DruidDataSource error

Druid报错 Sep 11, 2024 11:16:03 AM com.alibaba.druid.pool.DruidDataSource error SEVERE: init datasource error, url: "jdbc:mysql://x.x.x.x:xxxx/test01?useSSLfalse&serverTimezoneUTC" java.sql.SQLException: connect error, url "jdbc:mysql:…

JAVA:对称加密技术的详细指南

请关注微信公众号&#xff1a;拾荒的小海螺 博客地址&#xff1a;http://lsk-ww.cn/ 1、简述 对称加密是一种加密算法&#xff0c;其中加密和解密使用相同的密钥。其主要特点是速度快、效率高&#xff0c;适用于大数据量的加密需求。对称加密算法通常用于保护数据的机密性和完…

Day17_0.1基础学习MATLAB学习小技巧总结(17)——字符向量元胞数组

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍&#xff0c;为了在这个过程中加深印象&#xff0c;也为了能够有所足迹&#xff0c;我会把自己的学习总结发在专栏中&#xff0c;以便学习交流。 素材来源“数学建模清风” 特此说明&#xff1a;本博客的内容只在于总结在…

谷歌浏览器Chrome安装历史版本(亲测可用)

前言&#xff1a; 谷歌浏览器Chrome安装历史版本&#xff08;亲测可用&#xff09; 官网链接&#xff1a; https://downzen.com/en/windows/google-chrome/versions/?page4https://downzen.com/en/windows/google-chrome/versions/?page4 使用教程&#xff1a; 1、打开官网…

C++ 二叉树进阶

1.二叉搜索树简介 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树 &#xff0c;或者是具有以下性质的二叉树 : 若它的左子树不为空&#xff0c;则左子树上 所有节点的值都小于根节点的值 若它的右子树不为空&#xff0c;则右子树上 所有节点的值都大于根节点的值 它…

人工智能对教育4.0的影响

随着技术变革的加速&#xff0c;迫切需要支持教育系统管理新的机遇和风险。如果管理得当&#xff0c;技术为帮助教育系统实现教育4.0提供了一个独特的机会。教育4.0是一种专注于为学习者提供适合未来的能力、技能、态度和价值观的教学方法。“教育4.0”是由全球教育专家、从业者…

艾体宝干货丨OIDA之二:掌握数据包分析-学会识别

在 OIDA 方法&#xff08;观察、识别、剖析、分析&#xff09;中&#xff0c;识别阶段对于在捕获的网络流量中精确定位相关数据至关重要。本文重点介绍如何在这一关键步骤中有效使用 Wireshark 和 Profitap 的 IOTA。 OIDA方法系列文章主要包含四个部分&#xff0c;分别是观察…

鸿蒙OS 应用基础知识

APP HarmonyOS 的应用软件包以 APP Pack&#xff08;Application Package&#xff09;形式发布&#xff0c;它是由一个或多个 HAP&#xff08;HarmonyOS Ability Package&#xff09;以及描述每个 HAP 属性的 pack.info 组成。HAP 是 [Ability]的部署包&#xff0c;HarmonyOS …

虚拟机安装VMware-tools详细教程

这里以VM16.12版本为例子&#xff0c;所有windows系统在所有虚拟机版本上都是一样的操作&#xff0c;参考即可 第一步打开虚拟机&#xff0c;这里需要注意的是虚拟机设备要有CD/DVD驱动器&#xff0c;这也是很多人说vmtool安装按钮是灰色的原因 第二步:打开虚拟机&#xff0c;…

linux入门到实操-1 Linux概述、诞生过程、发行版本,如何安装?

教程来源&#xff1a;B站视频BV1WY4y1H7d3 3天搞定Linux&#xff0c;1天搞定Shell&#xff0c;清华学神带你通关_哔哩哔哩_bilibili 整理汇总的课程内容笔记和课程资料&#xff0c;供大家学习交流下载&#xff1a;夸克网盘分享 本文内容为完整笔记的入门篇 概述部分历史内容…

git push失败原因上传的文件超过了Gitee的上限100M

! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 这个错误信息表明你在尝试将更改推送到Gitee的socket_service仓库时遇到了问题。具体来说&#xff0c;问题出在你尝试推送的文件大小超过了Gitee平台设定的限制。Git…

Science Robotics 在小动物模型中实现渐进和可逆主动脉收缩的软机器人平台

前言速览&#xff1a;目前对左心室压力过载引起心脏重构过程的理解主要来源于主动脉束带的动物模型。然而&#xff0c;这些研究未能同时控制疾病的进展和逆转&#xff0c;阻碍了其临床意义。为此&#xff0c;来自哈佛大学、麻省理工学院等的研究人员介绍了一种基于植入式可扩张…

回馈式负载箱的操作和维护

回馈式负载箱是用于测试电源设备&#xff08;如发电机、逆变器等&#xff09;性能的设备&#xff0c;它可以模拟真实的负载情况&#xff0c;通过调节负载的大小和类型&#xff0c;来检测电源设备的输出能力和稳定性。回馈式负载箱的操作和维护对于保证其正常工作和延长使用寿命…

19:I2C一:程序模拟I2C通信时序

I2C 1、什么是I2C2、I2C的通信时序2.1&#xff1a;起始信号2.2&#xff1a;停止信号2.3&#xff1a;主机向从机发送一个字节数据2.4&#xff1a;主机向从机读取一个字节数据2.5&#xff1a;主机接收应答2.6&#xff1a;主机发送应答 3、程序模拟I2C的通信时序3.1&#xff1a;指…

为什么企业需要数据目录?

想象一下&#xff0c;如果在没有目录系统的庞大图书馆里寻找一本特定的书&#xff0c;你可能会耗费无数个小时搜索&#xff0c;但最终却一无所获。 同理&#xff0c;企业的数据如果没有一个组织良好、易于搜索的系统&#xff0c;也无法充分发挥其潜力。企业数据目录能够简化这一…

“爱满中华”与“民生之语”——全国人民的幸福之音!

近年来,随着科技的不断进步,数字化手段在各个领域的应用越来越广泛。在此背景下,我国宣传部推出了“爱满中华”全民自助补贴APP,旨在通过数字化手段,更有效地推行全民扶贫补助政策,而“爱满中华”自助补贴平台和“民生之语”利民通讯软件也正式被我国中信办称为国家网络未来工程…

组合总和IV(力扣---动态规划)

文章目录 1.题目描述2.解题思路3.代码实现 1.题目描述 题目描述见&#xff1a;组合总和IV 2.解题思路 视频参考&#xff1a; 组合总和IV 以上述的示例1为例&#xff1a; dp[4]的含义是什么&#xff1f;和为4的组合有多少种 一般动态规划是可以由前面的dp[3]推导而来的 dp[3…

使用Lua碰到的问题、踩坑记录

文章目录 1. 获得整除结果2. 在数组末尾添加元素的两种写法3. 接收可变参数 ...4. 复杂表结构的定义5. 一行代码, 同时定义多个变量6. 数组与集合的遍历方式7. 函数声明和调用的位置关系 1. 获得整除结果 用 “/” 来做除法, 得到的结果中总会带有小数. 可以使用 math.modf() …