www.pudn.com > kernelSVM.rar > train.m
function [ new_C,new_kPar ] = train( Train_Benign,Train_Malignant )
%UNTITLED1 Summary of this function goes here
%Detailed explanation goes here
C = 2^(-2);
C_kPar_error = [];
while C < 2^7
kPar = 1;
while kPar < 7
error = 0;
for i = 1:22
validation = Train_Benign(i,:);
sizeTrainBenign = 21;
sizeTrainMalignant = 23;
if i==1
class_one = Train_Benign(2:sizeTrainBenign+1,:);
else
if i==sizeTrainBenign+1
class_one = Train_Benign(1:sizeTrainBenign,:);
else
class_one = [Train_Benign(1:i-1,:);Train_Benign(i+1:sizeTrainBenign+1,:)];
end
end
class_two = Train_Malignant;
parameter = SMO_algorithm(class_one,class_two,kPar,C);
b = parameter.b;
alpha = parameter.alpha;
index = find(alpha>0);
train = [class_one;class_two];
sup_vector = train(index,:);
mat_kernel = ( validation*sup_vector'+1).^kPar;
if sign(mat_kernel*alpha(index,:)+b) == -1
error = error+1;
end
end
for j = 1:23
validation = Train_Malignant(j,:);
sizeTrainBenign = 22;
sizeTrainMalignant = 22;
class_one = Train_Benign;
if j==1
class_two = Train_Malignant(2:sizeTrainMalignant+1,:);
else
if j==sizeTrainMalignant+1
class_two = Train_Malignant(1:sizeTrainMalignant,:);
else
class_two = [Train_Malignant(1:j-1,:);Train_Malignant(j+1:sizeTrainMalignant+1,:)];
end
end
parameter = SMO.algorithm(class_one,class_two,kPar,C);
b = parameter.b;
alpha = parameter.alpha;
train = [class_one;class_two];
index = find(alpha>0);
sup_vector = train(index,:);
mat_kernel = ( validation*sup_vector'+1).^kPar;
if sign(mat_kernel*alpha(index,:)+b) == 1
error = error+1;
end
end
C_kPar_error = [C_kPar_error;C,kPar,error];
out = [C,kPar,error]
kPar = kPar+1;
end
C = C*2;
end
num_error = C_kPar_error(:,3);
min_error = min(num_error);
indices = find(num_error == min_error);
new_C = C_kPar_error(indices(1,1),1);
new_kPar = C_kPar_error(indices(1,1),2);
show = C_kPar_error(indices(1,1),:)