实验四:神经网络和集成学习
姓 名: 何志杰
学 号: 30920078102653
指导老师: 刘昆宏
实验地点: 201
完成时间: 2010.11.8
一. 实验目的
使用 weka练习神经网络的应用,并了解其各个主要参数的作用。
使用 weka练习回归预测,学习分析回归预测的结果。
使用集成学习系统练习预测,体会集成学习系统对预测性能的提升。
二. 实验内容
1)使用神经网络进行分类识别:使用MLP识别glass数据集,进行参数的选择设定,分析不同网络拓扑结构对识别的影响。(隐层的设定)
2)预测:分别使用线形回归模型,多层感知器对Forest Fires数据进行预测,比较预测获得的结果的不同并进行分析;使用bagging算法进行预测,分别选择线形回归模型和多层感知器作为基学习器,在单个学习器相同参数设置的情况下比较使用单个学习器与使用集成学习系统获得的结果有什么不同,并分析原因;(设置基学习器个数为10)
3)实验数据
本实验分类采用的数据集为glass数据集,其中数据集的说明请看相关文档glass.names;请按原始数据的分类方式分别将数据分别按glass.names文件说明,标成两类和多类分别进行识别,看结果有什么不同,分析类别的差别对识别的结果与分类器选择的影响;
预测采用的数据集为Forest Fires,包括13个属性,最后一列为预测属性,属性的说明见forestfires_names.txt
三.实验步骤以及结果
在实验中我都采用use training set的方法来测试
1)实验内容一:使用神经网络进行分类识别。
所用的数据是glass数据集,我通过修改glass.cvs.arff文件中@relation glass部分来使得数据在weka中打开显示的属性名为有意义的单词而不是数据。如图:
下面我将进行选取.names描述中的分为7类的属性即第11个属性来进行分类识别。
1选取MultilayerPerceptron的分类器,并进行属性设置,我将分析隐层即hidenLayers的值不同时对实验的影响(attribs=11,classes=6)数据中属性sevenClass的值只有6种故classes值为6
hidenLayers的值 | 运行时间 |
a=(attribs+classes)/2=8.5 | 〉16分钟 由于时间太长 所以停止了 |
1 | 72.35秒产生6个类节点 |
2 | 116.48秒产生6个类节点 |
2分析validationThreshold参数对识别的影响
vT=30 | 该参数为20 | 该参数为10 | |
buildModelTime | 74.21 | 90.56 | 77.79 |
Mean absolute error | 0.2439 | 0.2439 | 0.2439 |
RootMeanSquaredError | 0.3505 | 0.3505 | 0.3505 |
RelativeAbsoluteError | 98.9484% | 98.9484% | 98.9484% |
RootRelativeSquaredError | 100.0225% | 100.0225% | 100.0225% |
3分析leaningRate参数的值的影响
值为0.3 | 值为0.5 | 值为1 | |
buildModelTime | 75.33 | 81.37 | 74.08 |
Mean absolute error | 0.2439 | 0.2388 | 0.2418 |
RootMeanSquaredError | 0.3505 | 0.3518 | 0.3511 |
RelativeAbsoluteError | 98.9484% | 96.8767% | 98.0965% |
RootRelativeSquaredError | 100.0225% | 100.3984% | 100.1972% |
correctlyClassifiedIntances | 76 | 70 | 70 |
以下是来分析当选取分为两类的属性:
1分析momentum参数的不同值的影响
值为0.2 | 值为0.5 | 值为1 | |
buildModelTime | 91.48 | 91.13 | 87.8 |
Mean absolute error | 0.3422 | 0.3338 | 0.3114 |
RootMeanSquaredError | 0.4279 | 0.4297 | 0.4373 |
RelativeAbsoluteError | 93.9218% | 91.6294% | 85.477% |
RootRelativeSquaredError | 100.4357% | 100.8537% | 102.51% |
correctlyClassifiedIntances | 163 | 163 | 163 |
2)实验内容二:
首先先对数据集.txt文件做处理转为.cvs格式(按老师实验课上所讲方法)
(一)以下将使用线形回归模型,对ForestFires数据进行预测
1.Open file,找到处理后的数据集forestfires.cvs的路径并打开
2.选取属性area
3选择LinearRegression的分类方法
4test options选择use training set.
5,得到结果
以下是用多层感知器来对数据进行预测
过程和上面类似只是在第3步选择MultilayerPerceptron分类器
分析比较两种方法得到的结果
线形回归 | 多层感知器 | |
Correlation coefficient | 0.17 | 0.4859 |
Mean absolute error | 19.5834 | 18.5614 |
RootMean squared error | 62.4398 | 56.0049 |
Relative absolute error | 105.4753% | 99.9709% |
rootRelativesquared error | 98.1847% | 88.0661% |
(2) 以下将使用bagging算法进行预测且选用线形回归模型作为基学习器
1.Open file, 找到处理后的数据集forestfires.cvs的路径并打开
2.选取area属性,作为预测属性
3.选取bagging分类器,并设置属性(基学习器设为线形回归,bagSizePercent设为10以得到10个基学习器)
4.运行
5.得到结果
(三)以下是bagging算法进行预测且选用多层感知器模型作为基学习器
过程和上面过程大致相同在第3步设置参数时选取多层感知器作为
基学习器
得到结果
比较分析单个学习器与集成学习系统获得的结果
线形回归 | Bagging-线形回归 | |
Correlation coefficient | 0.17 | 0.0829 |
Mean absolute error | 19.5834 | 19.8618 |
RootMean squared error | 62.4398 | .008 |
Relative absolute error | 105.4753% | 106.9746% |
rootRelativesquared error | 98.1847% | 100.6506% |
Bagging-多层感知器 | 多层感知器 | |
Correlation coefficient | 0.1733 | 0.4859 |
Mean absolute error | 25.6618 | 18.5614 |
RootMean squared error | .2834 | 56.0049 |
Relative absolute error | 138.2134% | 99.9709% |
rootRelativesquared error | 101.0838% | 88.0661% |
学习器
四.总结
熟练使用weka练习神经网络的应用,了解了其各个主要参数的作用。
熟练使用 weka练习回归预测,学习分析回归预测的结果。
使用集成学习系统练习预测,体会到集成学习系统对预测性能的提升。