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、参考论文

matlab 神经网络 ANN 分类相关推荐

  1. matlab 神经网络ann用于分类方法

    matlab关于ann的分类方法讲解了一个例子,Fishr集上鸢尾花(Iris)的分类,学习了这个方法可以套用在个人项目上使用,万变不离其宗, 1.Fishr集上鸢尾花Iris数据集的分类 ①iris ...

  2. Python基于PyTorch实现BP神经网络ANN分类模型项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 在人工神经网络的发展历史上,感知机(Multilayer Per ...

  3. ANN神经网络入门——分类问题(MATLAB)

    写在前面 本篇博客的鸢尾花分类程序来源于博客http://www.cnblogs.com/heaad/archive/2011/03/07/1976443.html 在上述博客中,作者主要介绍了以下三 ...

  4. MATLAB实战系列(三十六)-MATLAB 离散Hopfield神经网络的分类——高校科研能力评价

    前言 离散型Hopfield神经网络不仅具有联想记忆的功能,还可以应用于解决分类问题. 文中涉及代码请参见 matlab神经网络源码集锦- 离散Hopfield神经网络的分类--高校科研能力评价 以下 ...

  5. ann matlab,人工神经网络ann及其matlab仿真.ppt

    人工神经网络ann及其matlab仿真 人工神经网络 的研究方法及应用刘 长 安2004. 12. 31 引 言 利用机器模仿人类的智能是长期以来人们认识自然.改造自然和认识自身的理想. 研究ANN目 ...

  6. Python实现BP神经网络ANN单隐层分类模型项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 BP(back propagation)神经网络是1986年由R ...

  7. 《MATLAB智能算法30个案例》:第27章 无导师学习神经网络的分类——矿井突水水源判别

    <MATLAB智能算法30个案例>:第27章 无导师学习神经网络的分类--矿井突水水源判别 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法3 ...

  8. 回归预测 | MATLAB实现ANN神经网络多输入单输出

    回归预测 | MATLAB实现ANN神经网络多输入单输出 目录 回归预测 | MATLAB实现ANN神经网络多输入单输出 预测效果 基本介绍 模型描述 程序设计 参考资料 致谢 预测效果 基本介绍 人 ...

  9. 《MATLAB智能算法30个案例》:第26章 有导师学习神经网络的分类——鸢尾花种类识别

    <MATLAB智能算法30个案例>:第26章 有导师学习神经网络的分类--鸢尾花种类识别 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30 ...

最新文章

  1. Vue父组件网络请求回数据后再给子组件传值demo示例
  2. 谈asp.net解决方案的项目生成时的输出路径
  3. 遗传算法就是创造力的本质
  4. FreeWheel基于Go的实践经验漫谈——GC是大坑(关键业务场景不用),web框架尚未统一,和c++性能相比难说...
  5. [ATC 17] StreamBox: 面向多核机器上的针对Records的无序到达的实时流处理系统
  6. CyclicBarrier(回环栅栏)
  7. Android用户界面程序设计示例
  8. 自制口袋妖怪_承诺和口袋妖怪-我如何学会异步思考
  9. 表格和表单的结合示例
  10. java 对象压缩_理解Java对象:要从内存布局及底层机制说起,话说....
  11. 一道经典JS题(关于this)
  12. Lucene学习入门——核心类API
  13. Array对象的三种属性实例
  14. 统计数字会撒谎-读书笔记
  15. 以太网交换机和普通交换机主要的8大区别介绍
  16. normalize.css v8.0.1中文版 - 官方最新
  17. 怎么用软碟通制作U启动和再生龙恢复LINUX系统及备份
  18. [转载] 华中科技大学学生违纪处分条例
  19. PCDATA和CDATA的区别究竟是什么呢?
  20. 追踪高频交易——华尔街猎狼者(上)

热门文章

  1. 用XDOC预览文档的理由:简单、实用、免费
  2. numpy实现图像融合
  3. java jce配置_BouncyCastle JCE 的安装配置及在java中的使用
  4. Tampermonkey油猴插件安装使用
  5. 关于Editable的学习
  6. Spring框架的介绍以及搭建
  7. 初识Node使用模板引擎实现Apach
  8. 玩转ChatGPT:论文翻译润色
  9. 易通文件夹锁免费版 v4.5.8.06
  10. android开启服务应用禁止被杀死,Android Service服务如何不被杀死