【机器学习西瓜书学习笔记——规则学习】

news2024/9/22 10:03:15

机器学习西瓜书学习笔记【第十五章】

  • 第十五章 规则学习
    • 15.1 基本概念
    • 15.2 序贯覆盖
      • 最简单的做法
      • 两种产生规则的策略
    • 15.3 剪枝优化
      • 预剪枝
      • 后剪枝
    • 15.4 一阶规则学习
      • **FOIL算法**
    • 15.5 归纳逻辑程序设计( I L P ILP ILP)
      • 最小一般泛化
      • 逆归结

第十五章 规则学习

15.1 基本概念

规则:语义明确、能描述数据分布所隐含的客观规律或领域概念。

规则学习:从训练数据中学习出一组能用于对未见示例进行判别的规则。

覆盖:符合某规则的样本。

冲突:当同一个示例被判别结果不同的多条规则覆盖时,发生冲突。

15.2 序贯覆盖

规则学习的目标是产生一个能覆盖尽可能多的样例的规则集。序贯覆盖是规则学习最直接的方法。

逐条归纳:在训练集上每学到一条规则,就将该规则覆盖的训练样例去除,然后以剩下的训练样例组成训练集重复上述过程(由于每次只处理一部分数据,也称“分治策略”)

最简单的做法

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

两种产生规则的策略

  • ①自顶而下top-down(生成-测试法)

    • 从比较一般的规则开始,逐渐添加新文字以缩小规则覆盖范围,直到满足预定条件为止,是规则逐渐“特化”的过程,更容易产生泛化性能较好的规则。
  • ②自底向上 b o t t o m − u p bottom-up bottomup(数据驱动法)

    • 从比较特殊的规则开始,逐渐删除文字以扩大规则覆盖范围,直到满足条件为止,是规则逐渐“泛化”的过程,更适合于训练样本较少的情形

命题规则学习中通常使用第一种策略一阶规则学习中较多使用第二种策略

15.3 剪枝优化

规则生成本质上是一个贪心搜索过程,需要一定的机制来缓解过拟合的风险,最常见的做法是剪枝
剪枝可发生在规则生长过程中,即预剪枝;发生在规则产生后,即后剪枝。
通常是基于某种性能度量指标来评估增/删逻辑文字前后的规则性能,或增/删规则前后的规则集性能,从而判断是否要进行剪枝。

预剪枝

借助统计显著性检验—— C N 2 CN2 CN2算法。

C N 2 CN2 CN2算法:在预剪枝时,假设用规则集进行预测必须显著优于直接基于训练样例集后验概率分布进行预测。CN2使用了似然率统计量( L R S LRS LRS).

img

信息量指标,衡量了规则(集)覆盖样例的分布与训练集经验分布的差别:

  • $ LRS$越大,说明采用规则(集)进行预测与直接使用训练集正、反例比率进行猜测的差别越大;
  • L R S LRS LRS越小,说明规则(集)的效果越可能仅是偶然现象。
  • 在数据量比较大的任务中,通常设置为在 L R S LRS LRS很大(例如0.99)时 C N 2 CN2 CN2算法才停止规则(集)生长。

后剪枝

常用策略:减错剪枝( R E P REP REP)——针对规则集进行剪枝——时间复杂度为 O ( m 4 ) O(m^4) O(m4)

I R E P IREP IREP——针对单条规则进行剪枝——时间复杂度为 O ( m l o g 2 m ) O(mlog^2m) O(mlog2m)

R I P P E R RIPPER RIPPER——通过全局的考虑来缓解贪心算法的局部性。

  • 泛化性能超过很多决策树
  • 学习速度更快
  • 将剪枝和后处理优化相结合

15.4 一阶规则学习

一阶的目的是描述一类物体的性质和相互关系。

FOIL算法

遵循序贯覆盖框架且使用自顶向下的规则归纳策略,在规则生成时需要考虑不同的变量组合。

FOIL可看作命题规则学习与归纳逻辑程序设计之间的过渡。自顶向下的规则生成过程不能支持函数和逻辑表达式嵌套,因此规则表达能力仍有不足。

15.5 归纳逻辑程序设计( I L P ILP ILP)

I L P ILP ILP的目标是完备地学习一阶规则。

  • 一阶规则学习中引入函数和逻辑表达式嵌套。
  • 具备强大的表达能力。
  • 解决基于背景知识的逻辑程序归纳。

