-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathloadtrain.m
executable file
·191 lines (157 loc) · 6.3 KB
/
loadtrain.m
1
%=========================================================================fp=fopen('train.csv','r');data=textscan(fp,'%n%n%D%n%n%n%n%q%q','delimiter', ',', 'headerLines', 1 );fclose(fp);f1=data{1};f2=data{2};f3=datenum(data{3});f4=data{4};f5=data{5};f6=data{6};f7=data{7};fnum=length(data{7});f8=zeros(fnum,1);f9=zeros(fnum,1);for i=1:fnum% if(0~=data{8}{i}),f8(i)=1;end% if(0~=data{9}{i}),f9(i)=1;end if(strcmp(data{8}{i},'0')) f8(i)=0; elseif(strcmp(data{8}{i},'a')) f8(i)=1; elseif(strcmp(data{8}{i},'b')) f8(i)=2; elseif(strcmp(data{8}{i},'c')) f8(i)=3; else f8(i)=4; end if(strcmp(data{9}{i},'0')) f9(i)=0; else f9(i)=1; endendmaxf1=max(f1);minf3=min(f3);maxf3=max(f3);map2=zeros(maxf1,maxf3-minf3+1);map4=zeros(maxf1,maxf3-minf3+1);map5=zeros(maxf1,maxf3-minf3+1);map6=zeros(maxf1,maxf3-minf3+1);map7=zeros(maxf1,maxf3-minf3+1);map8=zeros(maxf1,maxf3-minf3+1);map9=zeros(maxf1,maxf3-minf3+1);for i=1:fnum map2(f1(i),f3(i)-minf3+1)=f2(i);%week map4(f1(i),f3(i)-minf3+1)=f4(i);%sales map5(f1(i),f3(i)-minf3+1)=f5(i);%customers map6(f1(i),f3(i)-minf3+1)=f6(i);%open map7(f1(i),f3(i)-minf3+1)=f7(i);%promo map8(f1(i),f3(i)-minf3+1)=f8(i);%holi1 map9(f1(i),f3(i)-minf3+1)=f9(i);%hoki2 endfigure;imagesc(map2);figure;imagesc(map4);figure;imagesc(map5);figure;imagesc(map6);figure;imagesc(map7);figure;imagesc(map8);figure;imagesc(map9);%=========================================================================%map datamap29=map2; map29(:,:,2)=map4; map29(:,:,3)=map5; map29(:,:,4)=map6;map29(:,:,5)=map7; map29(:,:,6)=map8; map29(:,:,7)=map9;save('map29.mat','map29');%=========================================================================%averagemap4a=mean(map4');save('map4a.mat','map4a');%=========================================================================%SV Regression 1st trial: Training line by lineaddpath('./libsvm-3.20/matlab');%test at row1 (=store1) feature%cross validation%X=[map29(1,:,1)' map29(1,:,4)' map29(1,:,5)' map29(1,:,6)' map29(1,:,7)']; %dWeek,open, promo, holi1,holi2%y=map29(1,:,2)'; %sales%X=[map29(1,500:942,1)' map29(1,500:942,4)' map29(1,500:942,5)' map29(1,500:942,6)' map29(1,500:942,7)']; %dWeek,open, promo, holi1,holi2%y=map29(1,500:942,2)'; %sales%X=[map29(1,800:942,1)' map29(1,800:942,4)' map29(1,800:942,5)' map29(1,800:942,6)' map29(1,800:942,7)']; %dWeek,open, promo, holi1,holi2%y=map29(1,800:942,2)'; %sales%range=[200:300 550:650];%range=[200:300 550:650 850:942];range=[1:942];%range=[500:942];%range=[1:500];%X=[map29(1,range,1)' map29(1,range,4)' map29(1,range,5)' map29(1,range,6)' map29(1,range,7)']; %dWeek,open, promo, holi1,holi2%X=[map29(1,range,1)' map29(1,range,4)' map29(1,range,5)'];mean1=mean(map29(:,range,1))'; mean4=mean(map29(:,range,4))'; mean5=mean(map29(:,range,5))';mean6=mean(map29(:,range,6))'; mean7=mean(map29(:,range,7))';%var1=var(map29(:,range,1))'; var4=var(map29(:,range,4))'; var5=var(map29(:,range,5))';X=[map29(1,range,1)' map29(1,range,4)' map29(1,range,5)' map29(1,range,6)' map29(1,range,7)' ... mean6 mean7];... % mean1 mean4 mean5 mean6 mean7];... % var1 var4 var5]; %dWeek,open, promo, holi1,holi2y=map29(1,range,2)'; %sales%svmtrain(y, X, '-v 3 -s 3 -t 2 -c 1'); %Cross validation (Epsilon-SVM) nSV=550,0.85 svmtrain(y, X, '-v 3 -s 4 -t 2 -c 1000'); %Cros Validation (nu-SVM) nSV=330, 0.85 bettermodel = svmtrain(y, X, '-s 4 -t 2 -c 1000'); %Cros Validation[y_hat, Acc, projection] = svmpredict(y, X, model);%temp=1:length(map29(1,:,2));%figure;plot(temp,map29(1,:,2), temp,projection);%temp=1:length(map29(1,500:942,2));%figure;plot(temp,map29(1,500:942,2), temp,projection);%temp=1:length(map29(1,800:942,2));%figure;plot(temp,map29(1,800:942,2), temp,projection);temp=1:length(map29(1,range,2));figure;plot(temp,map29(1,range,2), temp,projection);%generate all modelsmodelStock=cell(size(map29,1),1); % stacking all model in each linefor i=1:size(map29,1)% X=[map29(i,:,1)' map29(i,:,4)' map29(i,:,5)' map29(i,:,6)' map29(i,:,7)']; %dWeek,open, promo, holi1,holi2% y=map29(i,:,2)'; %sales% X=[map29(i,500:942,1)' map29(i,500:942,4)' map29(i,500:942,5)' map29(i,500:942,6)' map29(i,500:942,7)']; %dWeek,open, promo, holi1,holi2% y=map29(i,500:942,2)'; %sales% X=[map29(i,800:942,1)' map29(i,800:942,4)' map29(i,800:942,5)' map29(i,800:942,6)' map29(i,800:942,7)']; %dWeek,open, promo, holi1,holi2% y=map29(i,800:942,2)'; %sales% X=[map29(i,range,1)' map29(i,range,4)' map29(i,range,5)' map29(i,range,6)' map29(i,range,7)']; %dWeek,open, promo, holi1,holi2% X=[map29(i,range,1)' map29(i,range,4)' map29(i,range,5)']; %dWeek,open, promo, holi1,holi2 X=[map29(i,range,1)' map29(i,range,4)' map29(i,range,5)' map29(i,range,6)' map29(i,range,7)' ... mean6 mean7]; % mean1 mean4 mean5 mean6 mean7];% var1 var4 var5]; y=map29(i,range,2)'; %sales model = svmtrain(y, X, '-s 4 -t 2 -c 1000'); %Cros Validation modelStock{i}=model; fprintf('%d\n',i);end%save model data%save('modelStock.mat','modelStock');%save('modelStock2.mat','modelStock');%save('modelStock800942_2.mat','modelStock');%save('modelStock_season.mat','modelStock');%save('modelStock42.mat','modelStock'); %+meansave('modelStock50.mat','modelStock'); %+mean+var%=========================================================================%SV Regression 2nd trial: Training all lines at once%{addpath('./libsvm-3.20/matlab');X=[f1 f2 f6 f7 f8 f9]; %y=f4; %salessvmtrain(y, X, '-v 3 -s 3 -t 2 -c 1'); %Cross validation (Epsilon-SVM) nSV=550,0.85 svmtrain(y, X, '-v 3 -s 4 -t 2 -c 1000'); %Cros Validation (nu-SVM) nSV=330, 0.85 bettermodel = svmtrain(y, X, '-s 4 -t 2 -c 1000'); %Cros Validation[y_hat, Acc, projection] = svmpredict(y, X, model);temp=1:length(map29(1,:,2));figure;plot(temp,map29(1,:,2), temp,projection);%}%{%=========================================================================[B,dev,stats] = mnrfit(map2(1,:),map4(1,:));% (x,y)%[b,bint,r,rint,stats] = regress(y,X)X=[map4(1,:)' map6(1,:)' map7(1,:)' map8(1,:)' map9(1,:)'];y=map2(1,:)';[b,bint,r,rint,stats] = regress(y,X);mdl = nlinfit(map2(1,:),map4(1,:),@hougen,0)p=polyfit(map2(1,:),map4(1,:),2);%(x,y)%}