Mercurial > hg > rhythm-melody-feature-evaluation
diff classifiers.py @ 6:2732137aa9b5
fix query indices, add classifiers.py and features as pickle
author | Maria Panteli |
---|---|
date | Thu, 27 Dec 2018 18:45:41 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/classifiers.py Thu Dec 27 18:45:41 2018 +0200 @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +""" +Created on Mon Oct 5 14:59:39 2015 + +@author: mariapanteli +""" +"""Selection of classifiers""" + +import numpy + +from sklearn.neighbors import KNeighborsClassifier +from sklearn.naive_bayes import GaussianNB +from sklearn.cross_validation import cross_val_predict +from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA +from sklearn import svm +from sklearn import metrics + +def classifyKNN(X, Y, nn=1, kfold=5): + model = KNeighborsClassifier(n_neighbors=nn, metric='euclidean') + Y_pred = cross_val_predict(model, X, Y, cv=kfold) + accuracies = [] + for i in range(len(Y_pred)): + accuracies.append(metrics.accuracy_score([Y[i]], [Y_pred[i]])) + return numpy.asarray(accuracies) + +def classifySVM(X, Y, kfold=5): + model = svm.SVC(kernel='linear') + Y_pred = cross_val_predict(model, X, Y, cv=kfold) + accuracies = [] + for i in range(len(Y_pred)): + accuracies.append(metrics.accuracy_score([Y[i]], [Y_pred[i]])) + return numpy.asarray(accuracies) + +def classifyLDA(X, Y, kfold=5): + model = LDA(n_components=20) + Y_pred = cross_val_predict(model, X, Y, cv=kfold) + accuracies = [] + for i in range(len(Y_pred)): + accuracies.append(metrics.accuracy_score([Y[i]], [Y_pred[i]])) + return numpy.asarray(accuracies) + +def classifyNB(X, Y, kfold=5): + model = GaussianNB() + Y_pred = cross_val_predict(model, X, Y, cv=kfold) + accuracies = [] + for i in range(len(Y_pred)): + accuracies.append(metrics.accuracy_score([Y[i]], [Y_pred[i]])) + return numpy.asarray(accuracies) +