In [1]:
%matplotlib inline

In [2]:
import matplotlib.pyplot as plt

def plot_confusion_matrix(cm, title='Confusion matrix', normalized=True, cmap=plt.cm.Oranges):
    if normalized:
        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
    plt.imshow(cm, interpolation='nearest', cmap=cmap)
    plt.title(title)
    plt.colorbar()
    tick_marks = np.arange(len(iris.target_names))
    plt.xticks(tick_marks, iris.target_names, rotation=45)
    plt.yticks(tick_marks, iris.target_names)
    plt.tight_layout()
    plt.ylabel('True label')
    plt.xlabel('Predicted label')

In [3]:
import sys
sys.path.append('/home/afruizc/Documents/hacks/')

import svm_bow


hello

In [4]:
from sklearn.cross_validation import KFold
from sklearn.metrics import confusion_matrix

e = svm_bow.Executor()
e.load_data()
e.config_model()

In [7]:
fold = KFold(len(e.train['data']), n_folds=10)
import numpy as np
e.train['data'] = np.array(e.train['data'])
e.train['target'] = np.array(e.train['target'])
def get_indices(data, indices):
    result = []
    for i in indices:
        result.append(data[i])
        
    return result
conf_mat_avg = np.zeros((9, 9))
c = 0
for train, test in fold:
    X_train = get_indices(e.train['data'], train)
    X_test = get_indices(e.train['data'], test)
    y_train = get_indices(e.train['target'], train)
    y_test = get_indices(e.train['target'], test)
    c += 1
    print("Fitting run {}.".format(c))
    model = e.param_tunning.fit(X_train, y_train)
    print("Predicting...")
    y_pred = model.predict(X_test)
    conf_matrix = confusion_matrix(y_test, y_pred)
    print("Confusion matrix:")
    print(conf_matrix)
    conf_mat_avg += conf_matrix

In [ ]:
plot_confusion_matrix(conf_mat_avg / 10.0)

In [ ]: