数据挖掘之OneR算法(原来数据挖掘如此简单!)

来源:互联网 发布:易用软件使用说明 编辑:程序博客网 时间:2024/06/05 10:55

人人都能看懂的数据挖掘之OneR算法(原来数据挖掘如此简单!)

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

原创粉丝点击