最小一般泛化

归结:一阶谓词演算中的演绎推理能用一条十分简洁的规则描述。

归纳逻辑程序设计采用自底向上的规则生成策略,直接将一个或多个正例所对应的具体事实作为初始规则,再对规则逐步进行泛化以增加其对样例的覆盖率(可以是将规则中的常量替换为逻辑变量,也可以是删除规则体中的某个文字)

逆归结

  • 演绎:从一般性规律出发来探讨具体事物。代表:数学定理证明
  • 归纳:从个别事物出发概括出一般性规律。代表:机器学习
  • 归结原理:
    • 一阶谓词演算中的演绎推理能用一条十分简洁的规则描述
    • 将复杂的逻辑规则与背景知识联系起来化繁为简
    • 逆归结:基于背景知识来发明新的概念和关系

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

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

相关文章

干货|嵌入式分析产品选型指南

在当今数据驱动的商业环境中,业务系统的嵌入式分析能力正成为企业决策的关键能力。将数据分析能力嵌入到企业的核心业务流程中,能够帮助企业快速洞察业务趋势,做出更加明智的业务决策。随着市场对数据分析工具的需求日益增长,选择…

本地生活服务平台源码在哪里?2大获取渠道源码质量解析!

当前,本地生活赛道的发展潜力和收益前景已经日渐显化,本地生活服务商的数量也随之不断增长。不过,由于官方平台对于其本地生活服务商的申请条件并未放宽,因此,新增本地生活服务商中的绝大多数都会选择部署本地生活服务…

letcode 分类练习 654. 最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

