Weka OneR 和 ZeroR 加深理解

介绍了ZeroR和OneR两种简单的分类器算法。ZeroR总是预测多数类,用于评估其他分类器的基线表现;OneR寻找最具预测性的单一特征,基于此特征做出分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值