




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在逐渐缩小的空间上渐进学习朴素贝叶斯参数文章编号:1001-9081(2012)01-0223-05 doi:10.3724/sp.j.1087.2012.00223摘 要:局部加权朴素贝叶斯(lwnb)是朴素贝叶斯(nb)的一种较好的改进,判别频率估计(dfe)可以极大地提高nb的泛化正确率。受lwnb和dfe启发,提出逐渐缩小空间(gcs)算法用来学习nb参数:对于一个测试实例,寻找包含全体训练实例的全局空间的一系列逐渐缩小的子空间。这些子空间具有两种性质:1)它们都包含测试实例;2)一个空间一定包含在任何一个比它大的空间中。在逐渐缩小的空间上使用修改的dfe(mdfe)算法渐进地学习nb的参数,然后使用nb分类测试实例。与lwnb的根本不同是:gcs使用全体训练实例学习nb并且gcs可以实现为非懒惰版本。实现了gcs的决策树版本(gcs-t),gcs-t是非懒惰算法,它使用决策树寻找子空间。实验结果显示,与c4.5以及贝叶斯分类算法(如naive bayes、baysiannet、nbtree、lwnb、隐朴素贝叶斯)相比,gcs-t具有较高的泛化正确率,并且gcs-t的分类速度明显快于lwnb。关键词:朴素贝叶斯;局部模型;全局模型;决策树;朴素贝叶斯树abstract: locally weighted naive bayes (lwnb) is a good improvement of naive bayes (nb) and discriminative frequency estimate (dfe) remarkably improves the generalization accuracy of naive bayes. inspired by lwnb and dfe, this paper proposed gradually contracting spaces (gcs) algorithm to learn parameters of naive bayes. given a test instance, gcs found a series of subspaces in global space which contained all training instances. all of these subspaces contained the test instance and any of them must be contained by others that are bigger than it. then gcs used training instances contained in those subspaces to gradually learn parameters of naive bayes (nb) by modified version of dfe (mdfe) which was a modified version of dfe and used nb to classify test instances. gsc trained naive bayes with all training data and achieved an eager version, which was the essential difference between gsc and lwnb. decision tree version of gcs named gcs-t was implemented in this paper. the experimental results show that gcs-t has higher generalization accuracy compared with c4.5 and some bayesian classification algorithms such as naive bayes, baysiannet, nbtree, hidden naive bayes (hnb), lwnb, and the classification speed of gcs-t is remarkably faster than lwnb.key words: naive bayes (nb); local model; global model; decision tree; nbtree0 引言对于测试实例itest,如果知道它所属的潜在概率分布p,根据贝叶斯决策理论1,利用p可以对itest最优分类。现实中所能得到的训练数据总是有限的,因此几乎不可能准确估计潜在概率分布p。为了使用有限的数据尽可能准确地估计概率分布p,往往需要做一些条件独立假设。朴素贝叶斯(naive bayes, nb)使用最极端的条件独立假设:给定类标号属性后,其他各属性之间条件独立。尽管有极端的条件独立假设,朴素贝叶斯在多数情况下依然表现出优秀的泛化性能,且具有较低的训练时间复杂度,这引起了人们的极大兴趣。许多方法试图通过放松条件独立假设进一步提高朴素贝叶斯的泛化性能,这类方法有朴素贝叶斯树(nbtree)2、贝叶斯网(baysiannet)3-4、局部加权朴素贝叶斯(locally weighted naive bayes, lwnb)5和隐朴素贝叶斯(hidden naive bayes, hnb)6等。baysiannet、hnb通过增加父节点个数放松条件独立假设。nbtree、lwnb在局部训练空间2,5,7中建立朴素贝叶斯从而放松条件独立假设。在局部空间建立分类器的另一个好处是:如果在很大的全局实例空间中建立分类器,很难保证它对空间中每一部分实例都有较高的泛化正确率;但是,如果仅在全局空间的一个局部区域内建立分类器,使用该分类器对属于该局部空间的实例分类,一般来说能提高泛化正确率。判别参数学习8也是一类提高朴素贝叶斯泛化性能的方法。扩展逻辑回归(extension logistic regression, elr)9和判别频率估计(discriminative frequency estimate, dfe)10是最具代表性的两种判别参数学习算法,它们都能显著提高朴素贝叶斯的泛化正确率。elr和dfe的泛化性能基本相当,但dfe的学习速度比elr快很多9。受lwnb和dfe启发,本文提出算法逐渐缩小空间(gradually contracting spaces, gcs),在根据测试实例itest寻找的一系列子空间上使用修改的dfe算法渐进地学习朴素贝叶斯(nb)的参数,然后使用nb分类测试实例itest。本文实现了gcs的决策树版本(decision tree version of gcs, gcs-t),实验结果显示,与naive bayes、baysiannet、nbtree、lwnb、hnb以及c4.5相比,在实验中所选多数数据集上gcs-t具有更好的泛化性能,并且gcs-t的分类速度明显比lwnb快。1 相关工作kohavi提出nbtree2,该算法把朴素贝叶斯和决策树结合起来,在决策树的叶节点上建立朴素贝叶斯。nbtree划分节点的标准是能否提高nbtree在训练集上的交叉验证正确率。nbtree叶节点上的朴素贝叶斯仅体现局部空间内训练实例(到达叶节点的训练实例)的分布特征,而gcs中学习到的朴素贝叶斯主要体现局部空间内训练实例的分布特征,但它也在一定程度上体现全体实例的分布特征。lwnb5是一种懒惰分类算法,该算法分类测试实例之前不训练分类器,只保存训练实例集。分类时,用欧氏距离在训练实例集合中找到测试实例的k个近邻,根据k个近邻到测试实例的距离对它们加权并用加权后的近邻训练朴素贝叶斯,然后对测试实例分类。lwnb分类速度较慢,训练实例数量较大时这个问题尤为严重。hnb6已不具有朴素贝叶斯或贝叶斯网的结构特征。hnb给类属性之外的任一属性a加一个隐父节点h,其他的所有属性都通过h影响属性a。本质上说,hnb中类属性之外任一属性a的父节点是除属性a之外的所有属性,只是这些属性以不同的概率作为a的父节点。dfe10是一种基于统计的判别参数学习算法,它与频率估计(frequency estimate, fe)算法10的唯一区别是fe统计训练实例之前不对实例加权,而dfe根据当前分类器对训练实例的分类正确率对实例加权统计,这使贝叶斯分类器更加拟合训练数据。一般情况下使用dfe学习参数可以提高朴素贝叶斯的泛化正确率。2 gcs算法2.1 学习朴素贝叶斯参数使用x代表离散型属性,x代表x的具体取值,xij代表属性xi的第j种取值。使用x代表一组离散型属性组成的向量,x代表x的具体取值。使用c代表类标号,c代表c的具体取值,cj代表c的第j种取值。离散型训练数据集d包括一组训练实例,每一个实例用(x, c)表示。现在用大小写和空心字来表示字符,请根据现在的书写方式,补充文中哪些还需要处理并统一的字符。朴素贝叶斯结构如图1,类标号c是属性x1,x2,xm的父节点,给定c后,x1,x2,xm之间相互独立。图1中每个节点处都保存一个概率分布。朴素贝叶斯使用式(1)计算后验概率分布:p(c|x1,x2,xm)=p(c)mi=1p(xi|c)(1)其中:是正则化因子;p(c)和p(xi|c)都被记录在条件概率分布表(conditional probability table, cpt)中,也就是说cpt中包含了类标号c取各种值时它的概率值p(c)以及属性xi,类标号c的各种不同取值组合的条件概率为p(xi|c),i=1,2,m。使用式(2)计算p(xi=xij|c=ck):p(xi=xij|c=ck)=nijk/nik(2)其中nijk代表训练数据d中在属性xi上取值为xij并且类标号取值为ck的实例个数,nik=jnijk。p(c=ck)用式(3)计算:p(c=ck)=nk/n(3)其中:n代表训练数据d中实例的总个数,nk代表d中类标号取值为ck的实例个数。为了方便实现,cpt的每一个表项ijk等于nijk或nk(00k=nk),而不再等于p(xi=xij|c=ck)或p(c=ck)。由nijk或nk很容易计算出p(xi=xij|c=ck)或p(c=ck)。学习朴素贝叶斯实质上是学习cpt中的表项ijk,ijk也叫做朴素贝叶斯的参数。dfe学习ijk的过程10在如下的伪码中给出,它实质上就是在训练实例上做m(伪码中dfe在全体训练数据上的迭代次数)次加权统计。为了在gcs算法中使用dfe学习参数,修改的dfe算法为mdfe(modified version of dfe)算法,修改的方法是去掉算法dfe中标号为1)的语句,其他不变。有序号的程序shift+alt+y程序前algorithm: learning nb by discriminative frequency estimateinput: naive bayes parameters ijk; training dataset d, did; iterator number m1)initialize each naive bayes parameters ijk to 1;2)for e from 1 to m do3)for each di in d do4)compute probability of ith training instance being correctly classified by current naive bayes, denote by p(c|di)5)double weight=1-p(c|di)6)for each corresponding parameters ijk in naive bayes do7)let ijk=ijk+weight程序后2.2 gcs算法dfe在全体训练实例上迭代m次学习参数ijk,建立的是全局模型。lwnb5表明在局部空间上建立朴素贝叶斯多数情况下可以提高泛化正确率。lwnb学习的朴素贝叶斯仅体现局部空间内训练实例的分布特征,完全忽略局部空间之外训练实例的分布。本文提出的gcs算法在包含全体训练实例的全局空间u0以及它的逐渐缩小的局部子空间u1,ur上渐进学习nb的参数,使得nb既能突出体现局部空间内训练实例的分布特征,又能在一定程度上体现全局空间内训练实例的分布特征。gcs是对全局模型和局部模型的折中。gcs算法主要步骤:对于一个测试实例itest,使用某种方法在包含所有训练实例的全局空间u0内寻找局部子空间u1,ur并且itesturur-1u1u0。建立朴素贝叶斯nb0,nb1,nbr。初始化nb0的参数为均匀分布,然后在空间u0包含的训练实例上使用mdfe学习nb0的参数。使用nb0的参数初始化nb1的参数,在空间u1包含的训练实例上使用mdfe学习nb1的参数,重复这个过程,直到学习完nbr的参数。使用nbr分类属于空间ur的测试实例itest。gcs划分后的空间满足i,itestui,并且i、j,如果ij,那么uiuj。不严格地说,nbr(用来分类itest)学习参数过程中统计ui中的训练实例i+1次。随着i值的增加,空间ui中的训练实例在学习nbr参数时所起的作用越来越大,也就是说越小的局部空间内的训练实例在学习nbr参数时所起的作用越大。而ui从包含全体训练实例的全局空间u0开始,因此最终学习到的nbr既突出体现局部空间内训练实例分布特征,又在一定程度上体现全局空间内训练实例的分布特征。gcs寻找空间u1,ur的过程可以在分类器的训练阶段进行,因而gcs可以实现为非懒惰分类器。但lwnb只能实现为懒惰分类器。2.3 gcs-t决策树11是经典的分类算法之一,它从根节点开始不断划分空间,直到叶节点。决策树的每个节点n都代表一个子空间。从根节点到叶节点的每一条路径中,父节点代表的实例空间肯定包含子节点代表的实例空间,这与gcs算法对局部子空间u1,,ur的要求一致。使用决策树确定局部子空间的gcs算法叫gcs-t,它是非懒惰算法。gcs-t首先使用c4.5和全体训练实例建立一棵决策树。决策树的每个节点代表一个局部空间,在每个节点中存储到达该节点处的所有训练实例并离散化这些训练实例中的连续型属性。然后沿着决策树从根节点到叶节点的每一条路径,使用mdfe在逐渐缩小的局部空间上渐进地学习朴素贝叶斯参数并把学习到的朴素贝叶斯关联到该路径的叶节点上。分类时,测试实例沿着决策树的一条路径到达叶节点,然后使用叶节点上的朴素贝叶斯分类实例。gcs-t的伪码描述如下所示。程序实现时,gcs-t中的建树过程和学习朴素贝叶斯的过程可以同时进行。程序前algorithm: decision tree version of gcsinput: training dataset d; iteration number of dfe rn, pnuses c4.5 and training dataset d building a decision tree dt, each node of the decision tree maintains training data arriving to the node;discretize all training data maintained by dt;buildgcs-t (dt) build a naive bayes nb and initialize parameters of nb to uniform then use mdfe and training data maintained by root of dt to learn parameters of nb, iteration number of mdfe set to rn;for each soni:=the ith son node of the root of dtincrementallybuildnbbymdfe (soni, nb); incrementallybuildnbbymdfe(node, nb) if(node=null)return;elsebuild a naive bayes nbson and copy nbs parameters to initialize parameters of nbson, then use mdfe and training data maintained by node to learn parameters of nbson, iteration number of mdfe set to pn;for each soni:=the ith son node of node in dtincrementallybuildnbbymdfe (soni, nbson); 程序后虽然gcs-t和nbtree都使用决策树划分空间并在叶节点上关联朴素贝叶斯,但它们生长决策树和学习朴素贝叶斯的方法有很大不同。nbtree中决策树生长依赖于叶节点上朴素贝叶斯的分类正确率;而gcs-t中决策树的生长完全独立于叶节点上的朴素贝叶斯。gcs-t叶节点上的朴素贝叶斯使用全体训练实例学习参数,但不同子空间内训练实例对参数影响的大小不同;而nbtree叶节点上的朴素贝叶斯仅使用到达该叶节点的训练实例学习。3 实验与分析实验使用25个选自uci资源库12的数据集,包括了大部分不同领域的数据。表1列出每个数据集中的实例个数、类个数和属性个数等信息。算法gcs-t在weka13框架下实现,其中mdfe的迭代次数rn和pn设置为2(多次实验发现设置为2时算法泛化性能较好),划分空间的决策树使用weka中的j48,参数为默认设置。对于缺值数据,使用weka中的replacemissingvalues处理,并用weka中的discretize根据有监督的最小描述长度(minimum description length, mdl)原则请补充mdl的中文名称和英文全称。离散化连续型数据。gcs-t中的naive bayes使用拉普拉斯估计避免概率为零的情况。实验中将本文提出的算法gcs-t分别与算法naive bayes、bayesiannet、nbtree、lwnb、hnb、c4.5进行比较。nbtree、hnb(预先使用discretize离散化训练数据)、c4.5(j48)都使用weka中的实现,参数为默认设置。bayesiannet使用weka中的实现,父节点搜索算法选择k2,评分选择bayes,最大父节点个数设为2,其他为默认设置。naive bayes使用weka中的实现,选择离散化数据,其他参数为默认设置。lwnb使用weka中的分类器lwl,预先使用discretize离散化训练数据(与文献5中做法一致),基分类器选择naive bayes,近邻个数设为50(文献5将近邻个数设为50),其他参数为默认设置。表2列出算法gcs-t、naive bayes、c4.5(j48)、nbtree、bayesiannet、hnb在各个数据集上的平均泛化正确率及标准差在各个数据集上的平均泛化正确率(分类正确的实例个数/测试实例总个数100%)及标准差,平均泛化正确率和标准差是在每个数据集上做10次10折交叉验证(100次实验)得到的。表2的最后一行标明了在实验中所选25个数据集上与gcs-t相比,其他算法赢(泛化正确率显著高)、平、输(泛化正确率显著低)的个数。这里所说的显著使用置信水平为0.95的t测试度量。表2倒数第二行总结各个算法在25个数据集上的平均泛化正确率。总结表2中实验结果如下。gcs-t的泛化性能明显优于naive bayes(gcs-t赢19输1)、bayesiannet(gcs-t赢16输0)、nbtree(gcs-t赢14输2)、hnb(gcs-t赢14输3)、lwnb(gcs-t赢15输3)。gcs-t的泛化性能在一定程度上优于j48(gcs-t赢15输5)。gcs-t在25个数据集上的平均泛化正确率明显高于naive bayes(gcs-t高3.12%)、j48(gcs-t高1.78%)、bayesiannet(gcs-t高1.40%)。而gcs-t的平均泛化正确率略高于nbtree(gcs-t高1.20%)、hnb(gcs-t高1.04%)、lwnb(gcs-t高0.78%)。但lwnb是懒惰算法,分类速度随训练实例个数的增加而线性降低,而gcs-t不是懒惰算法,分类速度不受训练实例个数影响,它的分类速度比lwnb快得多。从上述实验结果看出:在实验中所有基于贝叶斯统计的分类器中,gcs-t的泛化正确率最高。在训练数据量比较小时,朴素贝叶斯能够很好地拟合训练数据集,且由于结构简单,它不容易出现过度拟合现象,因此在测试集上有较高的泛化正确率。但在训练数据量较大时,朴素贝叶斯在训练数据集上会出现拟合不足问题,这是因为朴素贝叶斯不能很好地体现训练数据的局部分布特征。而gcs-t克服了这个弱点,gcs-t沿着决策树从根节点到叶节点的每一条路径,使用mdfe在逐渐缩小的局部空间上渐进地学习朴素贝叶斯,这个过程保证最终学习到的朴素贝叶斯既能体现全体训练数据的分布特征又能很好地体现局部训练数据的分布特征,这是gcs-t成功的关键。表3给出了表2中各种算法在25此处为25个,而表3的表名中却有42个数据集,到底是多少?个数据集上的平均训练时间和测试时间,训练/测试时间使用weka中的usercpu_time_(training/testing)度量。可以看出,算法gcs-t的训练时间仅是决策树的6倍。gcs-t的测试时间基本上是lwnb的1/42,并且lwnb的测试时间随训练样本数量的增加而线性增长但gcs-t的测试时间不受训练样本数量影响。gcs-t中朴素贝叶斯的参数使用dfe学习,而本实验所用weka中实现的其他贝叶斯算法都使用fe学习参数。su10的实验表明,使用迭代4次的dfe学习参数能提高贝叶斯分类算法的泛化正确率。为了让实验更加公平,本文修改了weka,让本实验中用到的贝叶斯分类算法都使用迭代4次的dfe学习参数,进而得到了第二组实验结果,如表4所示。从表4中可看出,尽管使用dfe学习参数后多数算法的泛化性能都有所提高,但它们的平均泛化正确率依然低于本文中提出的算法gcs-t。表5给出了表4中各种算法在25个数据集上的平均训练时间和测试时间。4 结语本文提出算法gcs。对于一个测试实例itest,gcs在包含所有训练实例的全局空间u0中寻找子空间u1,,ur并且itesturur-1u1u0,在空间u0,ur所包含的训练实例上使用mdfe渐进地学习朴素贝叶斯参数。gcs可以实现为非懒惰版本,本文实现了gcs的非懒惰版本gcs-t,在训练阶段使用决策树寻找局部子空间,它的分类速度比懒惰算法lwnb快得多。本文实验结果显示,在大多数数据集上,gcs-t的泛化性能优于naive bayes、nbtree、bayesiannet、hnb、lwnb(无论它们使用判别或生成方法学习参数)以及c4.5。参考文献:1theodoridis s, koutroumbas k. pattern recognition m. 4th ed. maryland heights, mo: elsevier, 2009.2kohavi r. scaling up the accuracy of nave bayes classifiers: a decision-tree hybrid c/ proceedings of the second international conference on knowledge discovery and data mining. new york: acm press, 1996: 202-207.3friedman n, geiger d, goldszmidt m. bayesian network classifiers j. machine learning, 1997, 29(2/3): 131-163.4张连文,郭海鹏.贝叶斯网络引论m.北京:科学出版社,2006.5frank e, hall m, pfahringer b. locally weighted naive bayes c/ proceedings of the 19th conference in uncertainty in artificial intelligence. seattle: morgan kaufmann, 2003: 249-256.6jiang l, zhang h, cai z. a novel bayes model: hidden naive bayes j. ieee transactions on knowledge and data engineering, 2009, 21(10): 1361-1371.7kai m t jonathan r w, swee c t, et al. feature-subspace aggregating: ensembles for stable and unstable learners j. machine learning, 2011, 82(3): 375-397.8pernkop
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初一下册生物期中试卷及答案
- 2025至2030中国软骨症治疗行业项目调研及市场前景预测评估报告
- 华山医院神经内科护理进修
- 美的售后年终工作总结
- 2025至2030中国微创手术(MIS)设备行业项目调研及市场前景预测评估报告
- 2025至2030中国血栓前体蛋白行业调研及市场前景预测评估报告
- 离婚后子女户口迁移及父母监护权划分合同
- 生产运营分析部门工作总结
- 离婚协议书中的共同子女监护权共享与探望权协议
- 离婚房产分割及共同债权债务处理协议
- Politeness Principle第九课礼貌原则
- 婴幼儿心理学
- 医疗保障基金使用监督管理条例
- MOOC 成长中的音乐徜徉-浙江师范大学 中国大学慕课答案
- 妇产科学妇科病史及妇科检查
- 人工智能在语言学习中的应用
- 军港之夜混声合唱谱
- 保险杠喷涂工艺
- 鳃裂囊肿护理查房课件
- 能源托管服务投标方案(技术方案)
- JGT292-2010 洁净工作台标准
评论
0/150
提交评论