当前位置:网站首页>matlab 神经网络 ANN 分类
matlab 神经网络 ANN 分类
2022-08-09 18:55:00 【studyer_domi】
1、内容简介
略
500-可以交流、咨询、答疑
2、内容说明
clear
clc
close all
%% import and deal data
filename = "DAY 1-DAY28 AVERAGE DATA SETS----A.B.C -split by 28 × 6 classification.xlsx";
datatrain = xlsread(filename, "Sheet1");
datatest = xlsread(filename, "Sheet2");
datavalidation = xlsread(filename, "Sheet3");
Xtrain = datatrain(:,1:4)';
% Xtrain(2,:) = 100*Xtrain(2,:);
Ytrain = datatrain(:,5)';
[~,nber] = size(Xtrain);
order = randperm(nber);
XTrain1 = Xtrain(:,order);
YTrain1 = Ytrain(:,order);
XValidation = datavalidation(:,1:4)';
% XValidation(2,:) = 100*XValidation(2,:);
YValidation = datavalidation(:,5)';
[~,nber] = size(XValidation);
order = randperm(nber);
XValidation1 = XValidation(:,order);
YValidation1 = YValidation(:,order);
Xtest = datatest(:,1:4)';
% Xtest(2,:) = 100*Xtest(2,:);
Ytest = datatest(:,5)';
[~,nber] = size(Xtest);
order = randperm(nber);
Xtest1 = Xtest(:,order);
Ytest1 = Ytest(:,order);
XTrain = [XTrain1 XValidation1 Xtest1];
YTrain = [YTrain1 YValidation1 Ytest1];
% [p1,minp,maxp,t1,mint,maxt]=premnmx(XTrain,YTrain);
% load net.mat
% accuary(net, XTrain, YTrain, minp, maxp, mint,maxt)
% accuary(net, XValidation, YValidation, minp, maxp, mint,maxt)
% accuary(net, Xtest, Ytest, minp, maxp, mint,maxt)
%% 训练
%数据做归一化
% [p1,minp,maxp,t1,mint,maxt]=premnmx(XTrain,output');
[p1,minp,maxp,t1,mint,maxt]=premnmx(XTrain,YTrain);
%创建网络
% logsig:对数S形转移函数,单极性;tansig: 双极性S形转移函数;purelin:线性函数
% traingdx :梯度下降自适应学习率训练函数,traingdm,trainlm, trainscg 这些是权值的学习算法
% traingdm是带动量的梯度下降法,trainlm是指L-M优化算法,trainscg是指量化共轭梯度法
% 网络结构:三个隐含层、且神经元数分别为5、12的前向BP网络,1个output
% net=newff(minmax(p1),[6, 15, 1],{'tansig', 'tansig','purelin'},'trainlm');
net=newff(minmax(p1),[12, 24, 32, 24, 1],{'tansig', 'tansig', 'tansig', 'tansig', 'purelin'},'trainlm');
% net=newff(minmax(p1),[5, 12, 3],{'tansig', 'tansig','purelin'},'trainlm');
%设置训练次数
net.trainParam.epochs = 600;
%设置收敛误差
net.trainParam.goal=0.0001;
%设置学习率
net.trainParam.lr = 0.03 ;
%设置动量因子,避免局部最优和过拟合
net.trainParam.mc=0.9;
%最小确认失败次数
net.trainParam.max_fail=30;
%训练网络
[net,tr]=train(net,p1,t1);
%%
fuse_matrix_train = accuary(net, XTrain, YTrain, minp, maxp, mint,maxt);
fuse_matrix_Validation = accuary(net, XValidation, YValidation, minp, maxp, mint,maxt);
fuse_matrix_test = accuary(net, Xtest, Ytest, minp, maxp, mint,maxt);
%%
figure
imagesc(fuse_matrix_train)
set(gca,'xtick',1:3)
set(gca,'xticklabel',{'1 ','2','3'},'XTickLabelRotation',45)
set(gca,'ytick',1:3)
set(gca,'yticklabel',{'1 ','2','3'})
set(gca,'FontSize',14,'Fontname', 'Times New Roman');
colorbar
title ("train data")
xlabel('truth')
ylabel("predict")
[m,n] = size(fuse_matrix_train);
for i = 1:m
for j = 1:n
x = i;
y = j;
text(x,y,num2str(fuse_matrix_train(i,j)))
end
end
%
figure
imagesc(fuse_matrix_Validation)
set(gca,'xtick',1:3)
set(gca,'xticklabel',{'1 ','2','3'},'XTickLabelRotation',45)
set(gca,'ytick',1:3)
set(gca,'yticklabel',{'1 ','2','3'})
set(gca,'FontSize',14,'Fontname', 'Times New Roman');
colorbar
title ("Validation data")
xlabel('truth')
ylabel("predict")
[m,n] = size(fuse_matrix_Validation);
for i = 1:m
for j = 1:n
x = i;
y = j;
text(x,y,num2str(fuse_matrix_Validation(i,j)))
end
end
%
figure
imagesc(fuse_matrix_test)
set(gca,'xtick',1:3)
set(gca,'xticklabel',{'1 ','2','3'},'XTickLabelRotation',45)
set(gca,'ytick',1:3)
set(gca,'yticklabel',{'1 ','2','3'})
set(gca,'FontSize',14,'Fontname', 'Times New Roman');
colorbar
title ("test data")
xlabel('truth')
ylabel("predict")
[m,n] = size(fuse_matrix_test);
for i = 1:m
for j = 1:n
x = i;
y = j;
text(x,y,num2str(fuse_matrix_test(i,j)))
end
end
3、仿真分析



4、参考论文
略
边栏推荐
猜你喜欢

leetcode 二叉树的公共近祖先

大健康产业商业供应链管理系统数字化提升产业链运作效率推动供应链标准化建设

leetcode 二叉树的分层遍历1
![[Free column] Xposed plug-in development for Android security [from scratch] tutorial](/img/7b/a036ac664c7e27ed7d87e7ee18c05d.png)
[Free column] Xposed plug-in development for Android security [from scratch] tutorial

39. 组合总和 && 40. 组合总和2 && 216. 组合总和3

hdu 2094 产生冠军(STL map || 拓扑 || STL set)

mysql duplicate data group multiple latest records

使用Mock技术模拟数据

2022深圳(软考高级)信息系统项目管理师认证报名

mysql 重复数据 分组 多条最新的记录
随机推荐
Oracle 字段自增
2022深圳(软考高级)信息系统项目管理师认证报名
面试官:MySQL 中 update 更新,数据与原数据相同时会执行吗?大部分人答不上来!
Samsung's flagship discount is 1,800, Apple's discount is over 1,000, and the domestic flagship is only reduced by 500 to send beggars
PCL学习之滤波Filtering
数学建模——模拟退火
[免费专栏] Android安全之Android应用的汉化功能(修改so中的字符串内容)
看完这波 Android 面试题;助你斩获心中 offer
competed中访问ref为undefined
『百日百题 · 基础篇』备战面试,坚持刷题 第五话——循环语句(2)!
MYSQL物理存储文件的页和INNOBUF的页是否有大小区别?
MYSQL记录、自用
leetcode 503.下一个更大元素II 单调栈
中英文说明书丨Abbkine细胞迁移分析试剂盒
Laravel之队列「建议收藏」
leetcode 二叉树的分层遍历1
解决执行Command报错executable file not found in $PATH
超多AI开发者等你来玩转,一起燃动昇腾AI创享日南京站!
工大科雅深交所上市:市值45亿 齐承英家族是大股东
队列题目:用队列实现栈