Tic-Tac-Toe Dataset


In [4]:
from sklearn import svm
from sklearn import cross_validation as cv
import pandas as pd

plt.style.use('ggplot')

from kcat.datasets import TicTacToe
from kcat.kernels import helpers as kh
from kcat.kernels import search as ks
from kcat.utils import get_pgen

Loading the dataset


In [5]:
# Load the dataset
dataset = TicTacToe()

In [6]:
data = {'Kernel': [], 'Test Error': []}
for i in range(5):
    print("Iteration {}".format(i))
    # Split train and test
    X_train, X_test, y_train, y_test = dataset.train_test_split(test_size=0.33, random_state=i)
    # Cross-validation
    cvf = cv.StratifiedKFold(y_train, 10)
    # Evaluate models
    for model_class in kh.RBF, kh.K0, kh.K1, kh.M3, kh.M4, kh.M5, kh.M6, kh.M7, kh.M9, kh.MC, kh.MD, kh.ME:
        model = model_class()
        print(model.name, end=', ')
        best_fit = model.train(cvf, X_train, y_train)
        results = model.test(best_fit, X_test, y_test)
        data['Kernel'].append(model.name)
        data['Test Error'].append(1 - results['test_score'])
    print()


Iteration 0
RBF, K0, K1, M3, M4, M5, M6, M7, M9, MC, MD, ME, 
Iteration 1
RBF, K0, K1, M3, M4, M5, M6, M7, M9, MC, MD, ME, 
Iteration 2
RBF, K0, K1, M3, M4, M5, M6, M7, M9, MC, MD, ME, 
Iteration 3
RBF, K0, K1, M3, M4, M5, M6, M7, M9, MC, MD, ME, 
Iteration 4
RBF, K0, K1, M3, M4, M5, M6, M7, M9, MC, MD, ME, 

In [7]:
df = pd.DataFrame(data=data)
df.groupby('Kernel')['Test Error'].mean()


Out[7]:
Kernel
K0        0.006309
K1        0.010726
M3        0.010095
M4        0.005678
M5        0.013249
M6        0.010095
M7        0.005678
M9        0.005047
MC        0.005678
MD        0.009464
ME        0.005047
RBF       0.015142
Name: Test Error, dtype: float64

In [8]:
df.boxplot(by='Kernel');



In [8]: