第八章 基于规则的分类

1、使用IF-THEN规则分类

        规则是表示信息或少量知识的好方法。基于规则的分类器使用一组IF—THEN规则进行分类。一个IF—THEN规则是一个如下的表达式:

                                                                                                      IF条件THEN结论

        规则R1是一个例子:

                R1:IF age=youth AND student=yes THEN buys_computer=yes

        也可以写作

                R1:(age=youth)^(student=yes)=>(buys_computer=yes)

        规则的“IF”部分(或左部)称为规则的前件或前提。规则前件由一个或多个用逻辑连接词AND连接的属性测试(例如,age=youth和student=yes)组成。

        THEN部分(或右部)是规则的结论。规则的结论包含一个类预测(在这个例子中,预测顾客是否购买计算机)。

        对于给定的元组,如果规则前件中的条件(即所有的属性测试)都成立,则我们说规则前件被满足,并且规则覆盖该元组。

        规则R可以用它的覆盖率准确率来评估。给定类标记的数据集D中的一个元组X,设ncovers为覆盖的元组数,ncorrect为R正确分类的元组数,可以将R的覆盖率和准确率定义为:


也就是说,规则的覆盖率是规则覆盖的元组的百分比。对于规则的准确率,考察在它覆盖的元组中,可以被规则正确分类的元组所占的百分比。

 让我们来看看如何使用基于规则的分类来预测给定元组X的类标号。

        如果规则被X满足,则称该规则被触发。例如,假设有:X=(age=youth,income=medium,student=yes,credit_rating=fair)想根据buys_computer对X分类。X满足R1,触发该规则。

        如果R1是唯一满足的规则,则该规则被激活,返回X的分类预测。注意,触发并不总意味着激活,因为可能有多个规则被满足!

        可能存在的问题:(1)如果多个规则被触发,但是它们指定了不同的类(2)没有一个规则被X满足。

        解决办法:(1)如果多个规则被触发,则需要一种解决冲突的策略来决定激活哪一个规则,并对X指派它的类预测。由许多可能的策略。我们考察两种,即规模序和规则序。

        规模序:把最高优先权赋予具有“最苛刻”要求的被触发的规则,其中苛刻性用规则前件的规模度量。也就是说,激活具有最多属性测试的被触发的规则。

        规则序:预先确定规则的优先次序。这种序可以是基于类的或基于规则的。

        基于类的序:类按“重要性”递减排序,如按普遍性的降序排序。作为选择,它们也可以根据每个类的误分类代价排序。每个类中的规则(可能有很多)是无序的,当然,它们也不必要有序,因为它们都预测相同的类,所以不会存在冲突问题。

       基于规则的序:根据规则质量的度量,如准确率、覆盖率或规模(规则前件中属性测试数),或者根据领域专家的建议,把规则组织成一个优先权列表。在使用规则排序时,规则集称为决策表。使用规则序,最先出现在决策表中的被触发的规则具有最高优先权,因此激活它的类预测。满足X的其他规则都被忽略。大部分基于规则的分类系统都使用基于类的规则序策略。

       (2)没有一个规则被X满足的条件下,我们可以建立一个省缺或默认规则(条件为空),根据训练集指定一个默认类。这个类可以是多数类,或者不被任何规则覆盖的元组的多数类。当且仅当没有其他规则覆盖X时,最后才使用默认规则(该规则被激活)。


 下面我们考察如何建立基于规则的分类器(也就是,如何获取IF-THEN规则)?


2、由决策树提取规则

        与决策树相比,IF-THEN规则可能更容易理解,特别是当决策树非常大时更是如此。

        为了从决策树提取规则,对每条从根到树叶节点的路径创建一个规则。

      (1)前件:沿着给定路径上的每个分裂准则的逻辑AND形成规则的前件。

      (2)后件:存放类预测的树叶结点形成规则的后件。

        由于这些规则直接从树中提取,所以它们是互斥的穷举的

      (1)互斥意味着不可能存在规则冲突,因为没有两个规则被相同的元组触发。(每个树叶有一个并且任何元组都只能映射到一个树叶。)

      (2)穷举意味着对于每种可能的属性—值组合都存在一个规则,使得该规则集不需要默认规则。因此,规则的序不重要—它们是无序的。

        由于每个树叶一个规则,所以提取的规则集并不比对应的决策树简单多少!在某些情况下,提取的规则可能比原来的树更难解释(比如,子树中存在重复和复制)。提取的规则集可能很大并且难以理解,因为某些属性测试可能是不相关的和冗余的。尽管很容易从决策树提取规则,但是可能需要做更多的工作,对结果规则集进行剪枝。

         “如何修剪规则集?”对于给定的规则前件,不能提高规则的估计准确率的任何条件都可以剪掉(即删除),从而泛化该规则。

