I have this code:
%%Loading data
load('wine.data');% first column stores the wine class according to wine.names file
nClass=max(wine(:,1)); %%Getting the mean of each class for the 13 parameters
meanEachClass=arrayfun(@(x) mean( wine( wine(:,1)==x ,2:end) ), 1:nClass,'UniformOutput',false);%%Now checking the euclidean distance of a sample
% relative to the mean of each class
nSampleToTest=10;for i=1:nSampleToTest % Randomly choosing a sample
sampleNo=randi(size(wine,1)); sample=wine(sampleNo,2:end); % calculate the Eudlidian distance to each class.
distances=arrayfun(@(x) norm(sample-meanEachClass{x}), 1:nClass, 'UniformOutput',true); disp(sprintf('Sample #%d',sampleNo)) disp(sprintf('Distance: \n Class 1: %f \n Class 2: %f \n Class 3: %f \n',distances(1),distances(2),distances(3))); disp(sprintf('Based on distance, Sample seems to belong to class %d\n', find(distances==min(distances)))) disp(sprintf('According to the database, sample belongs to class %d\n',wine(sampleNo,1))) end
Here is the database: http://archive.ics.uci.edu/ml/machine-learning-databases/wine/ I found that some of the random vectors chosen are belonging to the class 2 for example and the algorithm points to class 1. How can i calculate the percentage of the algorithm precision ? Can you provide me some code?
Best Answer