首页 > 分享 > 用matlab实现用Bp神经网络对iris数据集进行分类(以及影响分类性能的参数条件)

用matlab实现用Bp神经网络对iris数据集进行分类(以及影响分类性能的参数条件)

数据集已上传,结尾链接 下载 即可!!!

一、 实验 内容

Iris鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性,分别对应花萼长度,花萼宽度,花瓣长度,花瓣宽度。
本次实验目的是用Bp神经网络对iris数据集进行分类,并进行分析。

二、实验过程

1.将数据集加载到工作区:load iris.dat;

在这里插入图片描述

2.数据预处理

(1)将原始iris数据集随机抽取118行作为训练数据集。再在这118行之外抽取32行(即剩余的32行)作为测试数据集。然后分别保存在trainData1.txt和testData1.txt中。
A1=randsample(150,118,false) ;
trainData1=iris(A1,:);
A2=randsample(150,32,false) ;
testData1=iris(A2,:);
save(‘trainData1.txt’,‘trainData1’,’-ascii’),
save(‘testData1.txt’,‘testData1’,’-ascii’),
在这里插入图片描述
在这里插入图片描述
(2)将 训练 数据每行相同格式的数据按语法读取150次,然后得到每列。
f1 f2 f3 f4是四个特征值,class是类别。
[f1,f2,f3,f4,class] = textread(‘trainData1.txt’ , ‘%f%f%f%f%f’,150);
(3)特征值归一化
把输入的4个属性矩阵归一化到[-1,1],并保存到input矩阵中。
即下式为归一化公式:
在这里插入图片描述
[input,minI,maxI] = premnmx( [f1 , f2 , f3 , f4 ]’)
在这里插入图片描述
(4)构造输出矩阵
s = length( class) ; %得到类别矩阵长度:118
Output =zeros(s,3); %生成s行3列的全零阵:预先分配 内存 空间大小效率更高
for i = 1 : s
output( i , class( i ) ) = 1 ;
end
在这里插入图片描述
output矩阵即为输出矩阵
例第一个样本即第一行:0 1 0 则表示属于第二类,而第二个样本即第二行: 1 0 0 则表示它属于第一类。
而 0 0 1则表示属于第三类。

3.创建神经网络

net = newff(minmax(input),[10 3] , { ‘logsig’ ‘logsig’ } , ‘traingdx’ ); minmax(input):设定输入特征的范围—获取4个输入信号( 存储 在f1 f2 f3 f4中)的最大值和最小值;
{ ‘logsig’ ‘logsig’ }:隐层和输出层的传递函数–这里隐层和输出层传递函数都为logsig(S形传输函数)
‘traingdx’:表示学习规则采用的学习方法,即学习训练函数为traingdx(梯度下降)

4.设置训练参数

net.trainparam.show = 50 ;% 显示中间结果的周期
net.trainparam.epochs = 500 ;%最大迭代次数(学习次数)
net.trainparam.goal = 0.01;%神经网络训练的目标误差
net.trainParam.lr = 0.01 ;%学习速率

5.开始训练

将原先创建的神经网络以input为输入,output为目标函数的基础上训练epochs次即500次。
net = train( net, input , output

相关知识

基于BP神经网络对鸢尾花的分类的研究
用BP神经网络分类鸢尾花可视化数据
BP神经网络鸢尾花红酒数据分类分析与源码实现
利用神经网络对鸢尾花数据集分类
基于BP神经网络对鸢尾花数据集分类
RBF神经网络对iris鸢尾花数据集进行分类识别
基于BP神经网络的分类
对鸢尾花数据进行分类的思路
基于机器学习的鸢尾花数据集的三分类算法的实现 C++
神经网络分类鸢尾花数据与可视化展示

网址: 用matlab实现用Bp神经网络对iris数据集进行分类(以及影响分类性能的参数条件) https://m.huajiangbk.com/newsview2599861.html

所属分类:花卉
上一篇: 使用卷积深度神经网络和PyTor
下一篇: 用PyTorch和MobileV