%%%%%测试MF和CF
% load('C:\\Users\\cheng\\Documents\\Matlab\\UCI数据集\\sonar.mat');
% german_data=sonar(:,1:60);
% german_label=sonar(:,61);
% load('C:\\Users\\cheng\\Documents\\Matlab\\UCI数据集\\hearts.mat');
% german_data=hearts(:,1:12);
% german_label=hearts(:,13);
load('C:\\Users\\cheng\\Documents\\Matlab\\UCI数据集\\cleve.mat');
german_data=cleve(:,1:13);
german_label=cleve(:,14);
% load('C:\\Users\\cheng\\Documents\\Matlab\\UCI数据集\\austra.mat');
% german_data=austra(:,1:14);
% german_label=austra(:,15);
% load('C:\\Users\\cheng\\Documents\\Matlab\\UCI数据集\\breast.mat');
% german_data=breast(:,1:9);
% german_label=breast(:,10);
german_label=label_switch(german_label);
data_set=normalize(german_data);
data_label=german_label;
[traindata,trainlabel,testdata,testlabel]=set_devide(data_set,data_label,4);
[num_test,num_feature]=size(testdata);
num_train=size(traindata,1);
rate=0.1;
[noisy_train_label,index]= add_noise(trainlabel, rate);
num_noise=size(index,1);
noisy_data=zeros(num_noise,num_feature);
for i=1:num_noise
noisy_data(i,:)=traindata(index(i),:);
end
[train_data,train_label,traindata1,trainlabel1]=set_devide(traindata,noisy_train_label,3);
[traindata3,trainlabel3,traindata2,trainlabel2]=set_devide(train_data,train_label,2);
%%%%%找traindata1中的噪声
train_data1=[traindata2;traindata3];
train_label1=[trainlabel2;trainlabel3];
% [~,belief1,~]=enn(train_data1,train_label1,5);
% indices1=find(belief1>0.2);
% num_indices1=size(indices1,1);
% clear_data=zeros(num_indices1,num_feature);
% clear_label=zeros(num_indices1,1);
% for i=1:num_indices1
% clear_data(i,:)=train_data1(indices1(i),:);
% clear_label(i,:)=train_label1(indices1(i),:);
% end
% train_data1=clear_data;
% train_label1=clear_label;
[ps,label1_tree]=BinaryClassify('tree',train_data1,train_label1,...
traindata1,trainlabel1);
[pn,label1_svm]=BinaryClassify('svm',train_data1,train_label1,...
traindata1,trainlabel1);
[pk,label1_3nn]=BinaryClassify('knn-3',train_data1,train_label1,...
traindata1,trainlabel1);
label1=[label1_tree,label1_svm,label1_3nn];
[index_noise1,~]=majority_filter(label1,trainlabel1);
index1=find(index_noise1==1);
num_index1=size(index1,1);
potential_noise1=zeros(num_index1,num_feature);
for i=1:num_index1
potential_noise1(i,:)=traindata1(index1(i),:);
end
% result_label1=vote(label1);
% error_num_1=size(find((result_label1-testlabel)~=0),1);
% en_grab_precision=1-error_num_1/num_test;
label_bag=zeros(size(trainlabel1,1),15);
for i=1:5
[new_traindata, new_trainlabel] =bootstrap(train_data1, train_label1);
[~,label4_tree]=BinaryClassify('tree',new_traindata, new_trainlabel,...
traindata1,trainlabel1);
[~,label4_svm]=BinaryClassify('svm',new_traindata, new_trainlabel,...
traindata1,trainlabel1);
[~,label4_3nn]=BinaryClassify('knn-3',new_traindata, new_trainlabel,...
traindata1,trainlabel1);
label_bag(:,3*(i-1)+1)= label4_tree;
label_bag(:,3*(i-1)+2)= label4_svm;
label_bag(:,3*(i-1)+3)= label4_3nn;
end
index_noise4=majority_filter(label_bag,trainlabel1);
index4=find(index_noise4==1);
num_index4=size(index4,1);
potential_noise4=zeros(num_index4,num_feature);
for i=1:num_index4
potential_noise4(i,:)=traindata1(index4(i),:);
end
%%%%%找traindata2中的噪声
train_data2=[traindata1;traindata3];
train_label2=[trainlabel1;trainlabel3];
[~,label2_tree]=BinaryClassify('tree',train_data2,train_label2,...
traindata2,trainlabel2);
[~,label2_svm]=BinaryClassify('svm',train_data2,train_label2,...
traindata2,trainlabel2);
[~,label2_3nn]=BinaryClassify('knn-3',train_data2,train_label2,...
traindata2,trainlabel2);
label2=[label2_tree,label2_svm,label2_3nn];
index_noise2=majority_filter(label2,trainlabel2);
index2=find(index_noise2==1);
num_index2=size(index2,1);
potential_noise2=zeros(num_index2,num_feature);
for i=1:num_index2
potential_noise2(i,:)=traindata2(index2(i),:);
end
label_bag=zeros(size(trainlabel2,1),15);
for i=1:5
[new_traindata, new_trainlabel] =bootstrap(train_data2, train_label2);
[~,label5_tree]=BinaryClassify('tree',new_traindata, new_trainlabel,...
traindata2,trainlabel2);
[~,label5_svm]=BinaryClassify('svm',new_traindata, new_trainlabel,...
traindata2,trainlabel2);
[~,label5_3nn]=BinaryClassify('knn-3',new_traindata, new_trainlabel,...
traindata2,trainlabel2);
label_bag(:,3*(i-1)+1)= label5_tree;
label_bag(:,3*(i-1)+2)= label5_svm;
label_bag(:,3*(i-1)+3)= label5_3nn;
end
index_noise5=majority_filter(label_bag,trainlabel2);
index5=find(index_noise5==1);
num_index5=size(index5,1);
potential_noise5=zeros(num_index5,num_feature);
for i=1:num_index5
potential_noise5(i,:)=traindata2(index5(i),:);
end
%%%%%找traindata3中的噪声
train_data3=[traindata1;traindata2];
train_label3=[trainlabel1;trainlabel2];
[~,label3_tree]=BinaryClassify('tree',train_data3,train_label3,...
traindata3,trainlabel3);
[~,label3_svm]=BinaryClassify('svm',train_data3,train_label3,...
traindata3,trainlabel3);
[~,label3_3nn]=BinaryClassify('knn-3',train_data3,train_label3,...
traindata3,trainlabel3);
label3=[label3_tree,label3_svm,label3_3nn];
index_noise3=majority_filter(label3,trainlabel3);
index3=find(index_noise3==1);
num_index3=size(index3,1);
potential_noise3=zeros(num_index3,num_feature);
for i=1:num_index3
potential_noise3(i,:)=traindata3(index3(i),:);
end
label_bag=zeros(size(trainlabel3,1),15);
for i=1:5
[new_traindata, new_trainlabel] =bootstrap(train_data3, train_label3);
[~,label6_tree]=BinaryClassify('tree',new_traindata, new_trainlabel,...
traindata3,trainlabel3);
[~,label6_svm]=BinaryClassify('svm',new_traindata, new_trainlabel,...
traindata3,trainlabel3);
[~,label6_3nn]=BinaryClassify('knn-3',new_traindata, new_trainlabel,...
traindata3,trainlabel3);
label_bag(:,3*(i-1)+1)= label6_tree;
label_bag(:,3*(i-1)+2)= label6_svm;
label_bag(:,3*(i-1)+3)= label6_3nn;
end
index_noise6=majority_filter(label_bag,trainlabel3);
index6=find(index_noise6==1);
num_index6=size(index6,1);
potential_noise6=zeros(num_index6,num_feature);
for i=1:num_index6
potential_noise6(i,:)=traindata3(index6(i),:);
end
potential_noise_1=[potential_noise1;potential_noise2;potential_noise3];
potential_noise_2=[potential_noise4;potential_noise5;potential_noise6];
num1=find_same(noisy_data,potential_noise_1);
num_1=num_index1+num_index2+num_index3;
num2=find_same(noisy_data,potential_noise_2);
num_2=num_index4+num_index5+num_index6;
% for i=1: