📄 abalone.m
字号:
MeanMatrix_M(6,:) = mean(sextmp);
ConvarianceMatrix_M(:,:,6) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 1),section);
if length(sextmp) < SampleNumber
FailGroup(6,2) = 0;
end
MeanMatrix_F(6,:) = mean(sextmp);
ConvarianceMatrix_F(:,:,6) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 2),section);
if length(sextmp) < SampleNumber
FailGroup(6,3) = 0;
end
MeanMatrix_I(6,:) = mean(sextmp);
ConvarianceMatrix_I(:,:,6) = cov(sextmp);
tmp = TrainMatrix(TrainClassIndex_7,1:end-1);
sextmp = tmp(find(tmp(:,1) == 0),section);
if length(sextmp) < SampleNumber
FailGroup(7,1) = 0;
end
MeanMatrix_M(7,:) = mean(sextmp);
ConvarianceMatrix_M(:,:,7) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 1),section);
if length(sextmp) < SampleNumber
FailGroup(7,2) = 0;
end
MeanMatrix_F(7,:) = mean(sextmp);
ConvarianceMatrix_F(:,:,7) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 2),section);
if length(sextmp) < SampleNumber
FailGroup(7,3) = 0;
end
MeanMatrix_I(7,:) = mean(sextmp);
ConvarianceMatrix_I(:,:,7) = cov(sextmp);
tmp = TrainMatrix(TrainClassIndex_8,1:end-1);
sextmp = tmp(find(tmp(:,1) == 0),section);
if length(sextmp) < SampleNumber
FailGroup(8,1) = 0;
end
MeanMatrix_M(8,:) = mean(sextmp);
ConvarianceMatrix_M(:,:,8) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 1),section);
if length(sextmp) < SampleNumber
FailGroup(8,2) = 0;
end
MeanMatrix_F(8,:) = mean(sextmp);
ConvarianceMatrix_F(:,:,8) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 2),section);
if length(sextmp) < SampleNumber
FailGroup(8,3) = 0;
end
MeanMatrix_I(8,:) = mean(sextmp);
ConvarianceMatrix_I(:,:,8) = cov(sextmp);
tmp = TrainMatrix(TrainClassIndex_9,1:end-1);
sextmp = tmp(find(tmp(:,1) == 0),section);
if length(sextmp) < SampleNumber
FailGroup(9,1) = 0;
end
MeanMatrix_M(9,:) = mean(sextmp);
ConvarianceMatrix_M(:,:,9) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 1),section);
if length(sextmp) < SampleNumber
FailGroup(9,2) = 0;
end
MeanMatrix_F(9,:) = mean(sextmp);
ConvarianceMatrix_F(:,:,9) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 2),section);
if length(sextmp) < SampleNumber
FailGroup(9,3) = 0;
end
MeanMatrix_I(9,:) = mean(sextmp);
ConvarianceMatrix_I(:,:,9) = cov(sextmp);
tmp = TrainMatrix(TrainClassIndex_10,1:end-1);
sextmp = tmp(find(tmp(:,1) == 0),section);
if length(sextmp) < SampleNumber
FailGroup(10,1) = 0;
end
MeanMatrix_M(10,:) = mean(sextmp);
ConvarianceMatrix_M(:,:,10) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 1),section);
if length(sextmp) < SampleNumber
FailGroup(10,2) = 0;
end
MeanMatrix_F(10,:) = mean(sextmp);
ConvarianceMatrix_F(:,:,10) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 2),section);
if length(sextmp) < SampleNumber
FailGroup(10,3) = 0;
end
MeanMatrix_I(10,:) = mean(sextmp);
ConvarianceMatrix_I(:,:,10) = cov(sextmp);
tmp = TrainMatrix(TrainClassIndex_11,1:end-1);
sextmp = tmp(find(tmp(:,1) == 0),section);
if length(sextmp) < SampleNumber
FailGroup(11,1) = 0;
end
MeanMatrix_M(11,:) = mean(sextmp);
ConvarianceMatrix_M(:,:,11) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 1),section);
if length(sextmp) < SampleNumber
FailGroup(11,2) = 0;
end
MeanMatrix_F(11,:) = mean(sextmp);
ConvarianceMatrix_F(:,:,11) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 2),section);
if length(sextmp) < SampleNumber
FailGroup(11,3) = 0;
end
MeanMatrix_I(11,:) = mean(sextmp);
ConvarianceMatrix_I(:,:,11) = cov(sextmp);
tmp = TrainMatrix(TrainClassIndex_12,1:end-1);
sextmp = tmp(find(tmp(:,1) == 0),section);
if length(sextmp) < SampleNumber
FailGroup(12,1) = 0;
end
MeanMatrix_M(12,:) = mean(sextmp);
ConvarianceMatrix_M(:,:,12) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 1),section);
if length(sextmp) < SampleNumber
FailGroup(12,2) = 0;
end
MeanMatrix_F(12,:) = mean(sextmp);
ConvarianceMatrix_F(:,:,12) = cov(sextmp);
sextmp = tmp(find(tmp(:,1) == 2),section);
if length(sextmp) < SampleNumber
FailGroup(12,3) = 0;
end
MeanMatrix_I(12,:) = mean(sextmp);
ConvarianceMatrix_I(:,:,12) = cov(sextmp);
%zero-one loss function
TestCondition = zeros(TestNumber,ClassNumber);
inv_ConvarianceMatrix_M = zeros(d,d,ClassNumber);
det_ConvarianceMatrix_M = zeros(1,ClassNumber);
inv_ConvarianceMatrix_F = zeros(d,d,ClassNumber);
det_ConvarianceMatrix_F = zeros(1,ClassNumber);
inv_ConvarianceMatrix_I = zeros(d,d,ClassNumber);
det_ConvarianceMatrix_I = zeros(1,ClassNumber);
for i = 1:ClassNumber
inv_ConvarianceMatrix_M(:,:,i) = inv(ConvarianceMatrix_M(:,:,i));
det_ConvarianceMatrix_M(:,i) = sqrt(abs(det(ConvarianceMatrix_M(:,:,i))));
inv_ConvarianceMatrix_F(:,:,i) = inv(ConvarianceMatrix_F(:,:,i));
det_ConvarianceMatrix_F(:,i) = sqrt(abs(det(ConvarianceMatrix_F(:,:,i))));
inv_ConvarianceMatrix_I(:,:,i) = inv(ConvarianceMatrix_I(:,:,i));
det_ConvarianceMatrix_I(:,i) = sqrt(abs(det(ConvarianceMatrix_I(:,:,i))));
end
pi2 = (2*pi)^(d/2);
Final = zeros(3,1);
for i = 1:TestNumber
for j = 1:ClassNumber
if (FailGroup(j,1) == 0)
Final(1,1) = 0;
else
Final(1,1) = exp(-.5*(TestMatrix(i,section)-MeanMatrix_M(j,:))*inv_ConvarianceMatrix_M(:,:,j)*(TestMatrix(i,section)-MeanMatrix_M(j,:))')/pi2/det_ConvarianceMatrix_M(1,j)*Pw(j,1)*Ppostsex(j,1);
end
if (FailGroup(j,2) == 0)
Final(2,1) = 0;
else
Final(2,1) = exp(-.5*(TestMatrix(i,section)-MeanMatrix_F(j,:))*inv_ConvarianceMatrix_F(:,:,j)*(TestMatrix(i,section)-MeanMatrix_F(j,:))')/pi2/det_ConvarianceMatrix_F(1,j)*Pw(j,1)*Ppostsex(j,2);
end
if (FailGroup(j,3) == 0)
Final(3,1) = 0;
else
Final(3,1) = exp(-.5*(TestMatrix(i,section)-MeanMatrix_I(j,:))*inv_ConvarianceMatrix_I(:,:,j)*(TestMatrix(i,section)-MeanMatrix_I(j,:))')/pi2/det_ConvarianceMatrix_I(1,j)*Pw(j,1)*Ppostsex(j,3);
end
TestCondition(i,j) = Final(1,1)+Final(2,1)+Final(3,1);
end
end
TestAnswer = data(TestIndex,VaribleNumber);
TestAnswer(find((TestAnswer-5).*(TestAnswer-1) <= 0)) = 1;
TestAnswer(find(TestAnswer == 6)) = 2;
TestAnswer(find(TestAnswer == 7)) = 3;
TestAnswer(find(TestAnswer == 8)) = 4;
TestAnswer(find(TestAnswer == 9)) = 5;
TestAnswer(find(TestAnswer == 10)) = 6;
TestAnswer(find(TestAnswer == 11)) = 7;
TestAnswer(find(TestAnswer == 12)) = 8;
TestAnswer(find(TestAnswer == 13)) = 9;
TestAnswer(find(TestAnswer == 14)) = 10;
TestAnswer(find((TestAnswer-19).*(TestAnswer-15) <= 0)) = 11;
TestAnswer(find(TestAnswer >= 20)) = 12;
%TestCondition(find(TestCondition == inf)) = 0;
%TestCondition(find(TestCondition == nan)) = 0;
[max2, Result] = max(TestCondition');
Result = Result';
ConfusionMatrix =zeros(ClassNumber,ClassNumber);
for i = 1:ClassNumber
for j = 1:ClassNumber
ConfusionMatrix(i,j) = sum( and((TestAnswer == i) ,(Result == j)));
end
end
ConfusionMatrix
performance = sum((Result == TestAnswer)) / TestNumber
end
%%%%%%%%%%%%%%%%%%%%
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -