annotate 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
rev   line source
Maria@6 1 # -*- coding: utf-8 -*-
Maria@6 2 """
Maria@6 3 Created on Mon Oct 5 14:59:39 2015
Maria@6 4
Maria@6 5 @author: mariapanteli
Maria@6 6 """
Maria@6 7 """Selection of classifiers"""
Maria@6 8
Maria@6 9 import numpy
Maria@6 10
Maria@6 11 from sklearn.neighbors import KNeighborsClassifier
Maria@6 12 from sklearn.naive_bayes import GaussianNB
Maria@6 13 from sklearn.cross_validation import cross_val_predict
Maria@6 14 from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
Maria@6 15 from sklearn import svm
Maria@6 16 from sklearn import metrics
Maria@6 17
Maria@6 18 def classifyKNN(X, Y, nn=1, kfold=5):
Maria@6 19 model = KNeighborsClassifier(n_neighbors=nn, metric='euclidean')
Maria@6 20 Y_pred = cross_val_predict(model, X, Y, cv=kfold)
Maria@6 21 accuracies = []
Maria@6 22 for i in range(len(Y_pred)):
Maria@6 23 accuracies.append(metrics.accuracy_score([Y[i]], [Y_pred[i]]))
Maria@6 24 return numpy.asarray(accuracies)
Maria@6 25
Maria@6 26 def classifySVM(X, Y, kfold=5):
Maria@6 27 model = svm.SVC(kernel='linear')
Maria@6 28 Y_pred = cross_val_predict(model, X, Y, cv=kfold)
Maria@6 29 accuracies = []
Maria@6 30 for i in range(len(Y_pred)):
Maria@6 31 accuracies.append(metrics.accuracy_score([Y[i]], [Y_pred[i]]))
Maria@6 32 return numpy.asarray(accuracies)
Maria@6 33
Maria@6 34 def classifyLDA(X, Y, kfold=5):
Maria@6 35 model = LDA(n_components=20)
Maria@6 36 Y_pred = cross_val_predict(model, X, Y, cv=kfold)
Maria@6 37 accuracies = []
Maria@6 38 for i in range(len(Y_pred)):
Maria@6 39 accuracies.append(metrics.accuracy_score([Y[i]], [Y_pred[i]]))
Maria@6 40 return numpy.asarray(accuracies)
Maria@6 41
Maria@6 42 def classifyNB(X, Y, kfold=5):
Maria@6 43 model = GaussianNB()
Maria@6 44 Y_pred = cross_val_predict(model, X, Y, cv=kfold)
Maria@6 45 accuracies = []
Maria@6 46 for i in range(len(Y_pred)):
Maria@6 47 accuracies.append(metrics.accuracy_score([Y[i]], [Y_pred[i]]))
Maria@6 48 return numpy.asarray(accuracies)
Maria@6 49