用matlab实现用Bp神经网络对iris数据集进行分类(以及影响分类性能的参数条件) 您所在的位置:网站首页 鸢尾花课件 用matlab实现用Bp神经网络对iris数据集进行分类(以及影响分类性能的参数条件)

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

2023-12-02 21:54| 来源: 网络整理| 查看: 265

数据集已上传,结尾链接下载即可!!! 一、实验内容

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’ ) ; 这里训练就结束了,以下开始测试。

6.开始测试

(1)读取测试数据 [t1, t2, t3, t4,



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有