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)
+