当前位置:网站首页>MLP神经网络,GRNN神经网络,SVM神经网络以及深度学习神经网络对比识别人体健康非健康数据
MLP神经网络,GRNN神经网络,SVM神经网络以及深度学习神经网络对比识别人体健康非健康数据
2022-07-31 22:36:00 【fpga和matlab】
目录
一、理论基础
MLP多层感知器神经网络(Multi-layer perceptron neural networks),其结构由输入层、一个或多个隐藏层、输出层构成,其结构框图如下图所示:
GRNN广义回归神经网络的网络结构如图6所示,整个网络包括四层神经元:第一层为GRNN神经网络的输入层、第二层为GRNN神经网络的模式层、第三层为GRNN神经网络的求和层,第四层为GRNN神经网络的输出层。
SVM支持向量机方法Vapnik等人根据统计相关理论提出的一种新的机器学习方法,其基本思想是在线性可分的情况下,在原空间寻找两类样本的最优分类超平面。在线性不可分的情况下,加入了松弛变量进行分析,通过使用非线性映射将低维输入空间的样本映射到高维属性空间使其变为线性情况,从而使得在高维属性空间采用线性算法对样本的非线性进行分析成为可能,并在该特征空间中寻找最优分类超平面。SVM通过使用结构风险最小化原理在属性空间构建最优分类超平面,使得分类器得到全局最优,并在整个样本空间的期望风险以某个概率满足一定上界。
目前,几乎所有的神经网络技术都是基于一种浅层结构的网络构架,基于浅层结构的学习模型其主要特点是其结构简单,且中间的学习过程不可观察。单这种技术,其最大的缺陷在于在处理涉及自然信号如人类语言对话,图像和视觉等复杂的现实应用时,无法获得较好的学习效果。而人类对于这种复杂信息的处理,则通过深度构架来提取其内部结构,并通过丰富的感官输入建立内部的表现形式。因此,研究一种深层结构的神经网络构架将有助于复杂信号的学习训练和测试。而深度学习神经网络就是基于这种背景下研究出来的,深度神经网络,主要包括基于受限玻尔兹曼机的网络结构和基于卷积运算的网络结构,Deep Learning神经网络的整体结构如下图所示:
二、案例背景
1.问题描述
特征选择是机器学习领域的一个难题,本质上是一个组合优化问题,求解组合优化问题最直接的方法就是搜索,理论上可以通过穷举法来搜索所有可能的特征组合,选择使得评价标准最优的特征子集作为最后的输出,但是通过穷举法的运算量将随着特征数量的增加而呈指数级增加。因此,需要通过特定的特征集合搜索策略进行特征选择,其基本步骤如下框图所示:
2.思路流程
机器学习是计算机智能算法领域的一个重要组成部分。机器学习的研究是根据生理学、认知科学等对人类学习机理的了解,建立人类学习过程的计算模型或认识模型,发展各种学习理论和学习方法,研究通用的学习算法并进行理论上的分析,建立面向任务的具有特定应用的学习系统。对四种常用的机器学习算法,分为是MLP神经网络,GRNN神经网络,SVM神经网络以及深度学习神经网络进行识别性能的对比,而使用的特征数据为一组健康人群和非健康人群的身理特征数据,针对这些特征数据,本文同时提出了一种特征选择方法,从大量的特征数据中获得最为有效的特征数据作为健康人群和非健康人群的特征识别数据。最后通过MATLAB对四种算法进行测试,仿真结果表明,通过特征选择之后,基于深度神经网络的识别算法可以达到96%以上的识别率。
三、部分MATLAB程序
MLP
for i = 1:k
[ Traindata,Trainaim,Testdata,Testaim] = func_crossvalidation(data_random, indices,i,row,col);
Testdata = [Testdata;Testdata(30:end,:)];
Testaim = [Testaim;Testaim(30:end,:)];
Traindata = Traindata(1:30,:);
Trainaim = Trainaim(1:30,:);
%%
%特征不选择
[Ftrain,Ftest] = func_feature_selection0(Traindata,Testdata);
%%
%MLP识别
[Preaim,Preaim2,Rate] = func_machine_Learing_method(Ftrain,Trainaim,Ftest,Testaim);
%ROC&PR
% draw_prc(2*Testaim'-1, 2*Preaim2'-1,2);
end
GRNN
for i = 1:k
[ Traindata,Trainaim,Testdata,Testaim] = func_crossvalidation(data_random, indices,i,row,col);
Testdata = [Testdata;Testdata(30:end,:)];
Testaim = [Testaim;Testaim(30:end,:)];
Traindata = Traindata(1:30,:);
Trainaim = Trainaim(1:30,:);
%%
%特征不选择
[Ftrain,Ftest] = func_feature_selection0(Traindata,Testdata);
%%
%MLP识别
[Preaim,Preaim2,Rate] = func_machine_Learing_method(Ftrain,Trainaim,Ftest,Testaim);
%ROC&PR
% draw_prc(2*Testaim'-1, 2*Preaim2'-1,2);
end
SVM
for i = 1:k
[ Traindata,Trainaim,Testdata,Testaim] = func_crossvalidation(data_random, indices,i,row,col);
Testdata = [Testdata;Testdata(30:end,:)];
Testaim = [Testaim;Testaim(30:end,:)];
Traindata = Traindata(1:30,:);
Trainaim = Trainaim(1:30,:);
%%
%特征不选择
[Ftrain,Ftest] = func_feature_selection0(Traindata,Testdata);
%%
%MLP识别
[Preaim,Preaim2,Rate] = func_machine_Learing_method(Ftrain,Trainaim,Ftest,Testaim);
%ROC&PR
% draw_prc(2*Testaim'-1, 2*Preaim2'-1,2);
end
Deep learning
for i = 1:k
[ Traindata,Trainaim,Testdata,Testaim] = func_crossvalidation(data_random, indices,i,row,col);
Testdata = [Testdata;Testdata(30:end,:)];
Testaim = [Testaim;Testaim(30:end,:)];
Traindata = Traindata(1:30,:);
Trainaim = Trainaim(1:30,:);
%%
%特征不选择
[Ftrain,Ftest] = func_feature_selection0(Traindata,Testdata);
%%
%MLP识别
[Preaim,Preaim2,Rate] = func_machine_Learing_method(Ftrain,Trainaim,Ftest,Testaim);
%ROC&PR
% draw_prc(2*Testaim'-1, 2*Preaim2'-1,2);
end
四、仿真结论分析
MLP
对比图ROC图和PR图可知,通过特征筛选处理之后,其具有更优的识别正确率。最后对比对比本文所介绍的Forward和Backward特征选择仿真,其特征识别率分别为93.6709%和69.6203%
GRNN
对比ROC图和PR图可知,通过特征筛选处理之后,其具有更优的识别正确率。最后对比对比本文所介绍的Forward和Backward特征选择仿真,其特征识别率分别为89.8734%和74.6835%
SVM
对比ROC图和PR图可知,通过特征筛选处理之后,其具有更优的识别正确率。最后对比对比本文所介绍的Forward和Backward特征选择仿真,其特征识别率分别为88.6076%和71.3241%
深度学习:
ROC图和PR图可知,通过特征筛选处理之后,其具有更优的识别正确率。
通过上述四种算法的最终结果对比可知,其最终的识别率分别为:
通过对四种算法的对比可知,在特征数据中,第3个特征,第23个特征,第19个特征和第64个特征具有较强的区分能力,通过这四种类型的特征,可以获得较高的识别率。此外,从性能上看,深度学习神经网络性能优于GRNN神经网络性能,优于MLP神经网络性能,优于SVM神经网络的性能。
五、参考文献
[01]Langley P, Simon H A. Applications of machine learning and rule induction. Communications of the ACM, 1995, 38(11): 55–64.
[02]Aha D W, Kibler D, Albert M K. Instance based learning algorithms. Machine Learning, 1991, 6:37–66. A05-42
边栏推荐
- "APIO2010" Patrol Problem Solution
- AI automatic code writing plugin Copilot (co-pilot)
- [Intensive reading of the paper] iNeRF
- #yyds干货盘点# 面试必刷TOP101:链表中环的入口结点
- 信息学奥赛一本通 1941:【07NOIP普及组】Hanoi双塔问题 | 洛谷 P1096 [NOIP2007 普及组] Hanoi 双塔问题
- Bionic caterpillar robot source code
- Chapter Six
- Flink_CDC construction and simple use
- Golang - from entry to abandonment
- 程序进程和线程(线程的并发与并行)以及线程的基本创建和使用
猜你喜欢
Summary of the classic drawing method of histogram
TestCafeSummary
ThreadLocal
The difference between adding or not adding the ref keyword when a variable of reference type is used as a parameter in a method call in C#
支付模块实现
How to debug TestCafe
Collation of knowledge points in Ningbo University NBU IT project management final exam
Unity - by casting and cloning method dynamic control under various UGUI create and display
Interview assault 69: TCP reliable?Why is that?
Quick Start Tutorial for flyway
随机推荐
如何导入 Golang 外部包并使用它?
20. Support vector machine - knowledge of mathematical principles
如何减少软件设计和实现之间鸿沟
景区手绘地图的绘制流程
"The core concept of" image classification and target detection in the positive and negative samples and understanding architecture
"SDOI2016" Journey Problem Solution
BM5 合并k个已排序的链表
Daily practice——Randomly generate an integer between 1-100 and see how many times you can guess.Requirements: The number of guesses cannot exceed 7 times, and after each guess, it will prompt "bigger"
【ACM】2022.7.31训练赛
Transfer Learning - Domain Adaptation
什么是客户画像管理?
What is customer profile management?
linux view redis version command (linux view mysql version number)
基于RT1052 Aworks nanopb string 类型固定长度使用方式(二十七)
Niuke.com brush questions (1)
JS basic exercises
高等代数_证明_任何矩阵都相似于一个上三角矩阵
Unity-LineRenderer显示一条线
UserAgent resolution
Several methods for deleting specified elements in Golang slices