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

(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则表示属于第三类。
net = newff(minmax(input),[10 3] , { ‘logsig’ ‘logsig’ } , ‘traingdx’ ); minmax(input):设定输入特征的范围—获取4个输入信号( 存储 在f1 f2 f3 f4中)的最大值和最小值;
{ ‘logsig’ ‘logsig’ }:隐层和输出层的传递函数–这里隐层和输出层传递函数都为logsig(S形传输函数)
‘traingdx’:表示学习规则采用的学习方法,即学习训练函数为traingdx(梯度下降)
net.trainparam.show = 50 ;% 显示中间结果的周期
net.trainparam.epochs = 500 ;%最大迭代次数(学习次数)
net.trainparam.goal = 0.01;%神经网络训练的目标误差
net.trainParam.lr = 0.01 ;%学习速率
将原先创建的神经网络以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 |