ZeroR分类器是一种最简单的分类器,这种方法仅仅根据历史数据统计规律,而选择一种概率最大的类别作为未知样本的分类结果,也就是说对于任意一个未知样本,分类结果都是一样的。ZeroR分类器简单的以多数类的类别(连续型数据使用简单均值)作为预测值。尽管这种分类器没有任何的预测能力,但是它可以作为一种与其他分类器的对比分类器。也就是说baseline performance。

算法描述:

为数据集建立一个频度表来选择一个频率最大的值。

例子:

模型:对于下面的数据集来说“Play Golf =Yes” 是ZeroR模型,精度为:0.64

预测性能:属性值也就是上面的预测指标(predictors)对于模型来说毫无贡献度。这是因为ZeroR根本就没有使用它们。

模型度量(Model Evaluation)

Confusion Matrix:

   yes    no

yes 9 0

no 5 0

所以预测精度为:0.64
所以我们一般使用ZeroR来作为分类器 准确率的最低基准线,来判断分类器的使用是否合适。


OneR分类器
在OneR算法要干什么?
要想最快地明白一件事情,首先要搞清楚其目的。OneR是One Rule的意思,即一个规则,只看某事物的一个特征,然后来预测该事物的类别。不明白,没事,举个例子你就明白了。
比如,现在给出一条数据,该数据描述了一个人的三个特征:身高,体重,头发长短,根据这三个特征来预测该人的性别类,男或女。如果以我们人类的思维来看这个问题,一般来说,如果这个人的身高为高挑(假如超过1.7米为高,否则为矮),体重为重(假如超过120斤为重,否则为矮),头发为短(假如头发过肩为长,否则为短),那么我们可以预测这个人属于类别男。这里,我们把数据中三个特征都看了,然后才预测出该人的性别,而OneR算法则希望找出一个准确率最高的特征,比如头发,然后只根据头发的长短来预测该人所属性别。如,如果该人的头发为短,则直接判断该人的性别为男性。这就是OneR算法。是不是很简单?

如果找出最好的特征?
我们上面说了,要从多个特征中找出准确率最高或者说是错误率最低一个特征来预测该事物的类别。那么如何找出那个最好的特征呢?这就需要对现有的数据来进行统计分析了。其实这个过程是非常简单的。
比如我们现在有10条数据。
这里写图片描述
我们分别对每个特征进行统计,统计结果如下:
这里写图片描述

先来看身高的统计结果,男中有4个为高,只有1个为矮,那么我们可以认为身高为高的人一般性别为男,相对较矮的则判断为女性,如果以这样的规则来预测的话,那么会出现几个错误呢?图中红色的就是错误的,可以看到,男的为1个,女的为两个,总共为3,那么,如果用身高这个特征来判断性别的话,错误数为3,即错误率为30%。
同理,由体重的统计结果可以得出,错误数为4,而头发长短这个特征的话错误数为2。
由此,三个特征的错误数分别为3,4,2,明显错误最少的特征为头发长短,也就是说,根据头发长短来判断性别的准确度是最高的,所以我们选择头发长短这个特征来作为预测性别的唯一规则(One Rule):如果头发长短为长,我们就认为该人性别为女,如果为短则认为该人性别为男。这是不是很简单?
比如下面一条数据,
这里写图片描述
虽然身高为矮,体重为轻,很可能是女性,但是我们的唯一规则只看头发长度,因为头发长度为短,所以我们的算法判断该人性别为男。

总结
这里,我只把OneR算法的大概思想说了一下,在实际情况中可能需要一些额外的处理,比如把连续数据离散化,数据中存在非法值(如空值)如何处理等等,如果你想了解更多,就去找相关的资料看吧,对了,目前国内网站关于数据挖掘方面的资料还是相对较少的,翻墙吧哈哈。