letcode 分类练习 654. 最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树 654. 最大二叉树617.合并二叉树700.二叉搜索树中的搜索98.验证二叉搜索树 654. 最大二叉树 class Solution { public:TreeNode* build(vector<int>& nums, int left, int…

Spring MVC中获取请求参数的方式

在Spring MVC中获取请求方式参数的主要方式有RequestParam&#xff0c;PathVariable&#xff0c;RequestBody&#xff0c;HttpServletRequest&#xff0c;RequestHeader等方式&#xff0c;接下来我们分别对其请求获取参数的方式进行相关介绍和使用。 RequestParam 用于获取请…

AMR 机器人底盘分析(补充中)

AMR 机器人底盘分析 1 介绍2 不同轮系底盘类型单舵轮双舵轮底盘四舵轮底盘麦克纳姆轮底盘两驱差速底盘四驱差速底盘单差速总成四差速总成底盘 3 行业专利分析CN220701198U -- 某柔CN110758038A谋星翼*菲谋工 参考 1 介绍 AGV 广泛应用于物流、制造业、安防巡检等领域&#xff…

C语言部分内存函数详解

C语言部分内存函数详解 前言1.memcpy1.1基本用法1.2注意事项**目标空间与原空间不能重叠****目标空间原数据会被覆盖****目标空间要够大****拷贝字节数需小于原空间大小** 1.3模拟实现 2.memmove2.1基本用法2.2注意事项2.3模拟实现 3.memset3.1基本用法 4.memcmp4.1基本用法4.2…

C#使用onnxruntime加载模型,部署到别人的PC上报错

C#使用onnxruntime加载模型&#xff0c;部署到别人的PC上报错 C#使用onnxruntime加载模型&#xff0c;部署到别人的PC上报错解决方案 C#使用onnxruntime加载模型&#xff0c;部署到别人的PC上报错 C#使用onnxruntime加载模型&#xff0c;部署到别人的PC上报错&#xff1a; Sys…

Python Web 应用和数据处理任务库之Redis Queue (RQ) 使用详解

概要 在现代 Web 应用和数据处理任务中,后台任务处理是一个非常重要的部分。Redis Queue (RQ) 是一个使用 Redis 作为消息队列的简单 Python 库,专注于处理异步任务。RQ 易于设置和使用,适用于需要后台处理的 Web 应用或数据处理项目。本文将详细介绍 RQ 库,包括其安装方法…

火狐如何离线继承配置

陪伴自己6年的电脑&#xff0c;因为CPU烧了&#xff0c;导致一些配置没导出来&#xff0c;其中包括浏览器的收藏记录、网站密码。 火狐浏览器离线继承配置 把老电脑的C盘取出&#xff0c;插入硬盘盒中&#xff0c;找到C:\Users\用户名\AppData\Roaming\Mozilla\Firefox\Profile…

【MySQL】JDBC的基础使用

系列文章目录 第一章 数据库基础 第二章 数据库基本操作 第三章数据库约束 第四章表的设计 第五章查询进阶 第六章索引和事务 文章目录 系列文章目录前言一、JDBC基本概念二、JDBC的准备工作三、JDBC-Demo小结 四、JDBC进阶写法总结 前言 在前面对MySQL已经有了基本的认知&am…

分类预测|基于白鲸优化混合核极限学习机结合Adaboost的数据分类预测Matlab程序BWO-HKELM-Adaboost

分类预测|基于白鲸优化混合核极限学习机结合Adaboost的数据分类预测Matlab程序BWO-HKELM-Adaboost 文章目录 前言分类预测|基于白鲸优化混合核极限学习机结合Adaboost的数据分类预测Matlab程序BWO-HKELM-Adaboost 一、BWO-HKELM-Adaboost模型1. 模型组成1.1 白鲸优化算法&#…

Arco Design,字节跳动出品的UI库

Arco Design是字节跳动出品的UI库&#xff0c;支持Vue和React。还是比较美观的。并且Arco Design还提供了中后台模版。但是通过提供的arco-cli连接了github&#xff0c;正常情况下无法构建。但效果还是挺好的&#xff0c;下面是效果图&#xff1a; 更新&#xff1a; 传送门可…

用C#写一个随机音乐播放器

form1中namespce里的代码如下 public partial class Form1 : Form {public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){string folder textBox1.Text;string folderPath folder; // 指定音频文件所在的文件夹路径OpenRandomFi…

C#关于多线程的线程问题

using System.Text; ​ namespace 平时练习8._19day06 {internal class Program{static async Task Main(string[] args){Console.WriteLine(Thread.CurrentThread.ManagedThreadId );StringBuilder sb new StringBuilder();for (int i 0; i < 10000; i){sb.Append("…

嵌入式系统:全面解读与关键要点

嵌入式系统&#xff0c;这个看似专业而遥远的技术词汇&#xff0c;其实早已渗透进了我们日常生活的方方面面。从智能手机到家用电器&#xff0c;再到汽车中的电子控制系统&#xff0c;嵌入式系统无处不在。你是否好奇它们是如何工作的&#xff0c;又有哪些关键点值得我们关注&a…

Android12 显示框架之Transaction----client端

目录&#xff1a;Android显示终极宝典 在前面的章节中&#xff0c;应用通过createSurface()在surfaceflinger中创建了一层layer&#xff0c;紧接着要做的事情就是对这个layer设置一些属性&#xff08;或者叫状态&#xff09;&#xff0c;常设置的属性有位置、大小、z-order等等…

RM悬挂系统

悬挂系统是汽车的车架与车桥或车轮之间的一切传力连接装置的总称&#xff0c;其作用是传递作用在车轮和车架之间的力和力扭&#xff0c;并且缓冲由不平路面传给车架或车身的冲击力&#xff0c;并衰减由此引起的震动&#xff0c;以保证汽车能平稳地行驶。 其主要由减震器和弹簧组…

PictureSelector自定义路径首页不显示数据的问题

1、依赖导入和源码查看 网址&#xff1a;https://github.com/LuckSiege/PictureSelector/tree/version_component 使用PictureSelector 2、自定义路径的实现&#xff1a; 使用方法&#xff1a;setLoaderFactoryEngine进行设置 见[read.md] (https://github.com/LuckSiege/Pi…

C++ wxWidgets图形界面开发用什么IDE最好?

在主流免费的IDE工具中&#xff0c;我们可以想到的支持cmake项目的工具就只有QtCreator&#xff0c;VisualStudio&#xff0c;VSCode这三个。其中QtCreator和VSCode支持WIndows&#xff0c;Mac&#xff0c;WIndows三大主流平台。但是VSCode在Ubuntu等系统下的支持并没有在WIndo…

VMware Esxi 7.0 安装P40显卡疑难杂症小诊断

第一章、小叙 今天安装一台X99主板的机器&#xff0c;操作系统是VMware Esxi 7.0&#xff0c;配备一张P40显卡&#xff0c;显卡已在Esxi硬件中识别到&#xff0c;但是无法安装驱动&#xff0c;安装完驱动之后无法分配给虚拟机&#xff0c;如图所示为识别的硬件。 第二章、安装显…