''' 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()
示例#3
0
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()