Weka OneR 和 ZeroR 加深理解相关推荐

  1. 单片机软件模拟SPI接口—加深理解SPI总线协议

    单片机软件模拟SPI接口-加深理解SPI总线协议   SPI(Serial Peripheral Interfacer 串行外设接口)是摩托罗拉公司推出的一种同步串行通讯接口,用于微处理器臌控制器和外 ...

  2. FFT运算的加深理解——FFT的增益

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FFT运算的加深理解--FFT的增益 前言 FFT的增益 前言 FFT的一些概念一直迷惑了好多年,包括增益.频谱泄露.加窗.补零.栅栏 ...

  3. 我的工训:加强沟通、加深理解、扩大分享!

    工训定义:工作中注重的训诫. 加强沟通:在团队协作中,永不放弃的是主动沟通的精神,在彼此都没有领会到对方的真正意图情况下,积极的做法就是进一步加强沟通,不过这时候要贴近对方的思维去探索,到底彼此的思维 ...

  4. 测试下mysql的几种连接,加深理解

    测试下mysql的几种连接,加深理解 初始表数据 table1: table2: inner join select * from table1 t inner join table2 t2 9行数据 ...

  5. FFT运算的加深理解——栅栏效应、补零、物理分辨率、计算分辨率

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FFT运算的加深理解--栅栏效应.补零.物理分辨率.计算分辨率 栅栏效应和计算分辨率 物理分辨率 总结 栅栏效应和计算分辨率 栅栏效应 ...

  6. 原码一位乘法器设计_对原码、反码和补码的加深理解

    我们知道计算机语言可以简单概括为三类,分别是机器语言.汇编语言和高级语言.机器语言是由二进制组成的编码,由无数个0和1组成.在二进制系统中,每个0或1就是一个位,而位是数据存储的最小单位,可称之为比特 ...

  7. 第五站 使用winHex利器加深理解数据页

    这篇我来介绍一个winhex利器,这个工具网上有介绍,用途大着呢,可以用来玩数据修复,恢复删除文件等等....它能够将一个file解析成hex形式,这样你就可以对hex进行修改,然后你就可以看到修复后 ...

  8. C++——const加深理解之const在函数后

    先看下面4种情况,应该是理解const的基础,我觉得必须掌握且容易掌握 int b = 500; const int* a = &b; [1] int const *a = &b; [ ...

  9. Java线程等待唤醒机制(加深理解)

    今天看源码的时候遇到这样一个场景,某线程里面的逻辑需要等待异步处理结果返回后才能继续执行.或者说想要把一个异步的操作封装成一个同步的过程.这里就用到了线程等待唤醒机制,下面具体看一下. 等待唤醒机制示 ...

最新文章

  1. python调用数据库存储过程_python连接mysql调用存储过程示例
  2. java应用重启导致数据丢失_java – 在重新启动应用程序后从SharedPreferences恢复时设置丢失数据...
  3. mysql重要的监控参数_zabbix3.0.2使用percona mysql插件来监控mysql5.7   以及必须监控的性能参数...
  4. mp3排序软件哪个好用_电脑录音软件哪个好用?
  5. 培训班出身的程序员怎么了
  6. 3D空间中射线与三角形的交叉检测算法
  7. 嵌入式linux opengl6,利用winSSHD实现Windows和Linux间的文件互传
  8. Exploit Kit攻击工具包流量锐减96%!这段时间究竟发生了什么?
  9. Ubuntu18.04安装openjdk-7-jdk
  10. 错误: -source 1.6 中不支持 diamond 运算符
  11. 神经网络的归一化(batch normalization)
  12. DSO(Direct Sparse Odometry)
  13. STM32开发环境配置
  14. Windows PE探秘
  15. 北京地铁拥挤度实时查询
  16. XP桌面图标阴影的去除
  17. 百度地图坐标转成腾讯地图坐标
  18. 怎么把照片转换成jpg格式?这个好方法拿去
  19. 利用matlab实现硬币分类,一种硬币计数分类整理机的制作方法
  20. 用计算机无法解决打印所有,解决打印机无法打印的10种方法

热门文章

  1. Android - Windows 多样化投屏方案
  2. CSS3 will-change提高页面动画等渲染性能
  3. 江西“葫芦夫妻”的“甜蜜”事业
  4. 闲云野鹤:吃鸡(四)之场景制作—用unity内置草功能制作草
  5. 研发人员为什么留不住:问题与现象、原因的解析
  6. omf多路径 oracle_OMF下Restore Oracle Datafile的优先级问题
  7. 全网最透彻的Hash分析
  8. python与Geant4的socket通信
  9. Won a Air Purifier in DD lucky draw
  10. 无数的讽刺侮辱挖苦打击否定不屑与嘲笑,只有罗永浩才撑得住吧