matlab下的神经网络简单处理(毕业设计周报三)

第三次毕业设计任务书

 

1、周计划表

时间 计划任务 完成情况
3.17-3.24 了解matlab下的神经网络编程,尝试使用工具包完成简单的功能实现

 70%

3.24-3.31  对数据进行再次分析处理,根据输出结果筛选出有用的属性值,并对matlab做架构思考  
4.1-4.8 彻底实现输出实验结果,可能不是很美好的成果  

2、本周完成情况

实现训练数据的代码:

%读取训练数据
clear all;
load('train.correct.xlsx');
f1=xlsread('train.correct.xlsx','train.correct','A1:A494021');
f2=xlsread('train.correct.xlsx','train.correct','B1:B494021');
f3=xlsread('train.correct.xlsx','train.correct','C1:C494021');
f4=xlsread('train.correct.xlsx','train.correct','D1:D494021');
f5=xlsread('train.correct.xlsx','train.correct','E1:E494021');
f6=xlsread('train.correct.xlsx','train.correct','F1:F494021');
f7=xlsread('train.correct.xlsx','train.correct','G1:G494021');
f8=xlsread('train.correct.xlsx','train.correct','I1:I494021');
f9=xlsread('train.correct.xlsx','train.correct','J1:J494021');
f10=xlsread('train.correct.xlsx','train.correct','K1:K494021');
f11=xlsread('train.correct.xlsx','train.correct','L1:L494021');
class=xlsread('train.correct.xlsx','train.correct','AN1:AN494021');
%[m,n]=size(t);
%result=zeros(m,n);
%特征值归一化
[input,minI,maxI] = premnmx( [f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11]') ;
%[y1,pf]=mapminmax([f1,f2,f3,f4]');

%构造输出矩阵
s = length(class) ;
output = zeros( s , 23) ;
for i = 1 : s
output( i , class( i ) ) = 1 ;
end
%output=class;
[inputjg,minIj,maxIj] = premnmx( output') ;

%创建神经网络
net3 = newff( minmax(input) , [11 23] , { 'purelin','logsig' } , 'traingdx' ) ;

%设置训练参数
net3.trainparam.show = 50 ;
net3.trainparam.epochs = 500;
net3.trainparam.goal = 0.001;
net3.trainParam.lr = 0.001;

%开始训练
%net2 = train( net2, input , output' ) ;

%读取测试数据

t= xlsread('test.unlable.xlsx');
t1=t(2,1:11);
%t2=xlsread('atlanta.xls','sheet1','B1:B5');
%t3=xlsread('atlanta.xls','sheet1','C1:C5');
%t4=xlsread('atlanta.xls','sheet1','D1:D5');
%c=xlsread('atlanta.xls','sheet1','E1:E5');
%[inputjg1,minI1,maxI1] = premnmx([t1,t2,t3,t4,t4]') ;

%测试数据归一化m
testInput = tramnmx (t1' , minI, maxI ) ;
%仿真

Y = sim( net3, testInput );
[m,Index]=max(Y);
Index

 

保存训练后的三层神经网络结果net3,maxI, MINI可以做下面程序的运行使用

设置函数如下,进行数据测试并存入result数组中

function [ result ] = c( )
%UNTITLED4 此处显示有关此函数的摘要
% 此处显示详细说明
load('t.mat');
load('maxI.mat');
load('minI.mat');
load('net3.mat');
[m,n]=size(t);
result=zeros(m,1);
for i=1:10000
%for j=2:n
t1=t(i,1:40);
testInput = tramnmx (t1',maxI , maxI) ;
%仿真
Y = sim( net3, testInput );
[m,Index]=max(Y);
Index;
result(i,1)=Index;
end
end

遇到问题:在检验数据时发现要检验数据需要将结果保存在数字中,可能以为内数组太大不能接受,将想办法解决

               完成实验所需的代码量可能就1000行,不知道能不能把内部实现工具包的函数进行研究转化成自己的代码

参考:http://jingyan.baidu.com/article/09ea3ede3aa797c0aede39c1.html

咨询有过神经网络实践经验的学弟

 

posted @ 2017-03-23 20:09  随心随意随心就是我  阅读(544)  评论(1)    收藏  举报