【机器学习】八、规则学习

news2024/11/15 17:52:02

知识图谱与基本概念在这里插入图片描述

基本概念

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

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

逻辑规则定义⊕←?1?2?3…⋀??⊕←f_1⋀f_2⋀f_3…⋀f_L

  右侧为规则体:由L个逻辑文字组成的合取式。

  左侧为规则头:逻辑文字组成的目标类别或概念。

规则集:若干个逻辑规则组成的集合成为规则集。

两种逻辑规则:

命题规则:由”原子命题”和逻辑连接词 与、或、非和蕴含构成的简单陈述句(if-then规则)。

  rule1:鱼类← ← (胎生 = no) ∧ (在水里生活 = yes)

  rule2:鸟类← ← (胎生 = no) ∧ (会飞 = yes)

一阶规则:描述事物的属性和关系,称为关系型规则,额外包含了断言和量化。

解决问题的思路

目标:(贪心)找到一个规则集,这个规则集尽可能多的覆盖样例。

分类过程总结

通过规则集对未见示例进行分类的时候,我们每条逻辑规则都可以看做是一个子模型,规则集就是这些子模型的集合,将规则集与未见实例进行匹配,若匹配成功(满足规则体中的所有条件)则实例被预测为正例,若都不匹配则为负例。

问题

如果一个示例被多条逻辑规则覆盖时,判别发生了冲突?

冲突消解

投票法:将判别类别相同的规则数最多的结果作为判别结果。

排序法:带序规则学习/优先级规则学习:排序靠前的规则判定结果为准。

序贯覆盖

基本思想是什么?

逐条归纳(穷尽)的思想:通过贪心搜索的方法来获得规则集,直到:规则覆盖所有正例,未覆盖任何反例。

重要性:几乎所有的规则学习算法,都是以它作为基本框架。

穷尽搜索的逻辑过程

1.  空规则开始,正例类别作为规则头,再逐个遍历训练集中的每个属性与属性取值。

2. 尝试将其属性取值的逻辑文字增加到规则体中,如果当前规则体仅覆盖正例,学到一条规则。

3. 去除这条规则覆盖的正例,以剩下的样例组成训练集,再重复上述规则生成的过程。

出现一个问题

如果属性和属性取值对应的维度非常大呢?组合爆炸。

生成规则的策略

自顶向下(top-down):特化过程,容易产生泛化能力较好的规则,鲁棒性较好,广泛使用。

自底向上(bottom-top):泛化过程,适合样本较少的情况。

自顶向下

思想:添加新文字以缩小规则覆盖范围,直到满足预定的条件为止。

1. 空规则开始,逐一(属性,属性取值)作为原子命题,基于训练集准确率来评估。

2. 选出准确率最高的原子命题及其覆盖的样例,进入下一轮评估,若全部覆盖,则生成

  单条规则,对剩余的样例再做上述规则生成过程。

注:评估优先级顺序:准确率>覆盖样例数>属性次序

自底向上:直接将某样例的属性取值形成规则,作为特殊规则,再泛化。

贯覆盖的拓展与问题

多分类问题。

  例如:3分类(A,B,C)问题,将A作为正例,BC作为反例,同样B作为正例,AC作为反例。

避免局部最优-提出的集束搜索。

  通常仅考虑一个“最优”文字,这种过于贪心的思想容易导致陷于局部最优。

  集束搜索:保留最优的b个逻辑文字。

过拟合风险-存在不必要的约束条件。

  剪枝优化-(预剪枝、后剪枝)

剪枝优化

预剪枝

       通过信息增益准则确定划分属性,验证集来剪枝

       1. 信息增益准则确定划分属性

       2. 通过验证集,划分前后的对比,确定是否要预剪枝。

       3. 重复1,2过程,直到禁止划分(贪心:禁止划分,存在欠拟合风险)

决策树规则

定义:将学习到的决策树,从树的根节点到每个叶节点是一条规则,很容易转换成“if-then”形式的规则。

生成过程:其规则的建立依赖于树的生成,树的建立过程是对整个空间的递归划分、建立局部模型的过程,往往比较耗时。

规则归纳(规则学习方法)与决策树规则区别

相同点:(在构造规则过程中)

  1. 通过属性的信息增益不断地添加规则。

  2. 通过剪枝对规则进行裁剪。

不同点:

            1. 不需要建立搜索树而是采用深度优先搜索策略直接从数据集生成规则且每次生成一条(算法效率提高)。

CN2

1989年提出引入显著性校验。

似然率统计量的信息量指标:在预剪枝过程中,衡量规则集覆盖样例的分布与训练集经验分布的差别。

LRS越大:规则集预测与训练集经验分布的差别越大。

LRS越小:说明规则集的效果越可能仅是偶然现象。

通常设置LRS>0.99,作为CN2算法收敛的阈值。

REPReduced Error Pruning

1991年提出。思想:后剪枝的策略(对规则集剪枝)

1. 将样例分为训练集(生长集)和测试集(剪枝集),基于准确度贪心生成全部的规则集合。

2. 穷举所有的剪枝操作(删除规则中某个文字/删除规则结尾文字/删除规则尾部多个文字/删除整体规则),进行多轮剪枝,验证集评估。

3. 直到:无法通过剪枝提高验证集准确性。

总结:非常有效,但是复杂度

IREPIncremental REP

1994年提出。思想:后剪枝的策略(对单条规则剪枝)

1. 将样例分为训练集(生长集)和测试集(剪枝集),在训练集上生成一条规则r。

2. 立即对这条规则r在验证集上对其进行REP剪枝,得到规则r’。

3. 将r’覆盖的样例去除, 在更新后的样例集上重复上述过程。

IREP*

1994年提出

IREP*:修改规则性能度量指标,替换IREP的准确率评估方法(增加了对反例的评估指标)。

RIPPER

1995年提出IREP*剪枝与后处理优化结合。泛化能力、速度还是比大多数决策树算法更佳。

1. 对于规则集中每条规则r,RIPPER为它生成两个变体(替换规则与修订规则):

  a. 基于每条规则r覆盖的样例,用IREP*重新生成一条规则,作为替换规则。

  b. 对每条规则r增加文字进行特化,再用IREP*剪枝生成一条规则,成为修订规则。

2. 原规则集、替换规则集、修订规则集,选择最优的规则集保留下来。

RIPPER成功之处

由于最初生成的规则集,每条规则都没有对其后产生的规则加以考虑,这样的贪心算法很容易导致陷入局部最优。

  解决方案:增加后处理优化部分,将所有规则放在一起,重新加以优化,通过全局的考虑来缓解贪心算法的局部性。

归纳逻辑程序设计

ILP Inductive Logic Programming,归纳逻辑程序

引入:函数与逻辑表达式嵌套

作用:机器学习系统具备了的很强的表达能力,在先验知识的逻辑程序归纳。其学到的规则,可被PROLOG等逻辑程序设计语言直接使用。

LGGLeast General Generalization,最小一般泛化)

主要思想:自底向上的规则生成策略,将“特殊”规则转变为“一般”规则。

实现步骤:直接将一个或者多个正例所对应的具体事实作为初始规则,再对规则逐步进行泛化以增加其对样例的覆盖率。其中泛化操作:其实就是常量替换为逻辑变量,或者删除规则体中的逻辑文字。

逆归结

归纳思想:从个别事物出发,概括一般性规律。

主要思想:将貌似复杂的逻辑规则与背景知识联系起来化繁为简,基于背景知识来设计新的概念和关系。

  比如抽象出一种新概念:以西瓜为例,西瓜更甜?日晒更多?更新鲜?需要结合背景知识来确定。

推荐阅读

RIPPER

RIPPER论文:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.50.8204

RIPPER代码:https://www.researchgate.net/figure/The-RIPPER-Algorithm-Cohen-1995_fig2_234828100

  依然是命题规则学习的最高水平

局限性

问题规模稍大就很大去应对。现阶段,更多的研究会把规则学习与统计学习相结合

统计关系模型

书籍:introduction to statistical relational learning

PRM(概率关系模型):Learning Probabilistic Relational Models(https://ieeexplore.ieee.org/document/6278195?arnumber=6278195)

  允许对象的属性在概率上依赖于其他属性和相关对象属性

MLN(马尔科夫逻辑网):Markov logic network( https://en.wikipedia.org/wiki/Markov_logic_network )

  马尔科夫网络思想应用于一阶逻辑,去实现不确定的推理。

应用:

在dblp数据上,预测怎么样的文章容易被发表和引用。

判断电影在上映后的一个星期里,会不会票房达到100万。

金融欺诈:想法就是和诈骗犯相关的人,估计也是诈骗犯。

建议

数据集分析的先验知识下,利用逆归结、自顶向下、自底向上的思想去抽象一些普遍的逻辑规则和特征,帮助我们更好的分析问题。

参考链接:https://blog.csdn.net/tonydz0523/article/details/84673793

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

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

相关文章

file2Udp增量日志转出Udp简介

https://gitee.com/tianjingle/file2udp 很多时候服务产生的日志需要进行汇总,这种统一日志处理的方式有elb,而且很多日志组件也支持日志转出的能力。但是从广义上来说是定制化的,我们需要一个小工具实现tail -f的能力,将增量日志…

2024最新基于物联网单片机毕业设计选题汇总(合集)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

大数据技术与原理实验报告(MapReduce 初级编程实践)

MapReduce 初级编程实践 验环境: 操作系统:Linux(建议Ubuntu16.04); Hadoop版本:3.2.2; (一)编程实现文件合并和去重操作 对于两个输入文件,即文件 A 和…

upload-labs关卡8(基于黑名单的点绕过)通关思路

文章目录 前言一、回顾上一关知识点二、靶场第八关通关思路1、看源代码2、点绕过3、验证文件是否成功上传 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试&am…

用示波器测量高压电

示波器本身是不可以测试几千v的高压电电路的,一般自带的探头衰减倍数不够,需要使用高压差分探头或者高压探棒,将测试信号衰减到合适的范围再接入示波器。 普通探头能测差分电压吗?差分探头和普通探头有什么区别?全网最…

使用SQL分析数据科学职业发展趋势

大家好,在数据成为新石油的今天,了解数据科学职业的细微差别比以往任何时候都更加重要。无论你是正在寻找机会的数据爱好者,还是资深数据专家,使用SQL都可以让你深入了解数据科学就业市场。 本文可以带你了解哪些数据科学职位最具…

C语言精选练习题:(10)字幂数

每日一言 信心这个东西,什么时候都像个高楼大厦,但是里面会长白蚁。 --沉默的大多数 题目 打印1~100000之间的所有的字幂数,中间用空格分隔 (字幂数是指一个数的位数的n次方之和等于这个数本身) 如:370 3 ^ 3 7 ^ 3 0 ^ 3&…

CCC数字钥匙设计 --数字钥匙数据结构

1、数字钥匙是什么? 汽车数字钥匙,将传统实体钥匙数字化,用卡片、手机等智能设备来做数字钥匙的载体。 从而实现无钥匙进入/启动、为他人远程钥匙授权、个性化的车辆设置等功能。 目前市场上流行的数字钥匙方案是通过NFC、BLE、UWB通信技术…

C51--串口发送中断请求

在串口通信寄存器中有T1&#xff1a;发送中断请求标志位 换行 &#xff1a;\r\n #include "reg52.h" #include <intrins.h>sfr AUXR 0x8E;//串口初始化 void UartInit(void) //9600bps11.0592MHz {PCON & 0x7F; //波特率不倍速SCON 0x50; //8位数…

eNSP毕业设计系列-《大型企业网》-BGP网络无nat

客户主要需求&#xff1a;需要有三栋楼&#xff0c;每栋楼有三个业务。 又新增了要求&#xff0c;要双核心、双防火墙。 所以我根据客户的需求&#xff0c;完成了如下组网设计。 主要技术&#xff0c;MSTPVRRP链路聚合OSPF传统纵网&#xff0c;&#xff08;万金油组合&#…

AI 绘画 | Stable Diffusion WebUI的基本设置和插件扩展

前言 Stable Diffusion WebUI是一个基于Gradio库的浏览器界面&#xff0c;用于配置和生成AI绘画作品&#xff0c;并且进行各种精细地配置。它支持目前主流的开源AI绘画模型&#xff0c;例如NovelAI/Stable Diffusion。 在基本设置方面&#xff0c;Stable Diffusion WebUI的默…

ViewPager2和TabLayout协同使用

一、ViewPager2的基本用法 使用前先添加依赖&#xff1a; implementation androidx.appcompat:appcompat:1.4.0 // AndroidX AppCompatimplementation com.google.android.material:material:1.4.0 // Material Design Components1、制作Fragment 首先制作一个Fragment的xml布…

Mysql数据库管理---MySQL数据库连接、权限认证

1 mysql系统连接权限认证。 1 mysql数据库权限表在数据库启动时就载入内存&#xff0c;当用户通过身份验证后&#xff0c;就在内存中进行相应权限的存取。系统会用到mysql数据库中3个核心表&#xff1a;user&#xff0c;host&#xff0c;db。 主要包括&#xff1a; 用户列&a…

【Opencv】图像融合addWeighted()函数示例和详解

本文通过原理和示例对addWeighted&#xff08;&#xff09;函数进行详解&#xff0c;&#xff0c;并通过改变融合系数展示多个结果&#xff0c;帮助大家理解和使用。 目录 函数原理示例权重&#xff08;0.5,0.5&#xff09;权重&#xff08;0.8,0.2&#xff09;权重&#xff08…

如何解决Windows电脑 Create folder error,Access is denied.

如何解决 Create folder error, Error: mkdir C:\Program Files\nodejs\21.1.0/: Access is denied. Waring: Name : http://npm.taobao.org/mirrors/node/v21.1.0/win-x64/node.exe Code : -2 Error : Create folder error, Error: mkdir C:\Program Files\nodejs\\21.1.0/…

【Linux】虚拟机连不上外网 (ping www.baidu.com不通)

进入linux系统&#xff0c;打开终端&#xff0c;ping www.baidu.com 发现ping不通 首先我连接的是nat模式 查看是否连接上自己本机的网 切换root用户 使用 ifconfig 命令查看是eth0 还是 ens33 vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTOstatic ONBOOTyes …

cocosCreator 之 Bundle使用

版本&#xff1a; v3.4.0 语言&#xff1a; TypeScript 环境&#xff1a; Mac Bundle简介 全名 Asset Bundle(简称AB包)&#xff0c;自cocosCreator v2.4开始支持&#xff0c;用于作为资源模块化工具。 允许开发者根据项目需求将贴图、脚本、场景等资源划分在 Bundle 中&am…

LeetCode 189.轮转数组(三种方法解决)

文章目录 题目暴力求解空间换时间三段逆置总结 题目 LeetCode 189.轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5…

Redis的特性以及使用场景

分布式发展历程参考 陈佬 http://t.csdnimg.cn/yYtWK 介绍redis Redis&#xff08;Remote Dictionary Server&#xff09;是一个基于客户端-服务器架构的在内存中存储数据的中间件&#xff0c;属于NoSQL的一种。它可以用作数据库、缓存/会话存储以及消息队列。 作为一种内存数…

基于Amazon EC2和Amazon Systems Manager Session Manager的堡垒机设计和自动化实现

01 背景 在很多企业的实际应用场景中&#xff0c;特别是金融类的客户&#xff0c;大部分的应用都是部署在私有子网中。为了能够让客户的开发人员和运维人员从本地的数据中心中安全的访问云上资源&#xff0c;堡垒机是一个很好的选择。传统堡垒机的核心实现原理是基于 SSH 协议的…