numFeatures = 6; numTrain = 10; numTest = 3; classPriors = [0.5 0.5]; zipfParam = 1; for i =1:numTrain [f1 f2] = simZipf(numFeatures, zipfParam); if(rand() < classPriors(1)) db(i,1:numFeatures) = f1; db(i,numFeatures+1) = 1; else db(i,1:numFeatures) = f2; db(i, numFeatures+1) = 2; end end for i =1:numTest [f1 f2] = simZipf(numFeatures, zipfParam); if(rand() < classPriors(1)) testMat(i,1:numFeatures) = f1; testMat(i,numFeatures+1) = 1; else testMat(i,1:numFeatures) = f2; testMat(i, numFeatures+1) = 2; end end % Call Classifiers centroidParamClassVect = calcCentroidalParametricClass(testMat(:, db, classPriors); for i=1:numTest oneNNclassVect(i) = simplekNN(testMat(i,1:numFeatures), db, 1); twoNNclassVect(i) = simplekNN(testMat(i,1:numFeatures), db, 2); threeNNclassVect(i) = simplekNN(testMat(i,1:numFeatures), db, 3); db1 = db(find(db(:, numFeatures+1)==1),:); db2 = db(find(db(:, numFeatures+1)==2),:); centroidClassVect(i) = centroid(testMat(i,1:numFeatures), db1(:, 1:numFeatures), db2(:, 1:numFeatures)); AvgcentroidClassVect(i) = Avgcentroid(testMat(i,1:numFeatures), db1(:,1:numFeatures), db2(:,1:numFeatures)); end testClass = testMat(:, numFeatures+1); % Calculate error oneNNError = sum(abs(testClass - oneNNclassVect)); twoNNError = sum(abs(testClass - twoNNclassVect)); threeNNError = sum(abs(testClass - threeNNclassVect)); centroidClassError = sum(abs(testClass - centroidClassVector)); AvgcentroidClassError = sum(abs(testClass - AvgcentroidClassVect)); centroidParamClassError = sum(abs(testClass - centroidParamClassVect));