博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matlab之BP神经网络分类与制图
阅读量:4454 次
发布时间:2019-06-07

本文共 1460 字,大约阅读时间需要 4 分钟。

clc

clear
%%数据导入
%data=importdata('A');  %A为数据格式,如cd.xlsx、cd.txt,其中cd为文件名,假设样本个数200,特征个数为30,200*31,第31列表示分类标签,这里分为0-3共4类
k=rand(1,200);         %生成样本个数的随机数,以200为例
[m,n]=sort(k);         %若k为二维矩阵,则sort(k)表示对每列进行升序排序,m为移动后矩阵,n为移动顺序。

%上两步的操作是为了生成随机数,之后按比例随机挑选样本;

%输入输出数据
input=data(:,1:30);
output=data(:,31);           %第21列为标签列
%随机抽取160个样本为训练样本,40个样本为预测样本
input_train=input(n(1:160),:)';  %行为样本列为特征点
label_train=output(n(1:160),:)';%类似于标签
input_test=input(n(161:200),:)';
label_test=output(n(161:200),:)';
%输入数据归一化处理
[inputn,inputps]=mapminmax(input_train);
%%BP网络训练
% %初始化网络结构
net=newff(inputn,label_train,13,{'tansig','purelin'});%隐含层节点数设置为13
net.trainParam.epochs=300;
net.trainParam.lr=0.1;
net.trainParam.goal=0.001;
%网络训练
net=train(net,inputn,label_train);
%%BP网络预测
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);
%net预测标签输出
y=sim(net,inputn_test);%y=sim(net,x);net表示已训练好的网络,x表示输入数据,y表示网络预测数据。表示用训练好的网络预测输出函数
%根据网络输出获得预测类别的种类
y(find(y<0.5))=0;
y(find(y>0.5&y<1.5))=1;
y(find(yt>1.5&y<2.5))=2;
y(find(y>2.5&y<3.5))=3
%制图_预测分类标签和实际分类标签对比图
figure(1)
plot(y,'og')
hold on
plot(label_test,'r*');
legend('预测标签','实际标签')
title('BP神经网络预测分类与实际类别比对','fontsize',12)
ylabel('类别标签','fontsize',12)
xlabel('样本数目','fontsize',12)
ylim([-0.5 3.5])
%精度评价
rightnumber=0;
for i=1:size(label_test,2)
    if BPoutput(i)==label_test(i)
        rightnumber=rightnumber+1;
    end
end
rightratio=rightnumber/size(label_test,2)*100;
sprintf('测试准确率=%0.2f',rightratio)

转载于:https://www.cnblogs.com/shyzh/p/8672755.html

你可能感兴趣的文章
好久没敲代码了,手有点生——一个小小的时钟
查看>>
运算符 AS和IS 的区别
查看>>
(转)详解C中volatile关键字
查看>>
easyui时的时间格式yyyy-MM-dd与yyyy-MM-ddd HH:mm:ss
查看>>
专题:动态内存分配----基础概念篇
查看>>
Codeforces Round #426 (Div. 2) (A B C)
查看>>
The Most Simple Introduction to Hypothesis Testing
查看>>
UVA10791
查看>>
P2664 树上游戏
查看>>
jQuery 停止动画
查看>>
Sharepoint Solution Gallery Active Solution时激活按钮灰色不可用的解决方法
查看>>
MyBatis Generator去掉生成的注解
查看>>
教你50招提升ASP.NET性能(二十二):利用.NET 4.5异步结构
查看>>
lua连续随机数
查看>>
checkstyle使用介绍
查看>>
history.js 一个无刷新就可改变浏览器栏地址的插件(不依赖jquery)
查看>>
会了这十种Python优雅的写法,让你工作效率翻十倍,一人顶十人用!
查看>>
二维码图片生成
查看>>
在做操作系统实验的一些疑问
查看>>
Log4J日志配置详解
查看>>