function [class] = Avgcentroid(test,trainMat0, trainMat1) % Classify the point 'test' in the following way: % 1. find the most representative element of each class % 2. compare the similarity of test to each most rep element % 3. sim(test,u1) > sim(test, u0) => class 1 % Inputs: % 1. test: vector length m % 2. trainMat0 : n*m matrix of elements from class0 % 3. trainMat1: n*m matrix of elements from class1 % Output: % 1. 0 if classified as class0, else 1 [u1] = getMostRepElement(trainMat1); [u0] = getMostRepElement(trainMat0); centroid0 = trainMat0(u0, :); centroid1 = trainMat1(u1, :); numClass0 = size(trainMat0,1); numClass1 = size(trainMat1, 1); sim0 = getSimCounting(centroid0, test); simAv0 = 0; for i=1:numClass0 simAv0 = simAv0 + getSimCounting(trainMat0(i,:), centroid0); end simAv0 = simAv0/numClass0; sim1 = getSimCounting(centroid1, test); simAv1 = 0; for i=1:numClass1 simAv1 = simAv1 + getSimCounting(trainMat1(i,:), centroid1); end simAv1 = simAv1/numClass1; sim0 = sim0/simAv0; sim1 = sim1/simAv1; if(sim0 > sim1) class = 1; else class = 2; end