weka平台的若干分类算法的实现与比较
摘 要在高速发展的信息化时代下,数据呈指数级增长趋势。数据是一种极大的财富,但是也会成为隐患,所以人们开始思考如何应用机器高效地分析数据,为社会创造财富。在这样的背景下,数据的各种分类算法应运而生。比较常见的算法有:Back Propagation(反向传播网络)、Naive Bayes(朴素贝叶斯网络)、SVM(支持向量机)、Random Forest(随机森林)等。每种分类算法都有自己的特点和它的适用场合,比如:BP的特点是泛化性和容错性好,自学习和自适应能力强,高度的非线性映射能力适合于解决内部机制复杂的问题;Naive Bayes的特点是鲁棒性高,健壮性也好,可以适用于有缺失值的数据;SVM的特点是泛化性和通用性强,可以适用于小样本数据和非线性的问题;Random Forest的特点是并行处理能力强,能够调整参数,可以适用于不平衡或者有大量缺省值的分类集。因此本文对以上各种算法进行了研究,详细地分析了算法的基本步骤和重要参数,引入了多种UCI实验数据展开实验对比,记录并分析了多种交叉验证测试方法下的实验结果,初步总结了算法的适用规律。
目 录
第一章 绪论 1
1.1研究的背景与意义 1
1.2发展现状和未来方向 1
1.3研究内容的组织结构 2
第二章 开发环境和语言的简单介绍 3
2.1Weka平台 3
2.2Eclipse 3
2.3Java语言 3
2.4标准测试数据集UCI 4
第三章 算法的介绍和实现 5
3.1Back Propagation算法 5
3.1.1Back Propagation算法的原理 5
3.1.2Back Propagation算法的步骤 5
3.1.3Back Propagation算法的关键代码 6
3.2Naive Bayes算法 7
3.2.1Naive Bayes算法的原理 7
3.2.2Naive Bayes算法的的步骤 7
3.2.3Naive Bayes算法的关键代码 8
3.3SVM算法 9
3.3.1SVM
*好棒文|www.hbsrm.com +Q: &351916072&
算法的原理 9
3.3.2 SVM算法的的步骤 10
3.3.3SVM算法的关键代码 10
3.4Random Forest算法 12
3.4.1Random Forest算法的原理 12
3.4.2Random Forest算法的的步骤 12
3.4.3Random Forest算法的关键代码 12
第四章 算法的比较 14
4.1数据集的介绍 14
4.2实验结果比较 15
4.2.1Back Propagation算法的实验结果 15
4.2.2Naive Bayes算法的实验结果 16
4.2.3SVM算法的实验结果 16
4.2.4Random Forest算法的实验结果 17
4.3实验结果分析 18
4.3.1算法的准确率比较 18
4.3.2算法的建模时间比较 18
结束语 19
致 谢 20
参考文献 21
第一章 绪论
1.1研究的背景与意义
随着计算机技术、通讯技术和网络技术的快速发展,数据和信息都以电子格式存储起来。这些日益增长的数据都是非常有价值的资源,但是给人们的感觉却像站在数据的迷宫里,找不到出去的路。因为:信息量太大,不能有效的加以利用;信息的存在方式五花八门,不能进行统一的处理;不能保证所有的信息资源都是真实有效的,也有可能是虚假伪造的。面对数量极其庞大的数据,人们就开始思考如何从这些数据中找到潜在的、有用的知识,从而高效地利用这些数据,这使得数据挖掘技术越来越受到人们的关注,在这样的背景下,数据的各种分类算法应运而生。
不同的分类算法会直接影响数据挖掘的准确性以及挖掘的效率,所以,当面对大规模的数据分类时,一定要选择最适合的一种分类算法。有关分类的问题,国内外都针对不同的领域研究出了很多种不同的算法,比较常见的有以下一些算法:BP神经网络、Naive Bayes、SVM、Random Forest等等。每一种分类算法都有自己的特点,不管是哪一种算法,都不是全能的。有的时候,同一种数据会有多种不同的分类算法与之对应,那么,如何结合数据自身的特点选择最合适的算法,更加有效地对数据进行分类十分重要的。因此针对不同的数据用不同的分类算法进行全面深入的比较,是一个有广泛应用前景的研究方向,它可以为实际应用中选择分类算法给出指导意见。
1.2发展现状和未来方向
资料显示,最近这几年,国内的学者们主要都比较关注分类算法的改进,绝大多数都热衷于提出新的算法,关于数据分类算法的主要研究内容大部分集中在以下两个方面:
(1)根据各种不同算法的优缺点,将算法组合之后直接运用到实际的案例中去。
(2)对各种分类方法自身的性能不断进行改进,使得算法近一步完善,更好的起到分类的作用。
在国外,对分类算法的比较研究也是热点:比如在1994年的时候,Micllie博士就在《Machine learning,Neural,and Statistical Classification》[1]中对三种分类技术进行了比较,分别是统计分类、机器学习以及神经网络。文献[2]对当前比较流行的贝叶斯、神经网络以及决策树三种分类算法进行了详细的分析,总结了优缺点和适用情境,但没有运用实际的例子来比较这三种算法。文献[3]针对数据集运用各种分类算法进行比较,但是只用了少量的数据集,比较的算法也只有三种。所以本文的重点在于用常用的标准测试数据集UCI中的8种数据集,对四种不同的分类算法进行验证和比较,分析各种算法的优缺点。
1.3研究内容的组织结构
根据研究内容,以下是论文的章节安排:
第一章:主要研究背景和意义,谈了发展的现状和未来的方向,并且介绍了研究内容的组织结构。
:主要介绍本文所用到的开发环境和语言,可以更好得理解本文。
:研究了本文所用的四种算法,分别是Back Propagation算法,Naive Bayes,SVM算法和Random Forest算法。介绍了这些算法的的基本原理和算法步骤。
第四章:是本文的重点所在,首先分别介绍了验证所要用到的8个数据集,然后将这8个数据集分别应用到四个分类算法中,分别选择折数,得出准确率和建模时间,最后根据准确率以及建模时间来比较四种分类算法。
最后是论文的结束语,说明论文的主旨以及未来的研究打算。
第二章 开发环境和语言的简单介绍
2.1Weka平台
Weka是新西兰怀卡托大学开发的平台,Weka的全称是怀卡托智能分析系统。因为开发者是新西兰人,并且有一种当前仅存活于新西兰岛的鸟叫Weka,所以将这个平台命名为Weka。Weka是用Java来编写的,只有在GNU通用公众证书的条件下才能够发布。它几乎可以在任何的操作平台上运行。有些平台已经测试过了,比如:Linux,Windows和Macintosh操作系统,而且还包括个人数字化助手。Weka提供了统一的界面,将预处理和后处理方法结合起来,将各种不同的算法应用于任何数据集,然后评估不同的算法得出的结果。
目 录
第一章 绪论 1
1.1研究的背景与意义 1
1.2发展现状和未来方向 1
1.3研究内容的组织结构 2
第二章 开发环境和语言的简单介绍 3
2.1Weka平台 3
2.2Eclipse 3
2.3Java语言 3
2.4标准测试数据集UCI 4
第三章 算法的介绍和实现 5
3.1Back Propagation算法 5
3.1.1Back Propagation算法的原理 5
3.1.2Back Propagation算法的步骤 5
3.1.3Back Propagation算法的关键代码 6
3.2Naive Bayes算法 7
3.2.1Naive Bayes算法的原理 7
3.2.2Naive Bayes算法的的步骤 7
3.2.3Naive Bayes算法的关键代码 8
3.3SVM算法 9
3.3.1SVM
*好棒文|www.hbsrm.com +Q: &351916072&
算法的原理 9
3.3.2 SVM算法的的步骤 10
3.3.3SVM算法的关键代码 10
3.4Random Forest算法 12
3.4.1Random Forest算法的原理 12
3.4.2Random Forest算法的的步骤 12
3.4.3Random Forest算法的关键代码 12
第四章 算法的比较 14
4.1数据集的介绍 14
4.2实验结果比较 15
4.2.1Back Propagation算法的实验结果 15
4.2.2Naive Bayes算法的实验结果 16
4.2.3SVM算法的实验结果 16
4.2.4Random Forest算法的实验结果 17
4.3实验结果分析 18
4.3.1算法的准确率比较 18
4.3.2算法的建模时间比较 18
结束语 19
致 谢 20
参考文献 21
第一章 绪论
1.1研究的背景与意义
随着计算机技术、通讯技术和网络技术的快速发展,数据和信息都以电子格式存储起来。这些日益增长的数据都是非常有价值的资源,但是给人们的感觉却像站在数据的迷宫里,找不到出去的路。因为:信息量太大,不能有效的加以利用;信息的存在方式五花八门,不能进行统一的处理;不能保证所有的信息资源都是真实有效的,也有可能是虚假伪造的。面对数量极其庞大的数据,人们就开始思考如何从这些数据中找到潜在的、有用的知识,从而高效地利用这些数据,这使得数据挖掘技术越来越受到人们的关注,在这样的背景下,数据的各种分类算法应运而生。
不同的分类算法会直接影响数据挖掘的准确性以及挖掘的效率,所以,当面对大规模的数据分类时,一定要选择最适合的一种分类算法。有关分类的问题,国内外都针对不同的领域研究出了很多种不同的算法,比较常见的有以下一些算法:BP神经网络、Naive Bayes、SVM、Random Forest等等。每一种分类算法都有自己的特点,不管是哪一种算法,都不是全能的。有的时候,同一种数据会有多种不同的分类算法与之对应,那么,如何结合数据自身的特点选择最合适的算法,更加有效地对数据进行分类十分重要的。因此针对不同的数据用不同的分类算法进行全面深入的比较,是一个有广泛应用前景的研究方向,它可以为实际应用中选择分类算法给出指导意见。
1.2发展现状和未来方向
资料显示,最近这几年,国内的学者们主要都比较关注分类算法的改进,绝大多数都热衷于提出新的算法,关于数据分类算法的主要研究内容大部分集中在以下两个方面:
(1)根据各种不同算法的优缺点,将算法组合之后直接运用到实际的案例中去。
(2)对各种分类方法自身的性能不断进行改进,使得算法近一步完善,更好的起到分类的作用。
在国外,对分类算法的比较研究也是热点:比如在1994年的时候,Micllie博士就在《Machine learning,Neural,and Statistical Classification》[1]中对三种分类技术进行了比较,分别是统计分类、机器学习以及神经网络。文献[2]对当前比较流行的贝叶斯、神经网络以及决策树三种分类算法进行了详细的分析,总结了优缺点和适用情境,但没有运用实际的例子来比较这三种算法。文献[3]针对数据集运用各种分类算法进行比较,但是只用了少量的数据集,比较的算法也只有三种。所以本文的重点在于用常用的标准测试数据集UCI中的8种数据集,对四种不同的分类算法进行验证和比较,分析各种算法的优缺点。
1.3研究内容的组织结构
根据研究内容,以下是论文的章节安排:
第一章:主要研究背景和意义,谈了发展的现状和未来的方向,并且介绍了研究内容的组织结构。
:主要介绍本文所用到的开发环境和语言,可以更好得理解本文。
:研究了本文所用的四种算法,分别是Back Propagation算法,Naive Bayes,SVM算法和Random Forest算法。介绍了这些算法的的基本原理和算法步骤。
第四章:是本文的重点所在,首先分别介绍了验证所要用到的8个数据集,然后将这8个数据集分别应用到四个分类算法中,分别选择折数,得出准确率和建模时间,最后根据准确率以及建模时间来比较四种分类算法。
最后是论文的结束语,说明论文的主旨以及未来的研究打算。
第二章 开发环境和语言的简单介绍
2.1Weka平台
Weka是新西兰怀卡托大学开发的平台,Weka的全称是怀卡托智能分析系统。因为开发者是新西兰人,并且有一种当前仅存活于新西兰岛的鸟叫Weka,所以将这个平台命名为Weka。Weka是用Java来编写的,只有在GNU通用公众证书的条件下才能够发布。它几乎可以在任何的操作平台上运行。有些平台已经测试过了,比如:Linux,Windows和Macintosh操作系统,而且还包括个人数字化助手。Weka提供了统一的界面,将预处理和后处理方法结合起来,将各种不同的算法应用于任何数据集,然后评估不同的算法得出的结果。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/2133.html