''' POSTAVKE ''' DIR_ZA_UCENJE = 'uzorci_za_ucenje/' DIR_ZA_TESTIRANJE = 'uzorci_za_testiranje/' ''' FORMAT ZAPISA: ISPRAVNO|KLASIFICIRANO''' primjer = AgeKlasifikator(DIR_ZA_UCENJE) primjer.postaviSkupine([13, 21, 60]) primjer.postaviPCA(100) primjer.doPCALDA() datoteka = open('SVM_POLY_klasifikacija_testiranje.txt','a') primjer.postaviSVM(dict(kernel_type = cv.SVM_POLY, svm_type = cv.SVM_C_SVC, C = 1, degree = 1, gamma = 1)) primjer.trainSVM() primjer.batchPredict(DIR_ZA_TESTIRANJE) for pripadnost, prediction in primjer.razlikaRazred: datoteka.writelines(str(pripadnost) + "|" + str(int(prediction)) + "\n") datoteka.close() datoteka = open('SVM_RBF_klasifikacija_testiranje.txt','a') primjer.postaviSVM(dict(kernel_type = cv.SVM_RBF, svm_type = cv.SVM_C_SVC, C = 1, gamma = 1)) primjer.trainSVM() primjer.batchPredict(DIR_ZA_TESTIRANJE) for pripadnost, prediction in primjer.razlikaRazred: datoteka.writelines(str(pripadnost) + "|" + str(int(prediction)) + "\n") datoteka.close() datoteka = open('KNN_klasifikacija_testiranje.txt','a') primjer.trainKNN(1) primjer.batchPredict(DIR_ZA_TESTIRANJE)
''' POCETAK ''' print "Raspoznavanje dobne skupine pomocu linearne diskriminantne analize (LDA)" print "Odabrani klasifikator ce biti pokrenut s optimalnim parametrima" izbor = raw_input('Koji klasifikator zelite koristiti? kNN(1), SVM(2) ili EXIT(0): ') try: izbor = int(izbor) except: print "Pogreska u odabiru. Ponovo pokrenite program!" sys.exit() primjer = AgeKlasifikator(DIR_ZA_UCENJE) primjer.postaviSkupine([13, 21, 60]) if izbor == 1: primjer.postaviBrOkvira(4) primjer.postaviPCA(100) primjer.doPCALDA() primjer.trainKNN(41) print "Ispravno (kNN): %s posto!" % str(primjer.batchPredict(DIR_ZA_TESTIRANJE)) elif izbor == 2: primjer.postaviBrOkvira(1) primjer.postaviPCA(150) primjer.doPCALDA() primjer.postaviSVM(dict(kernel_type = cv.SVM_POLY, svm_type = cv.SVM_C_SVC, C = 2, degree = 5, gamma = 14)) primjer.trainSVM() print "Ispravno (SVM): %s posto!" % str(primjer.batchPredict(DIR_ZA_TESTIRANJE)) elif izbor == 0: sys.exit()
primjer = AgeKlasifikator('uzorci_za_ucenje/') primjer.postaviSkupine([13, 21, 60]) primjer.postaviPCA(100) primjer.doPCALDA() dosadNajbolji = 0 datoteka = open('SVM_POLY_testiranje.txt','a') print "SVM_POLY" for i in range(1,10): for j in range(1,100,5): for k in range(1,40,2): print "C=%s, degree=%s, gamma=%s" % (j,i,k) primjer.postaviSVM(dict(kernel_type = cv.SVM_POLY, svm_type = cv.SVM_C_SVC, C = j, degree = i, gamma = k)) primjer.trainSVM() rezultat = primjer.batchPredict('uzorci_za_testiranje/') datoteka.writelines(str(rezultat) + "|" + str(j) + "|" + str(i) + "|" + str(k) +"\n") if rezultat > dosadNajbolji: best = str(rezultat) + "|" + str(j) + "|" + str(i) + "|" + str(k) +"\n" dosadNajbolji = rezultat datoteka.writelines(best) datoteka.close() dosadNajbolji = 0 datoteka = open('SVM_RBF_testiranje.txt','a') print "SVM_RBF" for j in range(1,100,5): for k in range(1,40,2): print "C=%s, gamma=%s" % (j,k) primjer.postaviSVM(dict(kernel_type = cv.SVM_RBF, svm_type = cv.SVM_C_SVC, C = j, gamma = k)) primjer.trainSVM()
#!/usr/bin/env python import cv2 as cv from klasifikator import AgeKlasifikator ''' FORMAT ZAPISA: ISPRAVNO|KLASIFICIRANO''' primjer = AgeKlasifikator('uzorci_za_ucenje/') primjer.postaviSkupine([13, 21, 60]) primjer.postaviPCA(100) primjer.doPCALDA() datoteka = open('SVM_POLY_klasifikacija_testiranje.txt','a') primjer.postaviSVM(dict(kernel_type = cv.SVM_POLY, svm_type = cv.SVM_C_SVC, C = 1, degree = 1, gamma = 1)) primjer.trainSVM() primjer.batchPredict('uzorci_za_testiranje/') for pripadnost, prediction in primjer.razlikaRazred: datoteka.writelines(str(pripadnost) + "|" + str(int(prediction)) + "\n") datoteka.close() datoteka = open('SVM_RBF_klasifikacija_testiranje.txt','a') primjer.postaviSVM(dict(kernel_type = cv.SVM_RBF, svm_type = cv.SVM_C_SVC, C = 1, gamma = 1)) primjer.trainSVM() primjer.batchPredict('uzorci_za_testiranje/') for pripadnost, prediction in primjer.razlikaRazred: datoteka.writelines(str(pripadnost) + "|" + str(int(prediction)) + "\n") datoteka.close() datoteka = open('KNN_klasifikacija_testiranje.txt','a') primjer.trainKNN(1) primjer.batchPredict('uzorci_za_testiranje/')
primjer = AgeKlasifikator(DIR_ZA_UCENJE) primjer.postaviSkupine([13, 21, 60]) primjer.postaviPCA(100) primjer.doPCALDA() dosadNajbolji = 0 datoteka = open('SVM_POLY_testiranje.txt','a') print "SVM_POLY" for i in range(1,10): for j in range(1,100,5): for k in range(1,40,2): print "C=%s, degree=%s, gamma=%s" % (j,i,k) primjer.postaviSVM(dict(kernel_type = cv.SVM_POLY, svm_type = cv.SVM_C_SVC, C = j, degree = i, gamma = k)) primjer.trainSVM() rezultat = primjer.batchPredict(DIR_ZA_TESTIRANJE) datoteka.writelines(str(rezultat) + "|" + str(j) + "|" + str(i) + "|" + str(k) +"\n") if rezultat > dosadNajbolji: best = str(rezultat) + "|" + str(j) + "|" + str(i) + "|" + str(k) +"\n" dosadNajbolji = rezultat datoteka.writelines(best) datoteka.close() dosadNajbolji = 0 datoteka = open('SVM_RBF_testiranje.txt','a') print "SVM_RBF" for j in range(1,100,5): for k in range(1,40,2): print "C=%s, gamma=%s" % (j,k) primjer.postaviSVM(dict(kernel_type = cv.SVM_RBF, svm_type = cv.SVM_C_SVC, C = j, gamma = k)) primjer.trainSVM()