基于规则的分类——RIPPER算法
在《分类:基于规则的分类技术》中已经比较详细的介绍了基于规则的分类方法,RIPPER算法则是其中一种具体构造基于规则的分类器的方法。在RIPPER算法中,有几个点是算法的重要构成部分,需要强调一下
- 规则排序方式
RIPPER算法中采用的仍然是基于类的规则排序方式,不过独特的地方是,它先将各个类按频率(即类中包含的样本占总样本数的比例)从低到高排序,设是排序后的类,
是最不频繁的类,
是最频繁的类,按照《分类:基于规则的分类技术》中介绍的规则生成方法,生成类
的规则,直至剩下类
,然后类
作为默认类,这样做的好处是减少数据在作类预测时的比较次数,因为概率最大的类是默认类,这样多数数据只需要做少量的规则比较。
- 规则的增长
RIPPER算法使用FOIL信息增益来选择最有的合取项来添加到规则前件中,当规则开始覆盖反例时即停止添加合取项,此时采用IREP剪枝方法,将规则在验证集上剪枝,是否剪枝则需要依据如下度量参数来决定
其中、
分别表示规则在验证集上所覆盖的正例和反例个数,若剪枝后改度量增大,则保留剪枝结果,否则不进行剪枝。剪枝时,从规则末尾的合取项开始。尽管剪枝前规则只覆盖正例,但剪枝后的规则可能会覆盖训练集中部分反例。
- 建立规则集
一条规则生成后,是否能够添加到规则集中还需要经过两个条件判断,首先,该规则不违反最小描述长度原则(MDL);其次,规则在验证集上的错误率不超过50%。关于最小描述长度原则,这里稍微说明一下。根据维基百科中的解释,最小描述长度原则是奥卡姆剃刀原则形式化后的描述,当,其背后的思想是:在任一给定的资料集内的任何规律性都可用来压缩,也即是在描述资料时,与逐字逐句来描述资料的方式相比,能使用比所需还少的符号,既然如此,总有一种描述方式长度最小,这里长度用计算机中二进制的比特位(bit)来表示。
不违反最小描述长度原则,指的是在添加规则后,整个规则集的长度增加不超过一定比特位数,默认是64位。
转载于:https://www.cnblogs.com/hgz-dm/p/10886175.html
基于规则的分类——RIPPER算法的更多相关文章
- 从Odds:比值比推导出Logtic分类的算法
在从概率模型推导出逻辑回归算法模型的博文中,我试着从李宏毅老师的课程中讲到的概率模型去推导逻辑分类的算法模型.有幸看到另外一篇博文01 分类算法 - Logistic回归 - Logit函数,我了解到 ...
- [数据挖掘课程笔记]基于规则的分类-顺序覆盖算法(sequential covering algorithm)
Rule_set = {}; //学习的规则集初试为空 for 每个类c do repeat Rule = Learn_One_Rule(D,Att-vals,c) 从D中删除被Rule覆盖的元组; ...
- LSTM UEBA异常检测——deeplog里其实提到了,就是多分类LSTM算法,结合LSTM预测误差来检测异常参数
结合CNN的可以参考:http://fcst.ceaj.org/CN/article/downloadArticleFile.do?attachType=PDF&id=1497 除了行为,其他 ...
- 最邻近规则分类KNN算法
例子: 求未知电影属于什么类型: 算法介绍: 步骤: 为了判断未知实例的类别,以所有已知类别的实例作为参照 选择参数K 计算未知实例与所有已知实例的距离 选择最近K个已 ...
- 机器学习--最邻近规则分类KNN算法
理论学习: 3. 算法详述 3.1 步骤: 为了判断未知实例的类别,以所有已知类别的实例作为参照 选择参数K 计算未知实例与所有已知实例的距离 选 ...
- 逻辑回归,多分类推广算法softmax回归中
转自http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是log ...
- 隐私计算FATE-多分类神经网络算法测试
一.说明 本文分享基于 Fate 使用 横向联邦 神经网络算法 对 多分类 的数据进行 模型训练,并使用该模型对数据进行 多分类预测. 二分类算法:是指待预测的 label 标签的取值只有两种:直白来 ...
- 利用OpenMP实现埃拉托斯特尼(Eratosthenes)素数筛法并行化 分类: 算法与数据结构 2015-05-09 12:24 157人阅读 评论(0) 收藏
1.算法简介 1.1筛法起源 筛法是一种简单检定素数的算法.据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274-194年)发明的,又称埃拉托斯特尼筛法(sieve of Eratos ...
- C语言面试题分类->排序算法
1.选择排序. 每次将最小的数,与剩余数做比较.找到更小的,做交换. 时间复杂度:O(n²) 空间复杂度:O(1) 优缺点:耗时但内存空间使用小. void selectSort(int *p,int ...
随机推荐
- 分享淘宝时间服务器同步时间接口api和苏宁时间服务器接口api
最近要开发一款抢购秒杀的小工具,需要同步系统时间,这里分享两个时间服务器接口api给大家: 1.淘宝时间服务器时间接口 http://api.m.taobao.com/rest/api3.do?api ...
- 监听窗口大小变化,改变画面大小-[Three.js]-[onResize]
如果没有监听窗口变化,将会出现一下情况: 
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及 ...
- 下载安装配置 Spark-2.4.5 以及 sbt1.3.8 打包程序
文章更新于:2020-03-29 按照惯例,文件附上链接放在文首. 文件名:spark-2.4.5-bin-without-hadoop.tgz 文件大小:159 MB 下载链接:https://mi ...
- linux之进程管理(二)
一.查看进程 ps aux 查看系统所有的进程数据 ps -lA 查看所有系统的数据 ps axjf 连同部分进程树状态 ps参数 -A 显示所有进程,等效 -e -a 不与ter ...
- 谨慎使用keySet:对于HashMap的2种遍历方式比较
HashMap存储的是键值对,所以一般情况下其遍历同List及Set应该有所不同. 但java巧妙的将HashMap的键值对作为一个整体对象(java.util.Map.Entry)进行处理,这优化了 ...
- 对象中属性 加锁 用:volatile 关键词修饰 而 不用 synchronized 加锁
一个对象中有一个状态 属性,现在业务需求 存在多线程来修改 和 拿去 这个状态 的值,这种情况如果加锁怎么加? 一种是 在 set 和get 这个状态的 方法那加 synchronized . 还有一 ...