模式识别关于男女生身高和体重的神经网络算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模式识别实验报告(二)

学院:

专业:

学号:

姓名:XXXX

教师:

目录

1实验目的 (1)

2实验内容 (1)

3实验平台 (1)

4实验过程与结果分析 (1)

4.1基于BP神经网络的分类器设计 .. 1 4.2基于SVM的分类器设计 (4)

4.3基于决策树的分类器设计 (7)

4.4三种分类器对比 (8)

5.总结 (8)

1)1实验目的

通过实际编程操作,实现对课堂上所学习的BP神经网络、SVM支持向量机和决策树这三种方法的应用,加深理解,同时锻炼自己的动手实践能力。

2)2实验内容

本次实验提供的样本数据有149个,每个数据提取5个特征,即身高、体重、是否喜欢数学、是否喜欢文学及是否喜欢运动,分别将样本数据用于对BP神经网络分类器、SVM支持向量机和决策树训练,用测试数据测试分类器的效果,采用交叉验证的方式实现对于性能指标的评判。具体要求如下:

BP神经网络--自行编写代码完成后向传播算法,采用交叉验证的方式实现对于性能指标的评判(包含SE,SP,ACC和AUC,AUC的计算可以基于平台的软件包);

SVM支持向量机--采用平台提供的软件包进行分类器的设计以及测试,尝试不同的核函数设计分类器,采用交叉验证的方式实现对于性能指标的评判;

决策树--采用平台提供的软件包进行分类器的设计以及测试,采用交叉验证的方式实现对于性能指标的评判(包含SE,SP,ACC和AUC,AUC的计算基于平台的软件包)。

3)3实验平台

专业研究方向为图像处理,用的较多的编程语言为C++,因此此次程序编写用的平台是VisualStudio及opencv,其中的BP神经网络为自己独立编写, SVM 支持向量机和决策树通过调用Opencv3.0库中相应的库函数并进行相应的配置进行实现。将Excel中的119个数据作为样本数据,其余30个作为分类器性能的测试数据。

4)4实验过程与结果分析

4.1基于BP神经网络的分类器设计

BP神经网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。其学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。

在独自设计的BP神经中,激励函数采用sigmod函数,输入层节点个数为5,

一个隐层并且节点数为5,输出节点数为1个,通过读取excel中相应的特征数据,进行训练,再用测试数据进行测试。如图4-1为所设计的BP类。

图4-1 BP类的设计源码

如图4-1,其中重要的两个函数便是神经网络的训练train和识别函数recognize,具体的源码如图4-2,图4-3,图4-4。其中训练函数包括了前向传播以及后向传播的权值修正,而识别函数只包括了前向传播后输出计算结果。

图4-2 BP分类器的训练函数一

图4-3 BP分类器的训练函数二

图4-4 BP分类器的识别函数

输入119个样本数据进行训练后,输入30个测试数据进行测试,测试结果如图4-5所示。通过数据可以看出共30个测试数据,其中有两个正样本被分为

负样本,即男生分类成了女生。其中ROC曲线(受试者工作特性曲线)如图4-6,可见该曲线的AUC值为0.96表示分类器的效果是较好的,从敏感性(SE)、特异性(SP)和准确率(ACC)也可以看出分类器的效果还是不错的。

图4-5 BP测试结果

图4-6 BP测试结果的ROC曲线

4.2基于SVM的分类器设计

SVM即支持向量机。SVM的主要思想可以概括为两点:第一是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能。通常在线性不可分的情况下,通过核函数进行非线性映射达到线性可分的效果。其中核函数的类型包括线型、多项式型和RBF高斯核等,采用不同的核函数可能造成的分类效果有所区别,在本实验中分别利用三种核函数对测试数据进行测试。SVM调用Opencv3.0中的库函数来实现,Opencv3.0所集成的SVM为libsvm。源码如图4-7。

图4-7 SVM调用源码

由图4-7可以看到,首先对SVM进行了参数设置,接着调用训练函数,接着进行测试数据测试,分别采用高斯核、线型核和SIGMOD核测试结果如图4-8到4-10,所对应的ROC曲线如图4-11到4-13所示。

图4-8 高斯核分类结果

图4-9 线型核分类结果

图4-10 SIGMOD核分类结果

图4-11 高斯核分类ROC曲线

图4-12 线型核分类ROC曲线

图4-13 SIGMOD核分类ROC曲线

由上面的图4-8到图4-13可以看出,高斯核出现2个分类错误,线性核出现3个分类错误,而sigmod核未出现分类错误,再结合ROC曲线及AUC值,可以看出对于测试数据,sigmod核函数具有最高的分类效果,可以实现完全的正确分类,而高斯核其次,线性核性能稍微差一点,出现误差的类型都是将男生错分为了女生。

4.3基于决策树的分类器设计

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。在本次实验中,调用Opencv3.0中的决策树类来进行数据的训练与分类。调用源码如图4-14。

图4-14 决策树调用源码

在图4-14中,首先初始化决策树,设置了决策树的最大深度等初始化信息,接着进行样本数据训练,最后进行预测数据预测,其结果如图4-15和图4-16。

图4-15 决策树测试结果图4-16 决策树测试结果ROC曲线

相关文档
最新文档