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