rowDist= repmat(1,1,308)
xcal = mat2cell(xcal,rowDist)
rowDist= repmat(1,1,102)
xval = mat2cell(xval,rowDist)
rowDist= repmat(1,1,101)
xdata_validata = mat2cell(xdata_validata,rowDist)
filterSize =5;
numFilters = 30;
numFeatures = size(xcal{1},1);
layers = [ ...
sequenceInputLayer(numFeatures)
convolution1dLayer(filterSize,numFilters,Padding="causal")
reluLayer
layerNormalizationLayer
convolution1dLayer(filterSize,2*numFilters,Padding="causal")
reluLayer
layerNormalizationLayer
globalAveragePooling1dLayer
fullyConnectedLayer(4)
softmaxLayer
classificationLayer];
options = trainingOptions("adam", ...
MaxEpochs=60, ...
InitialLearnRate=0.01, ...
SequencePaddingDirection="left", Plots="training-progress", ...
Verbose=0);
miniBatchSize = 27;
net = trainNetwork(xcal, categorical(ycal), layers, options);
ycal_test = classify(net,xcal,SequencePaddingDirection="left");
acc1 = mean(ycal == double(ycal_test))
yval_test = classify(net,xval,SequencePaddingDirection="left");
acc2 = mean(yval == double(yval_test))
y_validata = classify(net,xdata_validata,SequencePaddingDirection="left");
acc3 = mean(ydata_validata == double(y_validata))
%%%%预测集
con = confusionmat(yval, double(yval_test));
% confu(:,abc)=con(:);
accuracy3(abc,1) = acc1;
accuracy3(abc,2) = con(1,1)/length(yval_zhengchang);
accuracy3(abc,3) = con(2,2)/length(yval_qingwei);
accuracy3(abc,4) = con(3,3)/length(yval_zhongdu);
accuracy3(abc,5) = con(4,4)/length(yval_yanzhong);
accuracy3(abc,6) = acc2;
% accuracy3(abc,7) = w;
% accuracy3(abc,8) = b;
%%%验证
con_valate = confusionmat(ydata_validata,double(y_validata));
accuracy3(abc,7) = acc3;
accuracy3(abc,8) = con_valate(1,1)/length(ydata_zhengchang_validate);
accuracy3(abc,9) = con_valate(2,2)/length(ydata_qingwei_validata);
accuracy3(abc,10) = con_valate(3,3)/length(ydata_zhongdu_validata);
accuracy3(abc,11) = con_valate(4,4)/length(ydata_yanzhong_validata);