% moving to runDiffFeatures simulation % numFeatures = 500; numTrain = 10; numTest = 100; classPriors = [0.5 0.5]; for i = 1:numTrain okData = 0; while(okData == 0) { [f1 f2] = sim1overN(numFeatures); % [f1 f2] = simMutuallyExclusive(numFeatures, 0.9); num1 = 0; num2 = 0; randNumber = rand; if( randNumber < classPriors(1) ) trainMat(i,1:numFeatures) = f1; trainMat(i,numFeatures+1) = 1; num1 = num1 + 1; else trainMat(i,1:numFeatures) = f2; trainMat(i, numFeatures+1) = 2; num2 = num2 + 1; end if(num1 == 0 || num2 == 0) okData = 0; else okData = 1; end } end for i =1:numTest [f1 f2] = sim1overN(numFeatures); % [f1 f2] = simMutuallyExclusive(numFeatures, 0.9); 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(:,1:numFeatures), trainMat, classPriors); centroidParamClassVect = calcCentroidalParametricClassX(testMat(:,1:numFeatures), trainMat, classPriors); for i=1:numTest oneNNclassVect(i) = simplekNN(testMat(i,1:numFeatures), trainMat, 1); threeNNclassVect(i) = simplekNN(testMat(i,1:numFeatures), trainMat, 3); fiveNNclassVect(i) = simplekNN(testMat(i,1:numFeatures), trainMat, 5); trainMat1 = trainMat(find(trainMat(:, numFeatures+1)==1),1:numFeatures); trainMat2 = trainMat(find(trainMat(:, numFeatures+1)==2),1:numFeatures); centroidClassVect(i) = centroid(testMat(i,1:numFeatures), trainMat1, trainMat2); AvgcentroidClassVect(i) = Avgcentroid(testMat(i,1:numFeatures), trainMat1(:,1:numFeatures), trainMat2(:,1:numFeatures)); end testClass = testMat(:, numFeatures+1); % Calculate error oneNNError = sum(abs(testClass' - oneNNclassVect)); threeNNError = sum(abs(testClass' - threeNNclassVect)); fiveNNError = sum(abs(testClass' - fiveNNclassVect)); centroidClassError = sum(abs(testClass' - centroidClassVect)); AvgcentroidClassError = sum(abs(testClass' - AvgcentroidClassVect)); centroidParamClassError = sum(abs(testClass' - centroidParamClassVect)); % oneNNError % threeNNError % fiveNNError % centroidClassError % AvgcentroidClassError % centroidParamClassError