clc;
clear;
trainDataSet=xlsread('E:\2016.9--2017.1(研二)\实验\BP\一拖股份.xls');
testDataSet=xlsread('E:\2016.9--2017.1(研二)\实验\BP\test.xlsx');
% shoupan = trainDataSet(:,6);
% volume = trainDataSet(:,7);
% kaipan = trainDataSet(:,3);
% time = trainDataSet(:,1);
% High = trainDataSet(:,4);
% Low = trainDataSet(:,5);
%%trainDataSet=xlsread('C:\Users\PLUSTAR\Desktop\训练数据\trainDataSet.xlsx');
%样本集合
trainData=trainDataSet(:,1:7);
testData=testDataSet(:,1:7);
%标签
trainLabel=trainDataSet(:,8);
testLabel=testDataSet(:,8);
%计算训练集中每一类别的样本数目
countArray=numOfSamples(trainLabel);
%%注:matlab中一般以一列为一个样本
%特征值归一化
[trainInput,minI,maxI]=premnmx(trainData');
%构造输出矩阵
s=length(trainLabel);
output=zeros(s,5);
for i=1:s
output(i,trainLabel(i))=1;
end
%创建神经网络
%min(trainInput)这个参数的意思不明白
net=newff(minmax(trainInput),[10 5],{'logsig' 'purelin'},'traingdx');
%设置训练参数
net.trainparam.show=50;
net.trainparam.epochs=500;
net.trainparam.goal=0.01;
net.trainparam.lr=0.01;
%开始训练(训练后得到新的)
testInput=tramnmx(testData',minI,maxI);
net=train(net,trainInput,output');
%仿真
Y=sim(net,testInput);
%统计正确率
[s1,s2]=size(Y);
hitNum=0;
for i=1:s2
[m,Index]=max(Y(:,i));
if(Index==testLabel(i))
hitNum=hitNum+1;
end
end
sprintf('%3.3f%%',100*hitNum/s2);