필터 지우기
필터 지우기

during the classification of malayalam short vowel classification ,i'm getting the accuracy of 20%.How can i increase the accuracy,

조회 수: 2 (최근 30일)
the code is given below.How can i increase the accuracy with respect to the vowel classification.
clear; clc; DatabasePath='D:\Education\3sem\project\newspeech(mv)\mv_database'; NumberOfVowels=5; NumberOfSamplesPerVowel=250; k1=1; k2=1; %x=zeros(500,3500); for index1=1 : NumberOfVowels FolderName=sprintf('%s\\%d',DatabasePath,index1); for index2=1 : NumberOfSamplesPerVowel sn=wavread(sprintf('%s\\%d.wav',FolderName,index2)); if index2<=125 TrainData(k1,:)=sn(1:1100); k1=k1+1; else TestData(k2,:)=sn(1:1100); k2=k2+1; end %sound(x1,fs1); end end [P,N]=size(TrainData);
%finding the minimum and maximum min1=min(TrainData(1:P,:)); max1=max(TrainData(1:P,:));
% Finding the normalizes data
for i=1:N for j=1:P Train_norm(j,i)=(TrainData(j,i)-min1(i))/(max1(i)-min1(i)); end end min2=min(TestData(1:P,:)); max2=max(TestData(1:P,:));
% Finding the normalizes data
for i=1:N for j=1:P Test_norm(j,i)=(TestData(j,i)-min2(i))/(max2(i)-min2(i)); end end
m1=mean(Train_norm(1:125,:)); m2=mean(Train_norm(126:250,:)); m3=mean(Train_norm(251:375,:)); m4=mean(Train_norm(376:500,:)); m5=mean(Train_norm(501:625,:));
% within class scatter matrix of class 1 Sw1=zeros(1100); for i=1:125 Diff=Train_norm(i,:)-m1; Sw1=Sw1+(Diff'*Diff); end
% within class scatter matrix of class 2 Sw2=zeros(1100); for i=126:250 Diff=Train_norm(i,:)-m2; Sw2=Sw2+(Diff'*Diff); end % within class scatter matrix of class 3 Sw3=zeros(1100); for i=251:375 Diff=Train_norm(i,:)-m3; Sw3=Sw3+(Diff'*Diff); end % within class scatter matrix of class 4 Sw4=zeros(1100); for i=376:500 Diff=Train_norm(i,:)-m4; Sw4=Sw4+(Diff'*Diff); end % within class scatter matrix of class 5 Sw5=zeros(1100); for i=501:625 Diff=Train_norm(i,:)-m5; Sw5=Sw5+(Diff'*Diff); end
% sum of within class scatter matrix Sw=Sw1+Sw2+Sw3+Sw4+Sw5;
% total mean m=(m1+m2+m3+m4+m5)/5;
% between class scatter matrix Sb1=125*(m1-m)'*(m1-m); Sb2=125*(m2-m)'*(m2-m); Sb3=125*(m3-m)'*(m3-m); Sb4=125*(m4-m)'*(m4-m); Sb5=125*(m5-m)'*(m5-m); Sb=Sb1+Sb2+Sb3+Sb4+Sb5;
% Computation of eigenvectors and eigen value [Evect,Eval]=eig(inv(Sw)*Sb); [Eval,ind]=sort(diag(Eval),'descend'); no_of_dim=4; EV1=Evect(:,ind(1:no_of_dim)); projtrain_data=Train_norm*EV1; projtest_data=Test_norm*EV1; projtest_data=TestData*EV1; class(1:125)=1; class(126:250)=2; class(251:375)=3; class(376:500)=4; class(501:625)=5; %gscatter(TrainData(:,1),TrainData(:,2),class); class=class'; oclass=knnclassify(projtest_data,projtrain_data,class,15); %figure,gscatter(TestData(:,1),TestData(:,2),oclass,'mc'); figure, plot(oclass(1:125,1),'*r'); hold on; plot(oclass(126:250,1),'+g'); hold on; plot(oclass(251:375,1),'^b'); hold off; c=confusionmat(class,oclass) correct=diag(c); accuracy=(sum(correct)/625)*100; display(accuracy);

답변 (0개)

카테고리

Help CenterFile Exchange에서 Image Data Workflows에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by