📄 breast_cancer_wisconsin.asv
字号:
Total = length(data(:,1));
VaribleNumber = length(data(1,:));
TrainNumber = floor(Total/2);
TestNumber = Total - TrainNumber-1;
TestMatrix = data(1:TrainNumber,:);
TrainMatrix = data(TrainNumber+1:end,:);
Answer = strcmp(textdata(1:Total,2),'B');
TrainNumber_B = sum(Answer(1:TrainNumber));
TrainNumber_M = TrainNumber - TrainNumber_B;
P_B = TrainNumber_B / TrainNumber;
P_M = TrainNumber_M / TrainNumber;
Train_B_Matrix = TrainMatrix(Answer(1:TrainNumber) == 1,:);
Train_M_Matrix = TrainMatrix(Answer(1:TrainNumber) == 0,:);
B_MeanMatrix = mean(Train_B_Matrix);
M_MeanMatrix = mean(Train_M_Matrix);
B_ConvarianceMatrix = cov(Train_B_Matrix);
M_ConvarianceMatrix = cov(Train_M_Matrix);
%zero-one loss function
TestCondition_B = zeros(TestNumber,1);
invB_ConvarianceMatrix = inv(B_ConvarianceMatrix);
detB_ConvarianceMatrix = sqrt(det(B_ConvarianceMatrix));
TestCondition_M = zeros(TestNumber,1);
invM_ConvarianceMatrix = inv(M_ConvarianceMatrix);
detM_ConvarianceMatrix = sqrt(det(M_ConvarianceMatrix));
pi2 = (2*pi)^(VaribleNumber/2);
for i = 1:TestNumber
TestCondition_B(i,1) = exp(-.5*(TestMatrix(i,:)-B_MeanMatrix)*invB_ConvarianceMatrix*(TestMatrix(i,:)-B_MeanMatrix)')/detB_ConvarianceMatrix/pi2;
end
for i = 1:TestNumber
TestCondition_M(i,1) = exp(-.5*(TestMatrix(i,:)-M_MeanMatrix)*invM_ConvarianceMatrix*(TestMatrix(i,:)-M_MeanMatrix)')/detM_ConvarianceMatrix/pi2;
end
Result = zeros(TestNumber,1);
Result(find(TestCondition_B > TestCondition_M)) = 1;
performance = sum((Result == Answer(TrainNumber+1:end,1))) / TestNumber;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -