OneR算法分析

OneR原理:一个属性决定类。

算法步骤

   中文描述如下:
 For 对于每一个属性:

      For 对于属性的每一个值,创建规则如下:

           计算每一个类(值)出现的次数

           找到出现最多的类

           创建规则:把这个出现最多的类赋值给属性值(比如 OutLook中Sunny-->yes)

      计算每一个属性规则集合的错误率
找到错误率最低属性集合

        

举例 weather.nomiral.arff

对于每个属性重复上述步骤后:(带星号表示可选,也就是说类值可以选yes也可以选no)

            特殊情况:1.对于遗失值的属性而言,可以通过把Missing Value当作一个属性值 比如 OutLook就具有四个值:Sunny,Overcast,Rainy,Missing Value

                              2.对于数字值得属性而言,该如何操作呢?

针对第二种情况  我们可以使用离散型的方法把数字属性转换为名词属性,具体步骤如下:

    以weather.numeric.arff中温度为例

 
第一步:根据数字属性的值来选择训练案例

第二步:通过设置断点来分割这个数字序列,断点:类变化的那个点作为断点

 第三步:选择断点为两边的中间值,依次为:64.5,66.5,70.5,72,77.5,80.5,84,

      但是两个实例中值都为72,可是对应的类不同。这个如何处理?

        最简单的解决方法是通过把断点移动到72以上的一个案例,移动到73.5(正好为(72+75)/2),这样就产生了一个混合的划分,在这个划分中no占大多数。

第四步:可能会产生过度拟合(overfitting的概念将在下一章讲解)问题,

                      问题描述:比如对于训练集中的每一个实例,某个属性总有不同的属性值。从而标识码属性就能唯一的标识实例,这对于训练集而言会产生零错误率(因为每个分区都只有一个实例)。这个标识码属性将不会在训练集正确的外部得到任何示例。这种就是overfitting现象。处理办法?

                    解决办法      

                                      1.对于oneR来说,当某个属性有大量的可能值时,过度拟合就很有可能发生。因此,在离散化一个 数字类型属性时,加上一个条件---即每个分区中的大多数类的个数必须满足一个最小值。

                                          不妨设置为3,那么上述分区变为如下

                                             

                                      2.在第一个分区中,要确保大多数类(yes)至少有三条记录。然而,接下来的还是yes,我们完全可以把这个也划分到第一个分区,新的分割如下

                                          

                                       3.从上述图片中看到,除了最后一个,其它的分区都满足至少有三个大多数类记录。

                                              其实第一个分区和第二个分区的大多数类都是yes,当我们融合两个分区时,对于规则集合没影响。融合图如下:

                                           

第五步:最后得到  规则集合

             temperature : <=77.5 --->yes     2/10

                                      >77.5 ----->no    2/4

                                           

                                          

         温馨提醒!   

                                                   如果数字属性有已经遗失的值,将会为它创建一个额外的类别。离散程序作用这些实例的时候,会把这个属性的值作为已经定义

        
                               

原文地址:https://www.cnblogs.com/09120912zhang/p/7237891.html