Ejemplo n.º 1
0
trainingAmount = len(trainingImages)
testAmount = len(testImages)

print("Making thumbnails")
size = 50
trainingThumbs = list(map(lambda x: misc.imresize(x,(size,size)), trainingImages))
testThumbs = list(map(lambda x: misc.imresize(x,(size,size)), testImages))

print("Calculating features")
#features = list(map(extractor.calculateNormalizedColorFeatures, images))
angleClasses = 7
trainingFeatures = numpy.zeros([trainingAmount, 4 * angleClasses + 3])
testFeatures = numpy.zeros([testAmount, 4 * angleClasses + 3])
for i in range(trainingAmount):
    print(i, "/", trainingAmount)
    trainingFeatures[i] = extractor.colorQuadrantAngleFeatures(trainingThumbs[i], angleClasses, 100, 160)
for i in range(testAmount):
    print(i, "/", testAmount)
    testFeatures[i] = extractor.colorQuadrantAngleFeatures(testThumbs[i], angleClasses, 100, 160)
    
print("Predicting Testdata")
model = svm.SVC(kernel = 'poly', degree = 15, probability = True)
model.fit(trainingFeatures, trainingClasses)

with open('color_anglequadrant_csv_classification_1.csv', 'w', newline = '') as csvfile:
    classes = numpy.unique(trainingClasses)
    fieldnames = numpy.insert(classes, 0, 'Id')
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    for i in range(testAmount):
Ejemplo n.º 2
0
print("Loading images")
images, classes = loader.loadTrainingAndClasses()
amount = len(images)

print("Making thumbnails")
    
thumbsize = 25
thumbs = [misc.imresize(x,(thumbsize, thumbsize)) for x in images]

print("Calculating features")
#features = list(map(extractor.calculateNormalizedColorFeatures, images))
angleClasses = 7
features = numpy.zeros([len(images), 4 * angleClasses + 3])
for i in range(amount):
    print(i, "/", amount)
    features[i] = extractor.colorQuadrantAngleFeatures(thumbs[i], angleClasses, 100, 160)

#parameters = {'C': [1, 10, 100, 1000, 10000], 'gamma': [0.01, 0.001, 0.0001], 'kernel': ['rbf']}
#classifier = grid_search.GridSearchCV(svm.SVC(), parameters)
#classifier.fit(features, classes)  

    
print("Producing KFold indexes")
kfold = cv.KFold(amount, n_folds = 10, shuffle = True)

print("Evaluating model with KFold")
counter = 0
errors  = numpy.zeros(len(kfold))
for train_index, test_index in kfold:
    print(counter)
    trainFeatures = [features[i] for i in train_index]