gaussianKernel
sim = exp(-sum((x1 - x2) .^ 2) / (2 * sigma ^ 2));
dataset3Params
rel_vec = [0 0 9999];
val_vec = [0.01 0.03 0.1 0.3 1 3 10 30];
for i = 1:length(val_vec)
for j = 1:length(val_vec)
model= svmTrain(X, y, val_vec(i), @(x1, x2) gaussianKernel(x1, x2, val_vec(j)));
%We would get 8*8 = 64 models, and we could gain the best of them by the cross validation error.
predictions = svmPredict(model, Xval);
error = mean(double(predictions ~= yval));
if error < rel_vec(3)
rel_vec = [val_vec(i) val_vec(j) error];
end
end
end
C = rel_vec(1);
sigma = rel_vec(2);
processEmail
for i=1:length(vocabList)
if strcmp(vocabList(i), str) == 1
word_indices = [word_indices; i]; %We choose the same word, so we can get out now.
break
end
end
emailFeatures
for i=1:length(word_indices)
x(word_indices(i)) = 1;
end