load('wine.data');
nClass=max(wine(:,1));
meanEachClass=arrayfun(@(x) mean( wine( wine(:,1)==x ,2:end) ), 1:nClass,'UniformOutput',false);
nSampleToTest=10;
for i=1:nSampleToTest
sampleNo=randi(size(wine,1));
sample=wine(sampleNo,2:end);
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
Sample #171
Distance:
Class 1: 605.816060
Class 2: 10.319480
Class 3: 119.987114
Based on distance, Sample seems to belong to class 2
According to the database, sample belongs to class 3
Sample #117
Distance:
Class 1: 621.072378
Class 2: 26.007955
Class 3: 135.695649
Based on distance, Sample seems to belong to class 2
According to the database, sample belongs to class 2
Sample #7
Distance:
Class 1: 174.614487
Class 2: 770.521566
Class 3: 660.160087
Based on distance, Sample seems to belong to class 1
According to the database, sample belongs to class 1
Sample #152
Distance:
Class 1: 635.785710
Class 2: 43.956064
Class 3: 150.475079
Based on distance, Sample seems to belong to class 2
According to the database, sample belongs to class 3
Sample #167
Distance:
Class 1: 420.824925
Class 2: 176.469688
Class 3: 66.248364
Based on distance, Sample seems to belong to class 3
According to the database, sample belongs to class 3
Sample #121
Distance:
Class 1: 490.840691
Class 2: 105.514335
Class 3: 8.175599
Based on distance, Sample seems to belong to class 3
According to the database, sample belongs to class 2
Sample #135
Distance:
Class 1: 466.213558
Class 2: 130.910111
Class 3: 25.163417
Based on distance, Sample seems to belong to class 3
According to the database, sample belongs to class 3
Sample #133
Distance:
Class 1: 555.828809
Class 2: 40.964218
Class 3: 69.989176
Based on distance, Sample seems to belong to class 2
According to the database, sample belongs to class 3
Sample #70
Distance:
Class 1: 400.230442
Class 2: 206.399030
Class 3: 102.402864
Based on distance, Sample seems to belong to class 3
According to the database, sample belongs to class 2
Sample #117
Distance:
Class 1: 621.072378
Class 2: 26.007955
Class 3: 135.695649
Based on distance, Sample seems to belong to class 2
According to the database, sample belongs to class 2