def features2(): trainingSet, trainingComposers, numTrainingComposers, numTrainingPieces = loadDataSingleClass.loadTrainingFiles() trainingData, trainingComposerNames = extractFeatures.initFeatureVectors(trainingSet, numTrainingComposers, numTrainingPieces) #permute data trainingSet, testingSet, trainingComposerNames, testingComposerNames = train_test_split(data, trainingComposerNames, test_size=0.20) #testingSet, testingComposers, numTestingComposers, numTestingPieces = loadDataSingleClass.loadTestingFiles() #testingFeatureVectors, testingComposerNames = extractFeatures.initFeatureVectors(testingSet, numTestingComposers, numTestingPieces) #trainingComposerNames = [0, 1, 2, 3, 4] #testingComposerNames = [0, 1, 2, 3, 4] predictions = bench_svm(trainingData, testingFeatureVectors, trainingComposerNames) printStatistics(predictions, testingComposerNames, numTrainingComposers)
def printStatistics(results, totalCorrect, numTestingPieces, numTrainingPieces, numTestingComposers, composersIndexed, K, numIterations): print '' print 'TESTING RESULTS' print '' for i in range(numTestingComposers): correct, total = results[i] print "Accuracy on " + composersIndexed[i] + " pieces: " + str(float(correct)/total) print str(correct) + " correct, " + str(total) + " total." print '' print "Number of pieces in training set: " + str(numTrainingPieces) print "Number of pieces in testing set: " + str(numTestingPieces) print "Overall accuracy on testing set: " + str(float(totalCorrect)/numTestingPieces) print "Number of iterations: " + str(numIterations) print "Range of sequence lengths: " print K print '' #end printStatistics #Main body of code trainingSet, trainingComposers, numTrainingComposers, numTrainingPieces = loadDataSingleClass.loadTrainingFiles() testingSet, testingComposers, numTestingComposers, numTestingPieces = loadDataSingleClass.loadTestingFiles() trainingFeatureVectors = classifierFeatures.initFeatureVectors(K, trainingSet, numTrainingComposers) weights = train(numIterations, K, numTrainingComposers, numTrainingPieces, trainingFeatureVectors) #trimmedWeights = trimWeights(weights, numTrainingComposers) trimmedWeights = weights #normalizeWeights(trimmedWeights, numTrainingComposers) testingFeatureVectors = classifierFeatures.initFeatureVectors(K, testingSet, numTestingComposers) results, totalCorrect = testSongs(K, trimmedWeights, testingFeatureVectors, numTestingComposers) printStatistics(results, totalCorrect, numTestingPieces, numTrainingPieces, numTestingComposers, composersIndexed, K, numIterations)