3、使用顺序覆盖算法的规则归纳

        顺序覆盖算法可以直接从训练数据集提取IF-THEN规则(即不必产生决策树),是最广泛使用的挖掘分类规则析取集的方法。算法的名字源于规则被顺序地学习(一次一个),其中给定类的每个规则覆盖该类的许多元组(并且希望不覆盖其他类的元组)。

        有许多流行的顺序覆盖算法,包括AQ,CN2和最近提出的PIPPER。

        算法的一般策略如下:一次学习一个规则,每学习一个规则,就删除该规则覆盖的元组,并在剩下的元组上重复该过程。

        基本顺序覆盖算法显示在下图中。这里,一次为一个类学习规则。理想情况下,在为C类学习规则时,我们希望覆盖C类的所有(或许多)训练元组,并且没有(或很少)覆盖其他类的元组。这样,学习的规则应该具有高准确率。规则不必是高覆盖率的。这是因为每个类可以有多个规则,使得不同的规则可以覆盖同一个类中的不同元组。该过程继续,直到满足某终止条件,如不再有训练元组,或返回规则的质量低于用户指定的阈值。


        “如何学习规则?”典型地,规则以从一般到特殊的方式增长(见下图)。我们可以将这想象成束状搜索,从空规则开始,然后逐渐向它添加属性测试。添加的属性测试作为规则前件条件的逻辑合取。


        图中,为了学习“accept”类的规则,从最一般的规则开始,即从规则前件条件为空的规则开始。该规则是:IF  THEN loan_decision=accept  然后,我们考虑每个可以添加到该规则中的可能属性测试。这些可以从参数Att-vals导出,该参数包含属性及其相关联值的列表。例如,对于属性-值对(att,val),可以考虑诸如att=val,att<=val,att>val等测试。

        通常,训练数据包含许多属性,每个属性都有一些可能的值。找出最优规则集是昂贵的。或者,Learn_One_Rule采用一种贪心的深度优先策略。每当面临添加一个新的属性测试(合取项)到当前规则时,它根据训练样本选择最能提高规则质量属性的测试。

1.规则质量的度量

        Learn_One_Rule需要度量规则的质量。每当考虑一个属性测试时,它必须检查,看添加该测试到规则的条件中是否导致一个改进的规则。

        举例验证准确率本身并非规则质量的可靠估计。

        考虑下图中所示的两个规则。这两个规则都是loan_decision=accept类的规则。使用“a”表示“accept”类的元组,“r”表示“reject”类的元组。规则R1正确地对它所覆盖的40个元组中的38个进行了分类,规则R2只覆盖了2个元组,它正确地进行了分类。它们的准确率分别为95%和100%。这样,R2比R1具有更高的准确率。然而,由于小覆盖率,R2不是更好的规则。


图 Loan_decision=accept类的规则,显示accept(a)和accept(r)元组

 

        这个例子告诉我们准确率本身不是规则质量的可靠估计。当然,覆盖率本身也没有用——对于给定的类,可以构造一个规则,它覆盖许多元组,大部分属于其他类。因此,寻找其他度量,可以集成准确率和覆盖率。

        现在,我们将考察几种度量:(1)熵(2)基于信息增益的度量(3)考虑覆盖率的统计检验。

        为了便于讨论,假设学习类C的规则。当前的规则是R:IFcondition THEN class=C           给定属性测试逻辑合取后的条件为condition’,也就是,R’: IFcondition’ THEN class=C,我们想知道R’是否比R更好。

        熵又称为对数据集D的元组分类所需要的期望信息。这里,D是condition’覆盖的元组集合,而pi是D中Ci类的概率。熵越小,condition’越好。熵更偏向于覆盖单个类大量元组和少量其他类元组的条件。

        另一种度量基于信息增益,在一阶归纳学习器(First Order Inductive Learner,FOIL)中提出。

FOIL是一种学习一阶逻辑规则的顺序覆盖算法。学习一阶逻辑规则更为复杂,因为这种规则包含变量,而平时我们关心的规则都是命题(即不含变量)。

        在机器学习中,用于学习规则的类的元组称正元组,而其余元组为负元组。设pos(neg)为被R覆盖的正(负)元组数。设pos’(neg’)为被R’覆盖的正(负)元组数。FOIL用下式估计扩展condition’而获得的信息


它偏向于具有高准确率并且覆盖许多正元组的规则。

        还可以用统计显著性检验来确定规则的效果是否并非出于偶然性,而是预示属性值与类之间的真实相关性。该检验将规则覆盖的元组的观测类分布与规则随机检测产生的期望类分布进行比较。我们希望评估这两个分布之间的观测是否是随机的。可以使用似然率估计量

