对朴素贝叶斯分类器的改进
2016-12-20李楚进付泽正
李楚进,付泽正
(华中科技大学 数学与统计学院,武汉 430074)
对朴素贝叶斯分类器的改进
李楚进,付泽正
(华中科技大学 数学与统计学院,武汉 430074)
分类是十分基础且很关键的数据分析技术,而基于贝叶斯理论的朴素贝叶斯分类技术是当前数据分析领域的一个研究热点。文章针对条件独立性假设提出了基于主成分分析的改进方法,以期能够充分体现朴素贝叶斯分类器在分类中的优势,实现改进分类效果的目的。
数据分析;朴素贝叶斯分类器;条件独立性;主成分分析
0 引言
随着信息时代生活中数据量的爆炸式增长,大数据已经融入我们生活的方方面面。在大数据环境下,对数据分析与处理要求的提升在理论和实际应用中正引起越来越多学者和专业人士的关注。不仅要关注数据的收集、整理,而且要有效地从大数据中学习知识、提升能力,并将其转化为现代社会可以利用的高效生产力。
在数据分析中,分类起着既基础又十分关键的作用。利用已知训练样本集生成需要的模型或函数,在所给类别已知的情况下,通过所获得的模型或函数将未知的待分类样本集通过判断分类给某个类别。比如,在网络技术中使用分类算法来判断一个帐号是否为非真实帐号等。而目前构造分类器的方法众多,常见的有贝叶斯网络、决策树、人工神经网络、支持向量机、遗传算法等。其中,基于贝叶斯理论的朴素贝叶斯分类模型由于计算效率高、精确度高,具有深刻的数学统计理论基础,而成为众多方法中十分流行的方法之一。
朴素贝叶斯分类器其分类性能在分类经典算法中属于较为高效的算法。然而其条件独立性假设在很多情形下并不成立,这使得实际分类效果受到很大的影响,考虑借助其他算法改进其性能效率的讨论就显得很有意义。本文针对独立性假设前提提出了基于主成分分析的改进方法,以期能够充分利用朴素贝叶斯分类器在分类中的优势,将主成分分析和朴素贝叶斯模型结合,达到改进分类效果的目的。
1 模型描述与主成分分析
1.1 朴素贝叶斯分类模型(NBC)
朴素贝叶斯分类算法的分类思路是:对于一个未知的样本,它在某个类别出现的前提下,出现的概率最大。则该样本在概率意义下可以认为属于条件概率最大的样本。其定义为:
(1)设x={a1,a2…am}为一个测试样本,a为x的属性变量。
(2)类别集合C={y1,y2…yn}。
(3)计算P(y1|x),P(y2|x)…P(yn|x)。
(4)如果 P(yk|x)=max{P(y1|x),P(y2|x)…P(yn|x)}则xÎyk。
其中第(3)步条件概率的计算方法如下:
①处理训练样本集,对已知类别的样本集进行统计分析。各个类别的属性变量的条件概率值的获取可以通过训练集统计处理得到。即:
②如果每个属性都是条件独立的,则依据贝叶斯定理有:
通常这里假设各特征属性是条件独立的,从而有:
1.2 条件独立性假设
朴素贝叶斯分类模型的条件独立性假设使其在实际分类应用时受到较大限制,研究者们通常致力于通过改进算法,减弱这种独立性假设带来的影响。然而,分类模型的复杂化并不一定带来更好的结果。研究表明,如果模型过于复杂,容易造成过分拟合的情形。其次,完全无限制的贝叶斯分类模型会带来时间复杂度和空间复杂度的提高。因此,对朴素贝叶斯分类模型的改进研究,大都是考虑具有较宽松条件的贝叶斯网络分类器的构建。常见有以下若干处理技术:属性分组技术、属性删除技术、局部朴素贝叶斯分类器、概率调整技术、建立依赖关系技术等。
1.3 主成分分析
主成分分析通过降维以达到分析处理的目的,其主要原理是从数据集中提取主成分因子,每一个因子都要与之前的主成分正交,所有的主成分加一起可以解释所有数据的变异性,即代表了数据的全部信息。通常在降维时,前面的主成分可以解释大部分的变异信息,从而可以选取能解释大部分变异信息的几个靠前的主成分因子。为了降低数据的维度,可以取前q个主成分而忽略剩余的p-q个主成分。选择q的常用方法有如下几种:
(1)Kaiser准则:保留解释变异信息比例大于平均变异信息比例的主成分因子。(2)前几个主成分因子已经可以解释大部分的变异信息。(3)有时需要考虑主成分因子在实际应用中的解释性,以实际为准。
(4)使用崖底碎石图绘出特征值与其顺序的关系,选取较为明显的一个拐点作为界限。
主成分分析的步骤:
假设X1…Xp为p个随机变量,他们的协方差矩阵为∑,其对角线上的值表示Xk的方差(k=1,…p)。主成分分析的步骤如下;
(1)寻找第一个主成分。
选择系数向量a1=(a11…a1p)T,使得:
②线性组合 a11X1+…+a1pXp的方差最大。令Y1=a11X1+…+a1pXp,它被称为第一主成分。
(2)寻找第i个主成分(i=2…p)。
选择系数向量ai=(ai1…aip)T使得:
②对任意的1≤j
③线性组合 ai1X1+…+aipXp的方差最大。令Yi=ai1X1+…+aipXp,它被称为第i个主成分。
2 对朴素贝叶斯分类器的改进
2.1 基本方案
通过属性选择技术对原数据集的属性进行选择,使近似满足条件独立性假设,然后在新的属性数据集上构建朴素贝叶斯分类器。主成分分析以方差贡献为依据,对数据集进行主成分分析,构造新的属性,新的属性数据集既能代表原始数据所能提供的大部分信息,又能消除属性间的依赖性。利用主成分分析提取独立属性的性质,达到改进分类效果的目的。
PCA-NBC算法的步骤:
步骤1:对数据集进行检验。原数据集中不应包含类型变量,对类型变量可以进行LOGISTIC变换转化为数量变量。
步骤2:对数据集应用主成分分析的方法构建包含新属性的数据集,新属性满足条件独立性假设。
步骤3:基于新属性数据集构建朴素贝叶斯分类器。步骤4:对训练集进行模型训练,得到参数列表。
步骤5:利用含参数的的朴素贝叶斯分类器对未知类别的样本进行分类。
2.2 实验数据
为了对算法进行数据仿真实验,验证改进算法的分类效率,选取了机器学习数据库(http://archive.ics.uci.edu/datasets)的6个数据集利用R软件进行实验。
数据集wine记录了对意大利某地区出产的178种葡萄酒进行化学分析所得的酒精度、苹果酸、灰度、灰分碱度等13种指标,这些葡萄酒分别酿自三种不同品种的葡萄,数据集中的V1变量表示各种葡萄酒所使用的葡萄的品种。获取方式为:http://archive.ics.uci.edu/ml/datasets/ wine。其他各数据集的获取地址如下:
http://archive.ics.uci.edu/datasets/iris
http://archive.ics.uci.edu/datasets/glass
http://archive.ics.uci.edu/datasets/adult
http://archive.ics.uci.edu/datasets/bank
其中,PimaIndiansDiabetes2是一个北美印第安人糖尿病数据集,包含了9个变量,768个样本。因变量即是对糖尿病的判断类别,为一个二元类别变量,其他因变量均为数值变量。
2.3 实验步骤
以PimaIndiansDiabetes2数据集即北美印第安人糖尿病数据集为例,做仿真实验。实验步骤如下:
(1)加载数据集,并对缺失值使用袋装方法进行插补,得到完整可使用的数据集。
(2)对未进行主成分分析处理的数据集利用朴素贝叶斯分类算法进行分类,得到准确率和混淆矩阵等结果。
(3)对数据集进行主成分分析,并构建一个新的属性数据集。
(4)对新的属性数据集再应用程序,得到改进后的朴素贝叶斯分类算法的预测准确率和混淆矩阵结果。
(5)验证新数据集的属性相关性,从理论上对朴素贝叶斯分类算法的改进进行解释。
2.4 实验结果分析
(1)对插补后的数据集进行朴素贝叶斯分类,得到的准确率和混淆矩阵如图1所示:
图1 总体分类精度和Kappa系数
表1 相关系数
混淆矩阵:
Confusion Matrix and Statistics
Reference
Prediction neg pos
neg 414 102
pos 86 166
Accuracy:0.7552
95%CI:(0.7232,0.7852)
No Information Rate:0.651
P-Value[Acc>NIR]:3.033e-10
Kappa:0.4537
Mcnemar's Test P-Value:0.274
可以看出,对原始数据集PimaIndiansDiabetes2应用朴素贝叶斯分类模型,768个样本中有580个正确分类,分类正确率为75.52%。
(2)对经过主成分分析后的数据集进行朴素贝叶斯分类,得到的准确率如图2所示:
图2 总体分类精度和Kappa系数
混淆矩阵:
Confusion Matrix and Statistics
Reference
Prediction neg pos
neg 435 118
pos 65 150
Accuracy:0.7617
95%CI:(0.73,0.7914)
No Information Rate:0.651
P-Value[Acc>NIR]:2.156e-11
Kappa:0.4504
Mcnemar's Test P-Value:0.0001211
可以看出,分类准确率为76.17%,经过主成分分析对属性数据集进行处理后,朴素贝叶斯分类器的分类效率得到提高。
(3)从理论上来看,对新属性的数据集进行相关系数矩阵分析,得到的结果如表1所示,从中可见新数据集的属性间是满足相互独立条件假设的,因而有更好的分类效果。
(4)对各个数据集的测试得到的预测精确度的比较(如表2所示)
表2 分类结果汇总 (单位:%)
从以上结果来看,对数据进行基于主成分分析构建的新的数据集进行朴素贝叶斯分类,得到的分类预测准确度在总体上有比较明显的改善。
3 结论
本文提出基于主成分分析的朴素贝叶斯分类模型,并通过数据集的仿真实验结果显示PCA-NBC模型的分类效果优于朴素贝叶斯分类模型。其实,关于贝叶斯分类,在算法与应用等方面都还有很多有意义的问题。比如:对于类型变量的处理,以使其能更好地适应主成分分析以及如何处理有确实数据的情形等。
[1]Han J,Kambr M.Data Mining:Concepts and Techniques[M].San Framcisco,CA:Morgan Kaufmann Publishers.2001.
[2]Langley P,Sage S.Induction of Selective Bayesian Classifiers:In Pro⁃ceedings of the Tenth Conference on Uncertainty in Artificial Intelli⁃gence[C].San Framcisco,CA:Morgan Kaufmann Publishers,1994.
[3]姜卯生.数据挖掘中基于贝叶斯技术的分类问题的研究[D].合肥:合肥工业大学,2004.
[4]王斌会.多元统计分析及R语言建模[M].广州:暨南大学出版社, 2011.
[5]王双成.贝叶斯网络学习、推理与应用[M].上海:立信会计出版社,2010.
[6]王星等.大数据分析:方法与应用[M].北京:清华大学出版社, 2013.
[7]朱晓丹.朴素贝叶斯分类模型的改进研究[D].厦门:厦门大学, 2014.
(责任编辑/易永生)
0212
A
1002-6487(2016)21-0009-03
华中科技大学教改基金资助项目(2013070;2015068);华中科技大学自主创新基金资助项目(2013QN171)
李楚进(1977—),男,湖北襄阳人,博士,讲师,研究方向:随机动力系统与数理统计。