view util/classifiers.py @ 1:c4ef4a02fc19

core functions
author Maria Panteli
date Mon, 01 Aug 2016 21:10:31 -0400
parents
children
line wrap: on
line source
# -*- 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)