其中m是类数。

        对于满足规则的元组,fi是这些元组中类i的观测频率,ei是规则随机预测时类i的期望频率。该统计量服从自由度为m-1的卡方分布。似然率越高,规则正确预测数与“随机猜测器”的差越显著。也就是说,规则的性能并非偶然性。似然率有助于识别具有显著覆盖率的规则。

2.规则剪枝

       上面介绍的规则质量评估使用原训练数据的元组,可能过分拟合。为了补偿这一点,可以对规则剪枝。通过删除一个合取(属性测试)对规则剪枝。选择对规则R剪枝,如果在独立的元组集上评估,R剪枝后的版本具有更高的质量。与决策树剪枝一样,称这个元组集为剪枝集。可以使用各种剪枝策略,如前面介绍的悲观剪枝方法。

        FOIL使用一种简单但有效的方法。给定规则R,

其中,pos和neg分别为规则R覆盖的正元组数和负元组数。这个值将随着R在剪枝集上的准确率的增加而增加。因此,如果R剪枝后版本的POIL_Prune值较高,则对R剪枝。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第1部分 初识Ajax······ 1 第1章 Ajax入门··········· 2 1.1 重新思考Web应用····· 2 1.1.1 应用系统的发展史············· 2 1.1.2 传统Web应用的优势和缺点··············· 4 1.2 重新设计Web应用····· 5 1.2.1 RIA应用·········· 5 1.2.2 异步发送请求并避免等待···················· 7 1.2.3 使用Ajax·········· 7 1.3 Ajax简介··· 8 1.3.1 Ajax的工作方式················· 8 1.3.2 XMLHttpRequest················· 9 1.3.3 JavaScript语言·················· 10 1.3.4 HTML页面的DOM········ 10 1.3.5 数据交换和显示··············· 11 1.4 Ajax的基本特征········ 12 1.5 Ajax的替代技术········ 13 1.5.1 Sun的Java Web Start技术·················· 13 1.5.2 Microsoft的ClickOnce技术··············· 13 1.5.3 基于Flash的Flex············· 14 1.6 搭建开发运行环境···· 15 1.6.1 本书的Ajax环境·············· 15 www.j2eedve.com 制作:找不着北 第 2 页 2007-7-27 1.6.2 Windows下JDK的安装···················· 15 1.6.3 Linux下JDK的安装······· 19 1.6.4 安装Tomcat服务器·········· 20 1.6.5 配置Tomcat的服务端口····················· 22 1.6.6 进入控制台···· 22 1.6.7 部署Web应用·················· 24 1.6.8 配置Tomcat的数据源······ 25 1.6.9 安装Ant工具··················· 28 1.6.10 安装Eclipse开发环境······ 28 1.6.11 在线安装········ 29 1.6.12 手动安装········ 30 1.7 小结········· 31 第2章 Ajax初体验···· 32 2.1 Ajax带来的优势········ 32 2.2 传统的JSP聊天室···· 34 2.2.1 实现业务逻辑组件··········· 35 2.2.2 实现控制器···· 38 2.2.3 实现视图········ 40 2.2.4 JSP聊天室的问题············ 41 2.3 Ajax聊天室················ 42 2.3.1 异步发送请求··················· 42 2.3.2 解决多余刷新的问题······· 44 2.3.3 解析服务器响应··············· 47 2.3.4 何时发送请求··················· 48 2.3.5 Ajax聊天室的特点··········· 52 2.4 传统Web应用与Ajax的对比····· 52 2.5 小结········· 53 www.j2eedve.com 制作:找不着北 第 3 页 2007-7-27 第2部分 Ajax基本技术··············· 55 第3章 JavaScript关键语法详解················· 56 3.1 JavaScript简介··········· 56 3.2 数据类型和变量········ 57 3.2.1 定义变量的方式··············· 57 3.2.2 类型转换········ 58 3.2.3 变量················ 60 3.3 基本数据类型············ 62 3.3.1 数字类型········ 62 3.3.2 字符串类型···· 67 3.3.3 布尔类型········ 70 3.3.4 undefined和null················ 71 3.4 复合类型···················· 71 3.4.1 对象················ 72 3.4.2 数组················ 72 3.4.3 函数················ 73 3.5 运算符····· 75 3.5.1 赋值运算符···· 75 3.
第八章 智能体与智能机器人 YOURcompany 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第1页。 智能体 多智能体 智能机器人 目 录 案例导读 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第2页。 案例导读 相比17年前的SARS,2020年新冠肺炎让我们看到了智能技术在抗疫一线的力量。问诊、消毒、送餐、测温,智能技术在很多场景中找到了用武之地。 随着确诊病例不断增加,一线医疗资源极度缺乏,一方面医护人员人手不足,另一方面,满负荷的工作量大大增加了医护人员的感染几率。疫情必须防控,医生和护士们也需要被保护,智能机器人代替医护人员"上岗"这一应对方案则更好的帮助医疗机构打好防疫阻击战。 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第3页。 智能体 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第4页。 智能体的定义 Agent可以看做是一个程序或者一个实体,它嵌入在环境中,通过传感器(sensors)感知环境,通过效应器(effectors)自治地作用于环境并满足设计要求。 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第5页。 (1)自主性:Agent具有独立的局部于自身的知识和知识处理方法,能够根据其内部状态和感知到的环境信息自主决定和控制自身的状态和行为。 (2)反应性:Agent能够感知、影响环境。Agent的行为是为了实现自身内在的目标,在某些情况下,Agent能够采取主动的行为,改变周围的环境,以实现自身的目标。 (3)社会性:很多Agent同时存在,形成多智能体系统,模拟社会性的群体。Agent具有和外部环境中其它Agent相互协作的能力,在遇到冲突时能够通过协商来解决问题。 (4)进化性:Agent应该能够在交互过程中逐步适应环境,自主学习,自主进化。 智能体的特性 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第6页。 智能体的理解 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第7页。 智能体的实例 名称 感受器 执行器 人类智能体 眼、耳和其他器官 手、脚、声音等 机器智能体 摄像头、红外测距仪 各种马达 软件智能体 击键、文件内容、网络包 屏幕显示、写文件、发送网络包 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第8页。 智能体体系结构和程序之间具有如下关系: 智能体 = 体系结构 + 程序 传感器 环境 执行器 条件-作用规则 作用决策 世界现状 Agent 反应式Agent是一种具备对当时处境的实时反应能力的Agent 智能体的分类 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第9页。 慎思式Agent是一种基于知识的系统,包括环境描述和丰富的智能行为的逻辑推理能力。 目标 知识库 状态 作用决策 规划 信息融合 传感器 环境 执行器 Agent 智能体的分类 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第10页。 规划 建模 决策生成 通信 感知器 反射 执行器 环境 其他Agent Agent 协作与协商 预测 请求/应答信息 一般 情况 动作 紧急和 简单情况 复合式Agent是在一个Agent内组合多种相对独立和并行执行的智能形态,其结构包括感知、动作、反应、建模、规划、通信和决策等模块 。 智能体的分类 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第11页。 兴趣匹配 组织结构 智能信息检索 决策支持系统 移动计算 远程教育 数字娱乐 用户助理 电信 智能体的应用 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第12页。 多智能体 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第13页。 智能体(agent)和多智能体技术起源于分布式人工智能研究。在生活中,可以看到很多智能体。例如在十字路口,一个可以根据路口各个车道车流量智能地设置红绿灯的时间控制器;在某高层建筑中多个电梯形成电梯组,电梯组就是一个智能体,当用户按下按钮之后,电梯组就会响应用户请求,决定某一部电梯到相应的楼层。 人工智能基础-第八章-智能体与智能机器人全文共23页,当前为第14页。 多智能体 多个智能体组成一个松散耦合又协作共事的系统,就是一个多智能体系统(multi-Agent System,MAS)。 在前面讨论Agent特性时,实际上就是多智能体系统的特性,如交互性、社会性、协作性、适应性和分布性等。此外,多智能体系统还具有如下特点: (1)数据分布或分散; (2)计算过程异步、并发或并行; (3)每个智能体具有不完全的信息和问题求解能力; (4)不存在全局控制。 人工智能基础-第八章-智能体与智能机器人全文共23页
自然语言处理(Natural Language Processing,NLP)是一门研究如何使计算机能够理解和处理人类语言的学科。基于规则方法是NLP中的一种常见方法,它使用预定义的规则和模式来处理文本。 基于规则的自然语言处理算法通常包括以下几个步骤: 1. 分词(Tokenization):将文本分割成单词或子词的序列。这是NLP任务的第一步,目的是将连续的文本划分为有意义的单元。 2. 词性标注(Part-of-Speech Tagging):为每个单词标注其词性,例如名词、动词、形容词等。这有助于理解句子中各个单词的语法角色。 3. 句法分析(Syntactic Parsing):分析句子的结构和语法关系,例如主谓宾关系、修饰关系等。句法分析可以帮助理解句子的语法结构。 4. 语义分析(Semantic Analysis):理解句子的意义和语义关系。这包括词义消歧、指代消解、语义角色标注等任务。 5. 命名实体识别(Named Entity Recognition):识别文本中的命名实体,如人名、地名、组织机构等。这有助于理解文本中的重要实体信息。 6. 关系抽取(Relation Extraction):从文本中提取出实体之间的关系。例如,从新闻报道中提取出人物之间的关系。 7. 文本分类(Text Classification):将文本划分到不同的类别或标签中。例如,将电子邮件分类为垃圾邮件或非垃圾邮件。 8. 信息抽取(Information Extraction):从文本中提取出结构化的信息。例如,从新闻文章中提取出事件、时间、地点等信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值