一种改进的选择性朴素贝叶斯方法与流程

文档序号:15933925发布日期:2018-11-14 02:05阅读:251来源:国知局
本发明属于属性选择方法
技术领域
,具体涉及一种改进的选择性朴素贝叶斯方法。
背景技术
对一个学习任务来说,给定属性集,其中有些属性可能很关键、很有用,我们将其称为“相关属性”(relevantfeature)、没有用的属性称为“无关属性”(irrelevantfeature)。从给定的属性集合中选择出相关属性子集的过程,称为“属性选择”(featureselection)。现实任务中经常会因为属性过多而造成维数灾难问题,若能通过属性选择筛选出重要的属性,那么会大大提高处理高维数据的效率。除了去除“无关属性”,还应该去除“冗余属性”、即那些自身所包含的信息能从其他属性中推演出来的一类属性。需要注意的是,属性选择过程必须确保不丢失重要属性,否则后续学习过程会因为重要信息的缺失而无法获得好的性能。选择好的属性能够提高模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。常见的属性选择方法大致可以分为三类:过滤式(filter)、包裹式(wrapper)和嵌入式(embedding)。过滤式方法通过相关系数、信息增益(infogain)、增益率(gainratio)、oner等方法计算原始属性集中各个条件属性与类别属性的相关程度,然后进行“过滤”,再用过滤后的属性来训练模型。过滤属性的标准是按照对原始属性集进行相关程度的先后排序。与过滤式属性选择不必考虑后续学习的情况不同,包裹式属性选择直接把最终将要使用的学习器的性能作为属性子集的评价标准。一般而言,由于包裹式属性选择方法直接针对给定学习器进行优化,因此从最终学习器性能来看,包裹式属性选择比过滤式属性选择更好。但另一方面,由于属性选择过程中需要多次训练学习器,因此包裹式属性选择的计算开销通常比过滤式属性选择大得多。在过滤式和包裹式属性选择方法中,属性选择过程与学习器训练过程有明显的区别;与此不同,嵌入式属性选择是将属性选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了属性选择。技术实现要素:本发明的目的是提供一种改进的选择性朴素贝叶斯方法,解决了在减少属性维度的同时提高分类的正确性的问题本发明所采用的技术方案是,一种改进的选择性朴素贝叶斯方法,包括以下步骤:步骤1,给定含有n个属性的数据集t,设s={a1,a2,…,an}为离散属性变量有限集,c={c1,c2,…,cm}为类变量,m为类变量的取值个数,cj为类变量的第j个取值;当讨论二分类问题,即假设j=2,c={c1,c2}时,对于任意的条件属性变量ai,设其有si个不同的取值即属性ai的第k个取值表示为aik;步骤2,定义woe指标woe指标是对原始自变量的一种编码形式,要对一个变量进行woe编码,需要先把这个变量进行分组处理,如公式(2)和(3):公式(2)-(3)式中:c1表示第1个训练样本的类标签,c2表示第2个训练样本的类标签,p(a=aik|c=c1)表示属性为aik、类别为c1的条件概率,p(a=aik|c=c2)表示属性为aik、类别为c2的条件概率,n(c)表示类别为c的样本数,n为数据样本总数,n(a=aik|c)表示类别和属性值为aik时的样本数;步骤3,定义iv指标iv指标是用来衡量变量的信息量,即自变量对于目标变量的影响程度,如公式(4)所示:iv(aik,c)=(p(a=aik|c=c1)-p(a=aik|c=c2))*woe(aik,c)(4)则属性ai的iv值为各个分组的iv值之和,即:步骤4,结合步骤1,将步骤2的woe指标和步骤3的iv指标引入属性选择中,构造朴素贝叶斯分类器;步骤5,在步骤4的基础上,需先通过iv指标对步骤1的最原始的离散属性变量有限集s进行过滤,得到符合阈值要求的属性子集s',并对s'中的属性按照iv值大小由高到低的顺序进行排序,最后在排列有序的属性子集s'上搜索能使分类器的性能达到最优的属性集合。本发明的特征还在于,步骤4的具体操作为:步骤4.1,通过iv值计算从原始属性集合中筛选出与类别高度相关的属性子集:根据朴素贝叶斯加权公式可知,要对样本x进行分类需要公式(6)、公式(7):公式(6)-(7)中:p(aik|c1)与p(a=aik|c=c1)相同,表示属性为aik、类别为c1的条件概率;p(aik|c2)与p(a=aik|c=c2)相同,表示属性为aik、类别为c2的条件概率;p(c1)表示类别为c1的条件概率;p(c2)表示类别为c2的条件概率;p(c1|x)表示属性为x、类别为c1的条件概率;p(c2|x)表示属性为x、类别为c2的条件概率;x表示每个没有类标号的数据库样本用n维特征向量;步骤4.2,选取阈值进行属性过滤对公式(6)进行归一化可得公式(8):其中可知a在给定的数据集下为常量,同理,对公式(7)进行归一化可得公式(9):公式(8)-(9)中:p(c1|x)'归一化后表示属性为x、类别为c1的条件概率;p(c2|x)'表示归一化后属性为x、类别为c2的条件概率;步骤4.3,在步骤4.2中分类能力较好的属性子集上构造朴素贝叶斯分类器。步骤4.2中的阈值与iv值衡量属性与类属性的相关程度的划分如下:相关程度iv值无相关性iv<0.02弱相关性0.02≤iv<0.1中等相关0.1≤iv<0.3强相关性iv≥0.3步骤5的具体操作为:步骤5.1,输入步骤1中待分类的样本数据集t,条件属性集合即离散属性变量有限集s={a1,a2,…,an},决策属性集合即类变量c={c1,c2,…,cm};并对待分类的样本数据集t进行数据预处理;步骤5.2,初始化备选条件属性集合s,经过属性选择被选中的属性集合为s',未被选中的属性集合为s”,根据属性的iv指标高低排序的属性集合为s”',令s'、s”、s”'都为空,最大正确率accuracymax=0,当前正确率accuracycur=0;步骤5.3,计算条件属性集合s中所有属性的信息价值iv值,并通过阈值进行第一轮筛选,将iv值大于等于阈值的属性添加到集合步骤5.2中的s”'中,iv值小于阈值的属性添加到集合s”中,并对s”中的属性按照iv值由高至低排序;步骤5.4,如果s”'为0,则结束计算,保存此时的s'和accuracymax;步骤5.5,如果s”'不为0,继续计算,选择属性集合s”'中第一个属性ai,将其从s”'中删除,并添加到s'中,在更新的s'上构造朴素贝叶斯分类器,并计算accuracycur;步骤5.6,如果步骤5.5中的accuracycur>accuracymax,则更新为accuracymax=accuracycur;如果步骤5.5中的accuracycur≤accuracymax,将ai从s'中移除,添加到s”中,保存此时的s'和accuracymax,结束计算。本发明的有益效果是:本发明一种改进的选择性朴素贝叶斯方法现有的贝叶斯算法的基础上,将woe和iv指标引入属性选择,提高朴素贝叶斯在属性冗余时的分类性能,同时在属性不冗余的情况下保持朴素贝叶斯的分类性能;根据阈值筛选得到第一轮属性子集,从而减少了遍历空间,解决了在减少属性维度的同时提高分类的正确性的问题。具体实施方式下面结合具体实施方式对本发明进行详细说明。计算属性间相关性的最常用的传统方法是线性相关性方法,但是作为一种属性排序机制,其主要缺点是只对线性关系敏感,如果属性之间存在非线性的关系,即使它们具有一一对应的关系,相关系数也可能接近于0,而且这种方法要求所有属性包含数值型属性值。为了克服这些缺点,引入了一些基于信息论的方法,如信息增益、增益率和对称不确定性系数等一系列方法,但在通过计算属性与类别之间的相关性进行属性选择时,这些方法并没有明确的阈值设定,只能对属性按照相关程度排序,在时间空间效率上仍有待提高。若有两个离散型随机变量x和y,采用相对熵又称kl散度刻画两个离散随机变量之间的距离dkl=(yx),定义见公式(1):dkl(y|x)=∑(py(i)log(py(i)/px(i)))(1)公式(1)中,各个变量的示意:py(i)是随机变量y=i时的概率分布;px(i)是随机变量x=i的概率分布;相对熵是描述两个概率分布差异的一种方式,其值始终是大于等于0的,当且仅当两分部相同时,相对熵等于0。woe值和iv值就是从相对熵演化而来的。woe(weightofevidence)是对原始自变量的一种编码形式;iv(informationvalue)是用来衡量变量的信息量,即自变量对于目标变量的影响程度。本发明一种改进的选择性朴素贝叶斯方法,包括以下步骤:步骤1,给定含有n个属性的数据集t,设s={a1,a2,…,an}为离散属性变量有限集,c={c1,c2,…,cm}为类变量,m为类变量的取值个数,cj为类变量的第j个取值;当讨论二分类问题,即假设j=2,c={c1,c2}时,对于任意的条件属性变量ai,设其有si个不同的取值即属性ai的第k个取值表示为aik;步骤2,定义woe指标woe是一种基于特定类别的结合实例的定量分析方法,该方法作为一种概率统计理论于20世纪50年代首次被提出,后来应用于医疗诊断系统,上世纪80年代woe被广泛用于地理信息系统。近年来,随着银行等金融机构业务的拓展及对个人信用记录逐渐重视,woe作为一种衡量客户资产品质的方法正逐渐成为研究的热点。woe指标是对原始自变量的一种编码形式,要对一个变量进行woe编码,需要先把这个变量进行分组处理,也叫离散化、分箱等。如公式(2)和(3):公式(2)-(3)式中:c1表示第1个训练样本的类标签,c2表示第2个训练样本的类标签,p(a=aik|c=c1)表示属性为aik、类别为c1的条件概率,p(a=aik|c=c2)表示属性为aik、类别为c2的条件概率,n(c)表示类别为c的样本数,n为数据样本总数,n(a=aik|c)表示类别和属性值为aik时的样本数。取值个数变动带来的影响woe反映的是一种比例关系,并且通过对数计算来缩小正负例,如在该某一属性的某种取值下,正例多一个并不会使woe值产生大幅变动,使得误差抽样、噪音等问题对woe的影响能够得到一定的控制。woe主要是用来衡量同一属性下各个取值对分类结果的倾向性,若一属性的某种取值仅出现了一次并且将分类结果导向为正例,并不能说明这种取值就具有分类结果为正的绝对导向性。因此,当需要衡量该属性在整个属性集中对分类结果的贡献程度时,必须纳入该取值出现频率的高低作为考量,这就引发了iv指标的出现。步骤3,定义iv指标iv指标是用来衡量变量的信息量,即自变量对于目标变量的影响程度,如公式(4)所示:iv(aik,c)=(p(a=aik|c=c1)-p(a=aik|c=c2))*woe(aik,c)(4)则属性ai的iv值为各个分组的iv值之和,即:步骤4,结合步骤1,将步骤2woe指标和步骤3iv指标引入属性选择中,构造朴素贝叶斯分类器。把iv值引入朴素贝叶斯分类算法中,作为属性选择的一部分,要充分考虑iv值对朴素贝叶斯分类算法的影响,从iv值的数学计算公式(4)-(5)可以看出:当p(ai=aik|c=c1)>p(ai=aik|c=c2)>0时,woe(aik,c)>0,iv(aik,c)>0;当0<p(ai=aik|c=c1)<p(ai=aik|c=c2)时,woe(aik,c)<0,iv(aik,c)>0;当p(ai=aik|c=c1)=p(ai=aik|c=c2)时,woe(aik,c)=0,iv(aik,c)=0。步骤4.1,通过iv值计算从原始属性集合中筛选出与类别高度相关的属性子集:根据朴素贝叶斯加权公式可知,要对样本x进行分类需要公式(6)、公式(7):公式(6)-(7)中:p(aik|c1)与p(a=aik|c=c1)相同,表示属性为aik、类别为c1的条件概率;p(aik|c2)与p(a=aik|c=c2)相同,表示属性为aik、类别为c2的条件概率;p(c1)表示类别为c1的条件概率;p(c2)表示类别为c2的条件概率;p(c1|x)表示属性为x、类别为c1的条件概率;p(c2|x)表示属性为x、类别为c2的条件概率;x表示每个没有类标号的数据库样本用n维特征向量;步骤4.2,选取阈值进行属性过滤对公式(6)进行归一化可得公式(8):其中可知a在给定的数据集下为常量,同理,对公式(7)进行归一化可得公式(9):公式(8)-(9)中:p(c1|x)'表示归一化后属性为x、类别为c1的条件概率;p(c2|x)'表示归一化后属性为x、类别为c2的条件概率;通过分析上述公式可知:当β(aik)>1时,即woe(aik,c)>0,iv(aik,c)>0时,β(aik)越大,p(c1|x)'的值就越小,而p(c2|x)'的值越大;当0<β(aik)<1时,即woe(aik,c)<0,iv(aik,c)>0时,β(aik)越大,p(c1|x)'的值就越小,而p(c2|x)'的值越大。综上所述:当β(aik)>0时,β(aik)越大,后验概率p(c1|x)'和p(c2|x)'差异越大;当β(aik)=1时,β(aik)对p(c1|x)'和p(c2|x)'的值都没有影响。由于β(aik)与iv(aik,c)成正比,也就是当iv(aik,c)>0时,其值越大,表明不同的类标签在该变量上的差异越大,也就是说该变量的分类能力越好。iv(aik,c)=0时,该变量对分类没有影响。如表1所示,给出了iv值衡量属性与类属性的相关程度的阈值划分。表1iv值衡量属性与类属性的相关程度的阈值划分相关程度iv值无相关性iv<0.02弱相关性0.02≤iv<0.1中等相关0.1≤iv<0.3强相关性iv30.3步骤4.3,在步骤4.2中分类能力较好的属性子集上构造朴素贝叶斯分类器。由上可知,将iv值引入属性选择,将具有如下优势:(1)iv能够衡量各属性对分类的影响大小;(2)和其他大多的属性选择算法比较,iv有较为普适的阈值来决定属性与类属性的相关程度,而其他多数属性选择指标通常只能够对影响力大小排序,不易确定选用多少个属性才可以达到较满意的效果;(3)iv计算速度快,时空开销也小,适合进行数据预处理。但直接将iv指标用作属性选择还需要考虑以下问题:在实际计算中,iv值对于离散属性的计算可以通过统计获得相关概率值,但对于连续属性很难获得数据的概率分布,而且积分的计算具有一定难度及较大的时空开销,所以在iv计算前期,可以将连续属性离散化处理,从而保证iv指标的高效性。另外,在实际的数据中,经常会出现某属性下某种取值频率为0的情况,即当属性ai取值为aik时,不存在类别为c的实例,这就会导致分母为0的情况,使得woe的取值趋于无穷大,显然是不合理的。针对这种情况采取归一化处理,在之前的分析中我们指出取值的轻微变动不会造成woe值的大幅波动,因此在属性某种取值的实例数为0时,我们将其作为1进行处理。属性子集选择的目的,就是找到原始属性集合的一个简洁子集,使得学习算法在仅包含这个子集中属性的数据集合上运行后,产生一个尽可能高精确度的分类器。而原始属性集合大多如同ucirepositoryofmachinelearningdatabases的数据集,如表2所示,存在连续值属性和缺失值等属性。因此,属性子集选择的关键是找到一个简化且优良的属性子集。一个优良的属性子集,既表现在这个集合整体与类属性的关联性很强,又表现在此集合中属性与属性之间的整体冗余性很小。为了选择一个最优的子集,在进行属性子集选择时,必须综合考虑子集中属性与类属性之间的关联性和属性与属性之间的冗余性。表2数据集描述本发明选择性朴素贝叶斯方法是通过iv指标筛选可以得到与类属性强相关的属性子集,但是忽视了属性之间的冗余性;而朴素贝叶斯方法虽然能很好的解决属性冗余问题,但是在进行属性子集筛选时并没有确定的标准,很可能造成穷尽式搜索,增大计算复杂度和运行效率。步骤5,需先通过iv指标对最原始的离散属性变量有限集s进行过滤,得到符合阈值要求的属性子集s',并对s'中的属性按照iv值大小由高到低的顺序进行排序,最后在排列有序的属性子集s'上搜索能使分类器的性能达到最优的属性集合。具体操作如下:步骤5.1,输入步骤1中待分类的样本数据集t,条件属性集合即离散属性变量有限集s={a1,a2,…,an},决策属性集合即类变量c={c1,c2,…,cm};并对待分类的样本数据集t进行数据预处理;步骤5.2,初始化备选条件属性集合s,经过属性选择被选中的属性集合为s',未被选中的属性集合为s”,根据属性的iv指标高低排序的属性集合为s”',令s'、s”、s”'都为空,最大正确率accuracymax=0,当前正确率accuracycur=0;步骤5.3,计算条件属性集合s中所有属性的信息价值iv值,并通过阈值进行第一轮筛选,将iv值大于等于阈值的属性添加到集合步骤5.2中的s”'中,iv值小于阈值的属性添加到集合s”中,并对s”中的属性按照iv值由高至低排序;步骤5.4,如果s”'为0,则结束计算,保存此时的s'和accuracymax;步骤5.5,如果s”'不为0,继续计算,选择属性集合s”'中第一个属性ai,将其从s”'中删除,并添加到s'中,在更新的s'上构造朴素贝叶斯分类器,并计算accuracycur;步骤5.6,如果步骤5.5中的accuracycur>accuracymax,则更新为accuracymax=accuracycur;如果步骤5.5中的accuracycur≤accuracymax,将ai从s'中移除,添加到s”中,保存此时的s'和accuracymax,结束计算。本发明所选取的属性只是朴素贝叶斯属性集合的子集,它可以提高朴素贝叶斯在属性冗余时的分类性能,同时在属性不冗余的情况下保持朴素贝叶斯的分类性能。通过引入iv概念,根据阈值筛选得到第一轮属性子集,从而减少了遍历空间,并通过前向搜索对属性子集进行二轮选择,根据贪心算法的原理,假设在搜索的每一步,该算法认为当前属性集合中的所有局部变化都是最优选择。经过属性选择选出的最优子集的好坏总是与具体的评价准则相关,不同的参照系下,对“最优子集”的认可程度往往不同,标准a得到的最优子集在标准b下很可能并不是最好的。对于监督学习来说,属性选择的最终目的与意义在于使分类器的正确率更好。因此,本发明采用最直观的方式,分类精度(或是错误率)作为评价标准,将朴素贝叶斯分类器的正确率作为属性选择优劣程度的衡量。为了验证方法的有效性,首先,选取ucirepositoryofmachinelearningdatabases的数据库,参考表1,比较在不同阈值下的属性子集个数和分类正确性。从而证实引入iv指标的正确性。然后,通过iv指标与常用的属性选择方法cor(correlation)、gr(gainratio)、ig(infogain)、oner进行比较,计算各个方法下条件属性与类别属性的相关程度和分类正确率,从而得出本发明方法的有效性。最后,对朴素贝叶斯分类器和经过属性选择后的朴素贝叶斯分类器的性能的对比,证实改进后的本发明方法能在大幅度降低属性维度的同时保证分类的正确率。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1