commit f23034e381f1eb9c377421e16766344706a71b04 Author: François Pelletier Date: Sat Mar 16 17:50:53 2019 -0400 ajout code KNN tran fonctionnel diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a04ba19 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +Code/__pycache__/ +*.pdf + diff --git a/Code/BayesNaif.py b/Code/BayesNaif.py new file mode 100644 index 0000000..1e0b15b --- /dev/null +++ b/Code/BayesNaif.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -* +""" +Vous allez definir une classe pour chaque algorithme que vous allez développer, +votre classe doit contenit au moins les 3 methodes definies ici bas, + * train : pour entrainer le modèle sur l'ensemble d'entrainement + * predict : pour prédire la classe d'un exemple donné + * test : pour tester sur l'ensemble de test +vous pouvez rajouter d'autres méthodes qui peuvent vous etre utiles, mais moi +je vais avoir besoin de tester les méthodes test, predict et test de votre code. +""" + +import numpy as np + + +# le nom de votre classe +# BayesNaif pour le modèle bayesien naif +# Knn pour le modèle des k plus proches voisins + +class BayesNaif: #nom de la class à changer + + def __init__(self, **kwargs): + """ + c'est un Initializer. + Vous pouvez passer d'autre paramètres au besoin, + c'est à vous d'utiliser vos propres notations + """ + + + def train(self, train, train_labels): #vous pouvez rajouter d'autres attribus au besoin + """ + c'est la méthode qui va entrainer votre modèle, + train est une matrice de type Numpy et de taille nxm, avec + n : le nombre d'exemple d'entrainement dans le dataset + m : le mobre d'attribus (le nombre de caractéristiques) + + train_labels : est une matrice numpy de taille nx1 + + vous pouvez rajouter d'autres arguments, il suffit juste de + les expliquer en commentaire + + + + ------------ + Après avoir fait l'entrainement, faites maintenant le test sur + les données d'entrainement + IMPORTANT : + Vous devez afficher ici avec la commande print() de python, + - la matrice de confision (confusion matrix) + - l'accuracy + - la précision (precision) + - le rappel (recall) + + Bien entendu ces tests doivent etre faits sur les données d'entrainement + nous allons faire d'autres tests sur les données de test dans la méthode test() + """ + + def predict(self, exemple, label): + """ + Prédire la classe d'un exemple donné en entrée + exemple est de taille 1xm + + si la valeur retournée est la meme que la veleur dans label + alors l'exemple est bien classifié, si non c'est une missclassification + + """ + + def test(self, test, test_labels): + """ + c'est la méthode qui va tester votre modèle sur les données de test + l'argument test est une matrice de type Numpy et de taille nxm, avec + n : le nombre d'exemple de test dans le dataset + m : le mobre d'attribus (le nombre de caractéristiques) + + test_labels : est une matrice numpy de taille nx1 + + vous pouvez rajouter d'autres arguments, il suffit juste de + les expliquer en commentaire + + Faites le test sur les données de test, et afficher : + - la matrice de confision (confusion matrix) + - l'accuracy + - la précision (precision) + - le rappel (recall) + + Bien entendu ces tests doivent etre faits sur les données de test seulement + + """ + + + # Vous pouvez rajouter d'autres méthodes et fonctions, + # il suffit juste de les commenter. diff --git a/Code/Knn.py b/Code/Knn.py new file mode 100644 index 0000000..d63f8f5 --- /dev/null +++ b/Code/Knn.py @@ -0,0 +1,186 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -* +""" +Vous allez definir une classe pour chaque algorithme que vous allez développer, +votre classe doit contenit au moins les 3 methodes definies ici bas, + * train : pour entrainer le modèle sur l'ensemble d'entrainement + * predict : pour prédire la classe d'un exemple donné + * test : pour tester sur l'ensemble de test +vous pouvez rajouter d'autres méthodes qui peuvent vous etre utiles, mais moi +je vais avoir besoin de tester les méthodes test, predict et test de votre code. +""" + +import numpy as np + +def minkowski_distance(x,y,p_value): + return pow(sum(pow(abs(a-b),p_value) for a,b in zip(x, y)),1/p_value) + +def mode(a): + u, c = np.unique(a, return_counts=True) + return u[c.argmax()] + +# le nom de votre classe +# BayesNaif pour le modèle bayesien naif +# Knn pour le modèle des k plus proches voisins + +class Knn: #nom de la class à changer + + def __init__(self, **kwargs): + """ + c'est un Initializer. + Vous pouvez passer d'autre paramètres au besoin, + c'est à vous d'utiliser vos propres notations + """ + self.k=5 + + + def train(self, train, train_labels): #vous pouvez rajouter d'autres attribus au besoin + """ + c'est la méthode qui va entrainer votre modèle, + train est une matrice de type Numpy et de taille nxm, avec + n : le nombre d'exemple d'entrainement dans le dataset + m : le mobre d'attribus (le nombre de caractéristiques) + + train_labels : est une matrice numpy de taille nx1 + + vous pouvez rajouter d'autres arguments, il suffit juste de + les expliquer en commentaire + + + + ------------ + Après avoir fait l'entrainement, faites maintenant le test sur + les données d'entrainement + IMPORTANT : + Vous devez afficher ici avec la commande print() de python, + - la matrice de confision (confusion matrix) + - l'accuracy + - la précision (precision) + - le rappel (recall) + + Bien entendu ces tests doivent etre faits sur les données d'entrainement + nous allons faire d'autres tests sur les données de test dans la méthode test() + """ + + # on fait seulement utiliser les données du jeu d'entrainement comme paramètre d'un modèle Knn + self.train=train + self.train_labels=train_labels + + n,m = train.shape + p=m + nn=np.empty((n,self.k,2)) + + # On trouve les k plus proches voisins et leur distance pour chacunes des observations du training set + # On enlève la valeur testée de la liste des points pour lesquels on mesure la distance car on sait qu'elle vaut 0. + # On veut tester sur les autres points seulement + for x in range(n): + i_range = [i for i in range(n)] + i_range.pop(x) + nn[x,:,0]=i_range[0:self.k] + nn[x,:,1]=np.apply_along_axis(minkowski_distance,1,self.train[i_range[0:self.k]],train[x],p) + for i in i_range[self.k:n]: + dist = minkowski_distance(self.train[i],train[x],p) + nn_dist=nn[x,:,1] + distdiff = nn_dist-dist + max_distdiff=max(distdiff) + if(max_distdiff>0): + pos_changement = np.argwhere(nn_dist==max(nn_dist))[0] + nn[x,pos_changement,0]=i + nn[x,pos_changement,1]=max_distdiff + # on retrouve le label modal pour chacunes des observations + nn_labels = self.train_labels[nn[:,:,0].astype(np.int)] + nn_mode_label = np.apply_along_axis(mode,1,nn_labels) + + # on construit la matrice de confusion + cm = self.confusion_matrix(train_labels,nn_mode_label) + accuracy, precision, recall = self.prediction_metrics(cm,train_labels,nn_mode_label) + self.print_prediction_metrics(cm,accuracy,precision,recall) + + return cm,accuracy,precision,recall + + + def predict(self, exemple, label): + """ + Prédire la classe d'un exemple donné en entrée + exemple est de taille 1xm + + si la valeur retournée est la meme que la veleur dans label + alors l'exemple est bien classifié, si non c'est une missclassification + + """ + + + + + def test(self, test, test_labels): + """ + c'est la méthode qui va tester votre modèle sur les données de test + l'argument test est une matrice de type Numpy et de taille nxm, avec + n : le nombre d'exemple de test dans le dataset + m : le mobre d'attribus (le nombre de caractéristiques) + + test_labels : est une matrice numpy de taille nx1 + + vous pouvez rajouter d'autres arguments, il suffit juste de + les expliquer en commentaire + + Faites le test sur les données de test, et afficher : + - la matrice de confision (confusion matrix) + - l'accuracy + - la précision (precision) + - le rappel (recall) + + Bien entendu ces tests doivent etre faits sur les données de test seulement + + """ + + def confusion_matrix(self,obs_labels,pred_labels): + """ + Retourne la matrice de confusion + Prend en entrée deux vecteurs d'étiquettes: observations et prédictions + Retourne une matrice NumPy + """ + unique_obs_labels=np.unique(obs_labels) + unique_pred_labels=np.unique(pred_labels) + nb_unique_obs_labels=(unique_obs_labels.shape)[0] + nb_unique_pred_labels=(unique_pred_labels.shape)[0] + + confusion_matrix = np.zeros((nb_unique_obs_labels,nb_unique_pred_labels)) + + for observed,predicted in zip(obs_labels,pred_labels): + confusion_matrix[observed][predicted] += 1 + return confusion_matrix + + def prediction_metrics(self,cm,obs_labels,pred_labels): + """ + Cette fonction retourne les métriques accuracy, precision et recall + Elle prend en entrée la matrice de confusion et les vecteurs d'étiquettes: observations et prédictions + accuracy=(tp+tn)/all + precision=tp/(tp+fp) + recall=tp/(tp+fn) + """ + + accuracy = (obs_labels == pred_labels).sum() / float(len(obs_labels)) + precision=[] + recall=[] + for label_num in np.unique(obs_labels): + precision.append(cm[label_num,label_num] / sum(cm[:,label_num])) + recall.append(cm[label_num,label_num] / sum(cm[label_num,:])) + + return accuracy, precision, recall + + def print_prediction_metrics(self,cm,accuracy,precision,recall): + """ + Cette fonction imprime la matrice de confusion et les métriques + """ + print("Matrice de confusion:") + print(cm) + print("\nAccuracy:") + print(accuracy) + print("\nPrecision:") + print(precision) + print("\nRecall") + print(recall) + + # Vous pouvez rajouter d'autres méthodes et fonctions, + # il suffit juste de les commenter. diff --git a/Code/classifieur.py b/Code/classifieur.py new file mode 100644 index 0000000..cb440e4 --- /dev/null +++ b/Code/classifieur.py @@ -0,0 +1,90 @@ +""" +Vous allez definir une classe pour chaque algorithme que vous allez développer, +votre classe doit contenit au moins les 3 methodes definies ici bas, + * train : pour entrainer le modèle sur l'ensemble d'entrainement + * predict : pour prédire la classe d'un exemple donné + * test : pour tester sur l'ensemble de test +vous pouvez rajouter d'autres méthodes qui peuvent vous etre utiles, mais moi +je vais avoir besoin de tester les méthodes test, predict et test de votre code. +""" + +import numpy as np + + +# le nom de votre classe +# BayesNaif pour le modèle bayesien naif +# Knn pour le modèle des k plus proches voisins + +class Classifier: #nom de la class à changer + + def __init__(self, **kwargs): + """ + c'est un Initializer. + Vous pouvez passer d'autre paramètres au besoin, + c'est à vous d'utiliser vos propres notations + """ + + + def train(self, train, train_labels): #vous pouvez rajouter d'autres attribus au besoin + """ + c'est la méthode qui va entrainer votre modèle, + train est une matrice de type Numpy et de taille nxm, avec + n : le nombre d'exemple d'entrainement dans le dataset + m : le mobre d'attribus (le nombre de caractéristiques) + + train_labels : est une matrice numpy de taille nx1 + + vous pouvez rajouter d'autres arguments, il suffit juste de + les expliquer en commentaire + + + + ------------ + Après avoir fait l'entrainement, faites maintenant le test sur + les données d'entrainement + IMPORTANT : + Vous devez afficher ici avec la commande print() de python, + - la matrice de confision (confusion matrix) + - l'accuracy + - la précision (precision) + - le rappel (recall) + + Bien entendu ces tests doivent etre faits sur les données d'entrainement + nous allons faire d'autres tests sur les données de test dans la méthode test() + """ + + def predict(self, exemple, label): + """ + Prédire la classe d'un exemple donné en entrée + exemple est de taille 1xm + + si la valeur retournée est la meme que la veleur dans label + alors l'exemple est bien classifié, si non c'est une missclassification + + """ + + def test(self, test, test_labels): + """ + c'est la méthode qui va tester votre modèle sur les données de test + l'argument test est une matrice de type Numpy et de taille nxm, avec + n : le nombre d'exemple de test dans le dataset + m : le mobre d'attribus (le nombre de caractéristiques) + + test_labels : est une matrice numpy de taille nx1 + + vous pouvez rajouter d'autres arguments, il suffit juste de + les expliquer en commentaire + + Faites le test sur les données de test, et afficher : + - la matrice de confision (confusion matrix) + - l'accuracy + - la précision (precision) + - le rappel (recall) + + Bien entendu ces tests doivent etre faits sur les données de test seulement + + """ + + + # Vous pouvez rajouter d'autres méthodes et fonctions, + # il suffit juste de les commenter. diff --git a/Code/datasets/bezdekIris.data b/Code/datasets/bezdekIris.data new file mode 100644 index 0000000..d4ee8db --- /dev/null +++ b/Code/datasets/bezdekIris.data @@ -0,0 +1,151 @@ +5.1,3.5,1.4,0.2,Iris-setosa +4.9,3.0,1.4,0.2,Iris-setosa +4.7,3.2,1.3,0.2,Iris-setosa +4.6,3.1,1.5,0.2,Iris-setosa +5.0,3.6,1.4,0.2,Iris-setosa +5.4,3.9,1.7,0.4,Iris-setosa +4.6,3.4,1.4,0.3,Iris-setosa +5.0,3.4,1.5,0.2,Iris-setosa +4.4,2.9,1.4,0.2,Iris-setosa +4.9,3.1,1.5,0.1,Iris-setosa +5.4,3.7,1.5,0.2,Iris-setosa +4.8,3.4,1.6,0.2,Iris-setosa +4.8,3.0,1.4,0.1,Iris-setosa +4.3,3.0,1.1,0.1,Iris-setosa +5.8,4.0,1.2,0.2,Iris-setosa +5.7,4.4,1.5,0.4,Iris-setosa +5.4,3.9,1.3,0.4,Iris-setosa +5.1,3.5,1.4,0.3,Iris-setosa +5.7,3.8,1.7,0.3,Iris-setosa +5.1,3.8,1.5,0.3,Iris-setosa +5.4,3.4,1.7,0.2,Iris-setosa +5.1,3.7,1.5,0.4,Iris-setosa +4.6,3.6,1.0,0.2,Iris-setosa +5.1,3.3,1.7,0.5,Iris-setosa +4.8,3.4,1.9,0.2,Iris-setosa +5.0,3.0,1.6,0.2,Iris-setosa +5.0,3.4,1.6,0.4,Iris-setosa +5.2,3.5,1.5,0.2,Iris-setosa +5.2,3.4,1.4,0.2,Iris-setosa +4.7,3.2,1.6,0.2,Iris-setosa +4.8,3.1,1.6,0.2,Iris-setosa +5.4,3.4,1.5,0.4,Iris-setosa +5.2,4.1,1.5,0.1,Iris-setosa +5.5,4.2,1.4,0.2,Iris-setosa +4.9,3.1,1.5,0.2,Iris-setosa +5.0,3.2,1.2,0.2,Iris-setosa +5.5,3.5,1.3,0.2,Iris-setosa +4.9,3.6,1.4,0.1,Iris-setosa +4.4,3.0,1.3,0.2,Iris-setosa +5.1,3.4,1.5,0.2,Iris-setosa +5.0,3.5,1.3,0.3,Iris-setosa +4.5,2.3,1.3,0.3,Iris-setosa +4.4,3.2,1.3,0.2,Iris-setosa +5.0,3.5,1.6,0.6,Iris-setosa +5.1,3.8,1.9,0.4,Iris-setosa +4.8,3.0,1.4,0.3,Iris-setosa +5.1,3.8,1.6,0.2,Iris-setosa +4.6,3.2,1.4,0.2,Iris-setosa +5.3,3.7,1.5,0.2,Iris-setosa +5.0,3.3,1.4,0.2,Iris-setosa +7.0,3.2,4.7,1.4,Iris-versicolor +6.4,3.2,4.5,1.5,Iris-versicolor +6.9,3.1,4.9,1.5,Iris-versicolor +5.5,2.3,4.0,1.3,Iris-versicolor +6.5,2.8,4.6,1.5,Iris-versicolor +5.7,2.8,4.5,1.3,Iris-versicolor +6.3,3.3,4.7,1.6,Iris-versicolor +4.9,2.4,3.3,1.0,Iris-versicolor +6.6,2.9,4.6,1.3,Iris-versicolor +5.2,2.7,3.9,1.4,Iris-versicolor +5.0,2.0,3.5,1.0,Iris-versicolor +5.9,3.0,4.2,1.5,Iris-versicolor +6.0,2.2,4.0,1.0,Iris-versicolor +6.1,2.9,4.7,1.4,Iris-versicolor +5.6,2.9,3.6,1.3,Iris-versicolor +6.7,3.1,4.4,1.4,Iris-versicolor +5.6,3.0,4.5,1.5,Iris-versicolor +5.8,2.7,4.1,1.0,Iris-versicolor +6.2,2.2,4.5,1.5,Iris-versicolor +5.6,2.5,3.9,1.1,Iris-versicolor +5.9,3.2,4.8,1.8,Iris-versicolor +6.1,2.8,4.0,1.3,Iris-versicolor +6.3,2.5,4.9,1.5,Iris-versicolor +6.1,2.8,4.7,1.2,Iris-versicolor +6.4,2.9,4.3,1.3,Iris-versicolor +6.6,3.0,4.4,1.4,Iris-versicolor +6.8,2.8,4.8,1.4,Iris-versicolor +6.7,3.0,5.0,1.7,Iris-versicolor +6.0,2.9,4.5,1.5,Iris-versicolor +5.7,2.6,3.5,1.0,Iris-versicolor +5.5,2.4,3.8,1.1,Iris-versicolor +5.5,2.4,3.7,1.0,Iris-versicolor +5.8,2.7,3.9,1.2,Iris-versicolor +6.0,2.7,5.1,1.6,Iris-versicolor +5.4,3.0,4.5,1.5,Iris-versicolor +6.0,3.4,4.5,1.6,Iris-versicolor +6.7,3.1,4.7,1.5,Iris-versicolor +6.3,2.3,4.4,1.3,Iris-versicolor +5.6,3.0,4.1,1.3,Iris-versicolor +5.5,2.5,4.0,1.3,Iris-versicolor +5.5,2.6,4.4,1.2,Iris-versicolor +6.1,3.0,4.6,1.4,Iris-versicolor +5.8,2.6,4.0,1.2,Iris-versicolor +5.0,2.3,3.3,1.0,Iris-versicolor +5.6,2.7,4.2,1.3,Iris-versicolor +5.7,3.0,4.2,1.2,Iris-versicolor +5.7,2.9,4.2,1.3,Iris-versicolor +6.2,2.9,4.3,1.3,Iris-versicolor +5.1,2.5,3.0,1.1,Iris-versicolor +5.7,2.8,4.1,1.3,Iris-versicolor +6.3,3.3,6.0,2.5,Iris-virginica +5.8,2.7,5.1,1.9,Iris-virginica +7.1,3.0,5.9,2.1,Iris-virginica +6.3,2.9,5.6,1.8,Iris-virginica +6.5,3.0,5.8,2.2,Iris-virginica +7.6,3.0,6.6,2.1,Iris-virginica +4.9,2.5,4.5,1.7,Iris-virginica +7.3,2.9,6.3,1.8,Iris-virginica +6.7,2.5,5.8,1.8,Iris-virginica +7.2,3.6,6.1,2.5,Iris-virginica +6.5,3.2,5.1,2.0,Iris-virginica +6.4,2.7,5.3,1.9,Iris-virginica +6.8,3.0,5.5,2.1,Iris-virginica +5.7,2.5,5.0,2.0,Iris-virginica +5.8,2.8,5.1,2.4,Iris-virginica +6.4,3.2,5.3,2.3,Iris-virginica +6.5,3.0,5.5,1.8,Iris-virginica +7.7,3.8,6.7,2.2,Iris-virginica +7.7,2.6,6.9,2.3,Iris-virginica +6.0,2.2,5.0,1.5,Iris-virginica +6.9,3.2,5.7,2.3,Iris-virginica +5.6,2.8,4.9,2.0,Iris-virginica +7.7,2.8,6.7,2.0,Iris-virginica +6.3,2.7,4.9,1.8,Iris-virginica +6.7,3.3,5.7,2.1,Iris-virginica +7.2,3.2,6.0,1.8,Iris-virginica +6.2,2.8,4.8,1.8,Iris-virginica +6.1,3.0,4.9,1.8,Iris-virginica +6.4,2.8,5.6,2.1,Iris-virginica +7.2,3.0,5.8,1.6,Iris-virginica +7.4,2.8,6.1,1.9,Iris-virginica +7.9,3.8,6.4,2.0,Iris-virginica +6.4,2.8,5.6,2.2,Iris-virginica +6.3,2.8,5.1,1.5,Iris-virginica +6.1,2.6,5.6,1.4,Iris-virginica +7.7,3.0,6.1,2.3,Iris-virginica +6.3,3.4,5.6,2.4,Iris-virginica +6.4,3.1,5.5,1.8,Iris-virginica +6.0,3.0,4.8,1.8,Iris-virginica +6.9,3.1,5.4,2.1,Iris-virginica +6.7,3.1,5.6,2.4,Iris-virginica +6.9,3.1,5.1,2.3,Iris-virginica +5.8,2.7,5.1,1.9,Iris-virginica +6.8,3.2,5.9,2.3,Iris-virginica +6.7,3.3,5.7,2.5,Iris-virginica +6.7,3.0,5.2,2.3,Iris-virginica +6.3,2.5,5.0,1.9,Iris-virginica +6.5,3.0,5.2,2.0,Iris-virginica +6.2,3.4,5.4,2.3,Iris-virginica +5.9,3.0,5.1,1.8,Iris-virginica + diff --git a/Code/datasets/house-votes-84.data b/Code/datasets/house-votes-84.data new file mode 100644 index 0000000..ede5175 --- /dev/null +++ b/Code/datasets/house-votes-84.data @@ -0,0 +1,435 @@ +republican,n,y,n,y,y,y,n,n,n,y,?,y,y,y,n,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,? +democrat,?,y,y,?,y,y,n,n,n,n,y,n,y,y,n,n +democrat,n,y,y,n,?,y,n,n,n,n,y,n,y,n,n,y +democrat,y,y,y,n,y,y,n,n,n,n,y,?,y,y,y,y +democrat,n,y,y,n,y,y,n,n,n,n,n,n,y,y,y,y +democrat,n,y,n,y,y,y,n,n,n,n,n,n,?,y,y,y +republican,n,y,n,y,y,y,n,n,n,n,n,n,y,y,?,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,y +democrat,y,y,y,n,n,n,y,y,y,n,n,n,n,n,?,? +republican,n,y,n,y,y,n,n,n,n,n,?,?,y,y,n,n +republican,n,y,n,y,y,y,n,n,n,n,y,?,y,y,?,? +democrat,n,y,y,n,n,n,y,y,y,n,n,n,y,n,?,? +democrat,y,y,y,n,n,y,y,y,?,y,y,?,n,n,y,? +republican,n,y,n,y,y,y,n,n,n,n,n,y,?,?,n,? +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,?,n,? +democrat,y,n,y,n,n,y,n,y,?,y,y,y,?,n,n,y +democrat,y,?,y,n,n,n,y,y,y,n,n,n,y,n,y,y +republican,n,y,n,y,y,y,n,n,n,n,n,?,y,y,n,n +democrat,y,y,y,n,n,n,y,y,y,n,y,n,n,n,y,y +democrat,y,y,y,n,n,?,y,y,n,n,y,n,n,n,y,y +democrat,y,y,y,n,n,n,y,y,y,n,n,n,?,?,y,y +democrat,y,?,y,n,n,n,y,y,y,n,n,?,n,n,y,y +democrat,y,y,y,n,n,n,y,y,y,n,n,n,n,n,y,y +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,y,n,y,n,n,n,y,y,y,y,n,n,n,n,y,y +democrat,y,n,y,n,n,n,y,y,y,n,y,n,n,n,y,y +democrat,y,y,y,n,n,n,y,y,y,n,y,n,n,n,y,y +republican,y,n,n,y,y,n,y,y,y,n,n,y,y,y,n,y +democrat,y,y,y,n,n,n,y,y,y,n,y,n,n,n,y,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,n +democrat,y,y,y,n,n,n,y,y,y,n,y,n,n,n,y,? +democrat,y,y,y,n,n,n,y,y,y,y,n,n,y,n,y,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,y +democrat,y,y,y,n,n,n,y,y,y,n,n,n,n,n,y,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,n +republican,y,?,n,y,y,y,n,n,n,y,n,y,?,y,n,y +republican,y,y,n,y,y,y,n,n,n,n,n,n,y,y,n,y +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,y,n,n +democrat,y,n,y,n,n,n,y,y,y,y,y,n,y,n,y,y +democrat,y,y,y,n,n,n,y,y,y,n,?,n,n,n,n,? +democrat,y,y,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,n,y +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,y,y +democrat,y,y,y,n,n,n,y,y,y,n,y,n,n,n,n,? +democrat,y,y,y,n,n,n,y,y,?,n,y,n,n,n,y,? +democrat,y,y,y,n,n,n,y,y,y,n,n,n,n,n,n,y +democrat,y,n,y,n,n,n,y,y,?,n,n,n,n,n,n,? +democrat,y,y,y,n,n,n,y,y,n,n,n,n,n,y,n,y +republican,n,?,n,y,y,y,n,n,n,n,n,y,y,y,n,n +democrat,y,y,y,n,n,n,y,y,y,n,y,n,n,n,y,y +republican,n,y,n,y,y,y,n,?,n,n,n,y,y,y,n,y +democrat,y,y,y,n,n,n,y,y,y,n,n,n,n,n,?,? +republican,y,y,n,y,y,y,n,n,n,y,n,y,y,y,n,n +democrat,y,y,y,n,n,y,?,y,n,n,y,y,n,y,n,? +republican,n,y,n,y,y,y,n,n,n,y,y,y,y,y,n,n +republican,n,y,n,y,y,y,n,n,n,y,y,y,y,y,n,y +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,y,n,y +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,y,n,y +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,y,n,? +democrat,y,y,y,n,n,?,y,y,y,y,n,n,n,n,y,? +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,n +democrat,y,y,y,n,n,n,y,y,y,n,n,n,n,n,n,? +democrat,y,y,y,n,n,n,y,y,y,n,y,n,n,n,n,y +democrat,y,y,y,n,n,n,y,y,y,n,y,?,n,n,n,y +republican,y,y,n,y,y,y,y,n,n,n,n,y,y,y,n,y +republican,n,y,n,y,y,y,y,n,n,n,y,y,y,y,n,y +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,y,n,n +democrat,y,?,y,n,n,n,y,y,y,n,n,n,y,n,y,y +democrat,y,y,y,n,n,n,y,y,y,n,n,n,n,n,y,y +democrat,y,n,y,n,n,n,y,y,y,n,n,n,y,n,y,? +republican,y,y,y,y,n,n,y,y,y,y,y,n,n,y,n,y +democrat,y,y,y,n,n,n,y,y,y,n,y,n,n,n,y,? +republican,y,n,y,y,y,n,y,n,y,y,n,n,y,y,n,y +democrat,y,n,y,n,n,y,y,y,y,y,y,n,n,y,y,y +democrat,n,y,y,y,y,y,n,n,n,y,y,n,y,y,n,n +democrat,n,y,y,n,y,y,n,n,n,y,y,y,y,y,n,? +democrat,n,y,y,y,y,y,n,y,y,y,y,y,y,y,n,y +democrat,y,y,y,n,y,y,n,n,n,y,y,n,y,y,n,y +republican,n,n,n,y,y,n,n,n,n,y,n,y,y,y,n,n +democrat,y,n,y,n,n,y,y,y,y,y,n,y,n,y,n,? +democrat,y,n,y,n,n,n,y,y,?,y,y,y,n,y,n,y +republican,n,n,n,y,y,y,n,n,n,y,n,y,y,y,n,y +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,n +republican,n,?,n,y,y,y,n,n,n,y,n,y,y,y,n,n +democrat,n,n,y,n,y,y,n,n,n,y,y,y,y,y,n,y +republican,n,n,n,y,y,y,n,n,n,y,n,y,y,y,n,n +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,n +democrat,n,y,y,n,y,y,y,n,y,y,y,n,y,y,n,y +republican,n,n,n,y,y,y,n,n,n,y,n,?,y,y,n,? +democrat,y,n,y,n,n,n,y,y,y,y,n,n,n,n,y,y +democrat,y,n,y,n,n,n,y,y,y,y,y,n,n,n,y,y +democrat,y,y,y,n,n,n,y,y,n,y,y,n,n,?,y,y +democrat,y,n,y,n,n,n,y,n,y,y,y,n,n,n,y,y +democrat,y,n,y,n,y,y,n,n,n,n,n,n,n,n,n,y +democrat,y,n,y,n,y,y,n,?,?,n,y,?,?,?,y,y +democrat,n,n,?,n,y,y,n,n,n,n,y,y,y,y,n,y +democrat,y,n,n,n,y,y,y,n,n,y,y,n,n,y,n,y +democrat,y,y,y,n,n,y,y,y,y,y,n,n,n,n,n,y +republican,n,n,n,y,y,y,n,n,n,y,?,y,y,y,n,n +democrat,y,n,n,n,y,y,n,n,n,n,y,y,n,y,n,y +democrat,y,n,y,n,y,y,y,n,n,n,y,n,n,y,n,y +democrat,y,n,y,n,y,y,y,n,?,n,y,n,y,y,y,? +democrat,y,n,n,n,y,y,?,n,?,n,n,n,n,y,?,n +democrat,?,?,?,?,n,y,y,y,y,y,?,n,y,y,n,? +democrat,y,y,y,n,n,n,n,y,y,n,y,n,n,n,y,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,y +republican,n,?,?,?,?,?,?,?,?,?,?,?,?,y,?,? +democrat,y,?,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,y,?,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,n,n,y,n,n,n,y,y,y,y,n,n,n,n,y,y +republican,n,?,n,y,y,y,n,n,n,y,n,y,y,y,n,y +democrat,n,?,y,n,n,y,y,y,n,y,n,n,n,n,y,? +republican,n,?,n,y,y,y,n,n,n,y,n,y,y,y,n,n +democrat,y,?,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,n,?,y,n,?,?,y,y,y,y,?,?,n,n,y,y +democrat,y,n,y,n,n,n,y,y,y,n,y,n,n,n,y,y +republican,y,y,y,y,y,n,y,n,n,n,n,y,y,y,n,y +democrat,n,y,y,n,n,n,n,y,y,y,y,n,n,n,y,y +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,n +republican,n,?,?,y,y,y,n,n,n,y,n,y,y,y,?,y +republican,n,?,n,y,y,y,n,n,n,y,n,y,y,y,n,y +republican,n,n,n,y,y,y,n,n,n,y,n,y,n,y,n,y +republican,y,?,n,y,y,y,n,y,n,n,n,y,y,y,n,y +democrat,n,?,y,n,n,n,y,y,y,n,n,n,n,n,y,y +republican,n,?,n,y,y,y,n,n,n,y,n,y,y,y,n,y +republican,n,?,n,y,y,y,n,n,n,n,n,y,y,y,n,n +democrat,n,?,y,n,n,n,y,y,y,y,y,n,n,y,y,y +democrat,n,?,y,n,n,y,n,y,n,y,y,n,n,n,y,y +democrat,?,?,y,n,n,n,y,y,?,n,?,?,?,?,?,? +democrat,y,?,y,n,?,?,y,y,y,n,n,n,n,n,y,? +democrat,n,n,y,n,n,y,n,y,y,y,n,n,n,y,n,y +republican,n,n,n,y,y,y,n,n,n,y,n,y,y,y,n,? +republican,n,n,n,y,y,y,n,n,n,y,n,y,y,y,n,y +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,? +republican,n,n,n,y,y,y,n,n,n,y,n,y,y,y,n,n +republican,n,y,n,y,y,y,n,n,n,y,y,y,y,n,n,y +democrat,n,?,y,n,n,y,y,y,y,y,n,n,n,y,y,y +democrat,n,n,y,n,n,y,y,y,y,y,n,n,n,y,n,y +democrat,y,n,y,n,n,y,y,y,y,n,n,n,n,n,y,y +republican,n,n,n,y,n,n,y,y,y,y,n,n,y,y,n,y +republican,n,n,n,y,y,y,y,y,y,y,n,y,y,y,?,y +republican,n,n,n,y,y,y,y,y,y,y,n,y,y,y,n,y +democrat,?,y,n,n,n,n,y,y,y,y,y,n,n,y,y,y +democrat,n,?,n,n,n,y,y,y,y,y,n,n,n,y,n,? +democrat,n,n,y,n,n,y,y,y,y,y,n,n,n,y,?,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,y +democrat,n,n,n,n,n,n,y,y,y,y,n,y,y,y,y,y +republican,n,y,n,y,y,y,n,n,n,y,y,y,y,y,n,y +democrat,n,n,y,n,n,n,y,y,y,y,n,n,y,n,y,y +republican,y,y,n,y,y,y,n,n,n,y,n,y,y,y,n,y +democrat,y,y,?,y,y,y,n,n,y,n,y,?,y,y,n,n +democrat,n,y,y,n,n,y,n,y,y,y,y,n,y,n,y,y +democrat,n,n,y,n,n,y,y,y,y,y,y,n,y,y,n,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,n +republican,y,y,n,y,y,y,n,?,n,n,y,y,y,y,n,n +republican,y,y,n,y,y,y,y,n,n,n,n,y,y,y,n,n +democrat,n,y,y,n,n,y,n,y,y,n,y,n,?,?,?,? +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,y,n,n +democrat,n,y,y,n,?,y,y,y,y,y,y,n,n,?,n,? +democrat,n,y,n,n,y,y,n,n,n,n,n,y,y,y,y,y +democrat,n,n,n,n,y,y,y,n,n,n,n,y,y,y,n,y +democrat,n,y,y,n,y,y,y,n,n,n,y,y,y,y,n,y +republican,n,y,n,y,y,y,y,n,n,n,n,y,y,y,n,y +democrat,y,y,n,n,y,y,n,n,n,y,y,y,y,y,n,? +democrat,n,y,y,n,n,y,y,y,y,y,y,n,y,n,y,? +republican,y,n,y,y,y,y,y,y,n,y,n,y,n,y,y,y +republican,y,n,y,y,y,y,y,y,n,y,y,y,n,y,y,y +democrat,n,n,y,y,y,y,n,n,y,n,n,n,y,y,y,? +democrat,y,n,y,n,n,n,y,y,y,y,y,n,n,y,n,y +democrat,y,n,y,n,n,n,?,y,y,?,n,n,n,n,y,? +republican,n,?,n,y,y,y,n,n,n,y,n,y,y,y,n,y +democrat,n,y,y,n,n,n,y,y,y,y,n,n,?,n,y,y +democrat,n,n,n,n,y,y,n,n,n,y,y,y,y,y,n,y +democrat,y,?,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,n,y,y,n,n,n,y,y,y,y,n,n,n,n,y,y +republican,n,n,y,y,n,n,y,y,y,y,n,n,n,y,y,y +democrat,n,n,y,n,n,n,y,y,y,y,y,?,n,n,y,y +democrat,?,n,y,n,n,n,y,y,y,y,y,?,n,n,y,? +democrat,y,n,y,n,n,n,y,y,y,y,n,n,n,n,y,y +democrat,?,?,y,n,n,n,y,y,y,?,?,n,n,n,?,? +democrat,n,n,y,n,n,n,y,y,y,y,y,n,n,n,y,y +democrat,y,?,y,n,n,n,y,y,y,n,n,n,n,n,y,y +democrat,?,?,?,?,?,?,?,?,y,?,?,?,?,?,?,? +democrat,n,n,y,n,n,n,y,y,y,y,y,n,n,n,y,y +democrat,y,n,y,n,n,n,y,y,y,y,n,?,n,n,y,y +democrat,n,y,y,n,n,n,y,y,y,y,y,n,n,n,y,y +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,y,? +republican,y,?,n,y,y,y,y,y,n,n,n,y,?,y,?,? +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,y,y +republican,n,?,n,y,y,y,n,n,n,n,n,y,y,y,n,? +republican,n,y,n,y,y,y,n,?,n,y,n,y,y,y,n,? +democrat,n,n,n,n,n,y,y,y,y,n,y,n,n,y,y,y +democrat,n,n,y,n,n,n,y,y,y,n,n,n,n,n,y,y +democrat,n,n,y,n,n,y,y,?,y,y,y,n,n,n,y,y +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,? +democrat,n,n,y,n,n,y,y,y,y,n,y,y,n,y,y,? +republican,n,?,y,y,y,y,n,n,n,y,n,n,n,y,n,y +democrat,n,n,y,n,n,n,y,y,y,y,y,n,?,n,y,? +democrat,y,y,n,n,n,n,y,y,?,n,y,n,n,n,y,? +democrat,n,n,y,n,n,n,y,y,y,n,n,n,n,y,y,y +democrat,y,y,y,n,n,n,y,y,y,n,n,n,n,n,y,y +democrat,y,n,y,n,n,y,y,y,y,y,y,n,n,n,y,y +democrat,y,n,y,n,n,n,y,y,y,y,n,n,n,n,y,y +republican,n,n,y,y,y,y,y,n,n,n,n,y,y,y,n,y +democrat,n,n,y,n,n,y,y,y,y,y,n,y,n,n,n,y +republican,n,n,n,y,y,y,n,n,n,y,n,y,n,y,n,y +republican,y,?,n,y,y,y,y,n,n,y,n,y,y,y,n,y +democrat,n,n,y,n,n,n,y,y,y,n,n,?,n,n,y,y +democrat,y,y,y,n,n,n,y,y,y,y,y,n,n,n,n,y +democrat,n,n,y,n,n,y,y,y,y,n,n,n,n,n,y,y +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,y,n,y +democrat,n,n,y,n,n,n,y,y,y,n,y,n,n,n,y,y +democrat,n,y,y,n,n,y,n,y,y,n,y,n,y,n,y,y +republican,y,y,n,y,y,y,n,n,n,y,n,y,y,y,n,y +democrat,n,y,y,y,y,y,n,n,n,y,y,y,y,y,y,? +democrat,y,y,y,n,y,y,n,n,?,y,n,n,n,y,y,? +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,y,n,n +democrat,y,?,y,n,n,n,y,y,y,n,?,n,n,n,y,? +democrat,n,y,y,n,n,n,n,y,y,n,y,n,n,y,y,y +democrat,n,n,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,n,y,y,n,y,y,n,n,n,n,y,n,n,n,y,? +democrat,y,n,y,n,n,n,y,y,y,n,y,n,n,n,y,? +republican,n,n,n,y,y,n,n,n,n,n,n,y,y,y,n,y +republican,n,y,n,y,y,y,n,n,n,y,n,?,y,y,n,n +republican,n,?,n,y,y,y,n,n,n,n,n,y,y,y,n,y +democrat,n,n,y,n,n,y,y,y,y,n,y,n,n,y,y,y +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,?,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,?,n,y +republican,n,y,y,y,y,y,y,n,y,y,n,y,y,y,n,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,y +republican,n,y,n,y,y,y,n,n,y,y,n,y,y,y,n,y +democrat,n,y,y,n,n,n,y,y,n,n,y,n,n,n,y,? +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,y,n,y +democrat,n,n,y,n,n,y,y,y,y,y,n,y,n,y,y,? +republican,n,n,n,y,y,y,n,n,n,y,n,y,n,y,n,y +democrat,n,n,y,n,n,n,y,y,y,n,n,n,n,n,y,y +democrat,y,n,y,n,n,y,y,y,n,n,n,y,y,n,n,y +democrat,y,y,y,n,n,n,y,y,?,y,n,n,n,n,y,? +republican,n,n,n,y,y,y,y,n,n,y,n,n,n,y,y,y +republican,n,n,n,y,n,y,y,?,y,n,n,y,y,y,n,y +democrat,y,n,y,n,n,n,y,y,y,y,y,n,n,y,y,y +republican,n,n,n,n,y,y,y,n,n,n,n,?,n,y,y,y +democrat,n,y,y,n,n,n,y,y,?,y,n,n,y,n,y,y +democrat,y,n,y,n,n,n,n,y,y,y,n,n,n,n,y,y +democrat,y,n,y,n,n,n,y,y,y,y,y,n,n,n,y,y +democrat,n,n,y,n,y,n,y,y,y,n,n,n,n,y,?,y +republican,n,y,n,y,y,y,?,n,n,n,n,?,y,y,n,n +republican,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? +democrat,y,n,y,n,n,n,y,y,?,n,y,n,n,n,y,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,n +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,n +democrat,y,y,y,n,n,y,y,y,y,n,n,n,n,n,y,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,y +democrat,y,n,y,n,n,n,y,y,y,y,n,n,n,n,n,y +democrat,y,n,y,n,n,n,y,y,y,y,n,n,n,y,y,y +republican,n,n,n,y,y,n,n,n,n,n,n,y,n,y,n,n +republican,n,n,n,y,y,n,n,n,n,n,n,y,n,y,?,y +democrat,n,n,y,n,n,n,y,y,y,n,y,n,n,n,y,y +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,n,y +democrat,y,n,y,n,n,n,y,y,y,y,n,n,n,n,n,y +democrat,y,n,y,n,n,?,y,y,y,n,?,?,n,?,?,? +democrat,y,n,y,n,n,n,y,y,y,y,n,n,?,n,y,y +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,y,n,y,n,n,n,y,y,y,y,n,n,n,n,n,y +republican,n,n,n,y,y,y,n,n,n,y,n,y,n,y,n,y +republican,y,n,n,n,n,n,y,y,y,y,n,n,n,y,n,y +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,n,y +democrat,y,y,y,n,n,n,y,y,y,n,n,n,n,n,y,y +democrat,n,y,y,n,n,y,y,y,y,n,?,n,n,n,n,y +democrat,y,n,y,n,n,n,y,y,y,y,n,n,n,n,y,? +republican,n,n,n,y,y,n,y,y,n,y,n,y,y,y,?,y +republican,y,n,n,y,y,n,y,n,n,y,n,n,n,y,y,y +democrat,n,n,y,n,y,y,n,n,n,n,?,n,y,y,n,n +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,y,n +republican,n,n,y,y,y,y,y,y,n,y,n,n,n,y,n,y +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,y +republican,n,n,n,y,y,y,n,n,n,y,n,y,y,y,n,n +democrat,n,n,y,n,n,n,y,y,y,y,n,n,n,y,n,y +republican,y,n,y,y,y,y,y,y,n,n,n,n,n,y,n,? +republican,y,n,n,y,y,y,n,n,n,y,n,?,y,y,n,n +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,y +democrat,n,n,y,n,n,y,y,y,y,y,y,n,n,n,?,y +democrat,n,n,y,n,n,y,y,y,y,y,y,n,n,n,y,y +democrat,n,n,y,n,n,y,?,y,?,y,y,y,n,y,y,? +democrat,y,y,y,?,n,y,y,y,y,n,y,n,y,n,?,y +democrat,y,y,y,n,y,y,n,y,n,y,y,n,y,y,y,y +democrat,y,y,y,n,y,y,n,y,n,y,y,n,y,y,n,? +democrat,y,n,y,n,?,y,?,y,y,y,n,n,y,y,n,y +democrat,y,n,y,n,n,y,y,y,y,y,n,?,n,y,n,y +democrat,y,n,y,n,n,y,y,y,n,y,y,n,y,y,y,y +democrat,y,y,y,n,n,y,y,y,y,y,y,n,y,y,y,y +democrat,n,y,y,n,n,y,y,y,n,y,y,n,y,y,n,? +republican,n,y,n,y,y,y,?,?,n,y,n,y,?,?,?,? +republican,n,n,y,y,y,y,n,n,n,y,n,y,y,y,y,y +democrat,y,y,y,n,n,y,y,y,y,y,n,n,?,n,y,? +democrat,n,y,n,n,n,n,y,y,y,y,y,n,n,n,y,y +democrat,n,y,y,n,n,y,y,y,y,y,n,n,y,y,y,y +republican,n,n,n,y,y,n,y,y,y,y,n,y,y,y,n,y +democrat,n,n,?,n,n,y,y,y,y,n,n,n,n,n,y,y +republican,n,n,n,y,y,y,y,n,n,y,n,y,y,y,n,y +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,n +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,y,n,? +republican,n,n,n,y,y,y,n,n,n,y,n,y,y,y,n,n +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,n +democrat,y,n,y,n,n,y,y,y,y,n,n,n,n,y,n,? +republican,n,n,n,y,y,y,n,n,n,y,n,y,y,y,n,n +democrat,y,n,n,n,n,y,y,y,y,y,n,n,n,y,y,y +republican,n,n,n,y,y,y,n,n,n,y,n,y,y,y,y,n +democrat,n,n,y,n,n,y,y,y,y,y,n,n,y,n,n,y +democrat,y,y,y,n,n,n,y,y,y,y,n,n,n,n,y,y +republican,n,y,y,y,y,y,n,n,n,y,n,y,y,y,n,y +republican,n,y,n,y,y,y,y,y,n,n,y,y,y,y,y,y +republican,n,y,y,y,y,y,y,?,n,n,n,n,?,?,y,? +democrat,n,n,n,n,n,y,n,y,y,n,y,y,y,y,y,n +democrat,y,n,n,n,n,n,y,y,y,y,n,n,n,n,y,y +democrat,n,n,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,n,y,y,n,n,y,n,y,y,y,n,n,y,y,n,y +democrat,y,y,y,n,n,n,y,y,y,y,n,n,y,n,n,y +democrat,y,y,y,n,?,y,n,?,n,n,y,n,y,y,n,? +democrat,y,y,y,n,y,y,n,y,?,y,n,n,y,y,n,? +republican,n,y,n,y,y,y,n,n,n,n,y,y,y,y,n,n +democrat,n,y,n,n,y,y,n,n,?,n,n,y,y,y,n,y +democrat,y,y,n,y,n,n,y,y,y,n,y,n,n,y,n,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,y +democrat,y,y,y,n,n,n,y,y,y,n,y,n,n,n,n,y +democrat,y,?,y,n,n,y,y,y,y,y,n,n,n,n,y,? +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,y,n,n +democrat,y,?,y,n,n,n,y,y,y,n,n,n,n,n,y,? +democrat,y,n,y,n,n,n,y,y,y,n,y,n,n,n,y,? +democrat,n,n,y,n,n,n,y,y,y,n,n,n,n,n,y,y +democrat,n,y,y,n,n,y,y,y,?,n,y,y,n,n,y,y +republican,n,n,n,y,y,y,n,n,n,y,y,y,y,y,n,? +democrat,n,n,y,n,n,y,y,y,n,n,y,n,n,y,?,y +democrat,y,n,y,n,n,n,y,y,y,n,n,n,n,n,y,y +democrat,y,n,y,n,n,n,y,y,y,y,n,n,n,y,y,y +republican,y,n,n,y,y,y,n,n,n,n,y,y,y,y,n,n +republican,n,n,n,y,y,y,n,n,n,y,y,y,n,y,n,y +democrat,n,?,y,?,n,y,y,y,y,y,y,n,?,?,y,y +democrat,n,y,y,n,y,?,y,n,n,y,y,n,y,n,y,y +republican,n,n,n,y,y,n,y,n,y,y,n,n,n,y,n,y +democrat,n,n,y,n,n,n,y,y,y,y,y,n,n,n,y,y +republican,n,n,n,y,y,y,y,n,n,y,n,y,n,y,y,y +republican,n,n,n,y,y,y,n,n,n,y,n,y,y,y,n,y +republican,y,n,n,y,y,y,n,n,n,y,n,y,y,y,n,n +democrat,y,n,y,n,n,n,y,y,y,y,n,y,n,n,y,? +republican,n,y,y,y,y,y,y,y,y,n,n,y,y,y,n,y +democrat,n,y,n,n,n,y,y,n,y,n,y,n,n,n,y,y +republican,n,n,y,y,y,y,y,y,y,y,n,y,y,y,y,y +democrat,n,y,n,y,n,y,y,y,y,n,y,n,y,n,y,? +republican,n,n,y,y,y,y,y,n,n,y,y,y,y,y,n,y +democrat,n,y,y,n,n,y,y,y,y,y,n,?,n,n,y,y +republican,y,n,y,y,n,n,n,y,y,y,n,n,n,y,y,y +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,n +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,n +democrat,y,y,y,n,n,y,y,y,y,y,y,y,y,y,n,? +republican,n,n,n,y,y,y,n,n,n,y,?,y,y,y,n,y +democrat,y,n,y,n,n,y,y,y,y,y,n,n,y,n,n,y +democrat,y,n,y,n,y,y,y,n,y,y,n,n,y,y,n,? +democrat,y,y,y,n,n,y,y,y,y,y,y,y,y,n,n,y +republican,y,y,n,y,y,y,n,n,n,y,y,n,y,n,n,n +republican,y,y,n,y,y,y,n,n,n,n,y,n,y,y,n,y +democrat,n,y,n,n,y,y,n,n,n,y,y,n,y,y,n,n +democrat,y,n,y,n,n,n,y,y,n,y,y,n,n,n,n,? +democrat,y,y,y,n,y,y,y,y,n,y,y,n,n,n,y,? +democrat,n,y,y,n,n,y,y,y,n,y,n,n,n,n,y,y +republican,n,y,n,y,y,y,n,n,n,n,n,n,y,y,n,y +democrat,y,y,y,n,?,y,y,y,n,y,?,?,n,n,y,y +democrat,y,y,y,n,?,n,y,y,y,y,n,n,n,n,y,? +democrat,n,y,y,y,y,y,n,n,n,n,y,y,?,y,n,n +democrat,n,y,y,?,y,y,n,y,n,y,?,n,y,y,?,y +republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,y +democrat,n,y,n,y,y,y,n,n,n,n,y,y,n,y,n,n +democrat,y,?,y,n,n,n,y,y,y,n,y,n,n,n,y,y +republican,n,y,n,y,y,y,?,?,n,n,?,?,y,?,?,? +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,y +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,y +democrat,y,y,y,n,n,y,?,y,y,n,y,n,y,n,y,y +democrat,y,y,y,n,y,y,y,y,y,y,y,n,y,y,n,? +democrat,y,y,n,y,y,y,n,n,n,n,y,n,y,y,n,? +democrat,y,y,y,n,y,y,n,y,y,y,y,n,n,n,n,y +democrat,y,y,y,y,y,y,n,n,n,n,y,y,y,y,n,y +democrat,y,y,n,n,y,y,n,n,n,n,y,y,y,y,y,n +democrat,n,?,y,n,y,y,n,y,n,n,y,n,n,n,n,? +democrat,y,y,y,n,y,y,n,y,y,n,y,n,n,y,n,? +democrat,n,y,y,y,y,y,n,n,n,n,n,y,y,y,n,? +democrat,y,n,y,n,n,n,y,y,y,?,y,n,n,n,y,? +democrat,?,?,n,n,?,y,?,n,n,n,y,y,n,y,n,? +democrat,y,y,n,n,n,n,n,y,y,n,y,n,n,n,y,n +republican,y,y,n,y,y,y,n,n,n,n,y,y,y,y,n,y +republican,?,?,?,?,n,y,n,y,y,n,n,y,y,n,n,? +democrat,y,y,?,?,?,y,n,n,n,n,y,n,y,n,n,y +democrat,y,y,y,?,n,n,n,y,n,n,y,?,n,n,y,y +democrat,y,y,y,n,y,y,n,y,n,n,y,n,y,n,y,y +democrat,y,y,n,n,y,?,n,n,n,n,y,n,y,y,n,y +democrat,n,y,y,n,y,y,n,y,n,n,n,n,n,n,n,y +republican,n,y,n,y,?,y,n,n,n,y,n,y,y,y,n,n +republican,n,y,n,y,y,y,n,?,n,n,?,?,?,y,n,? +republican,n,y,n,y,y,y,n,n,n,y,y,y,y,y,n,n +republican,?,n,y,y,n,y,y,y,y,y,n,y,n,y,n,y +republican,n,y,n,y,y,y,n,n,n,y,n,y,?,y,n,n +republican,y,y,n,y,y,y,n,n,n,y,n,y,y,y,n,y +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,y +democrat,y,n,y,n,y,y,n,n,y,y,n,n,y,y,n,y +democrat,n,n,n,y,y,y,n,n,n,n,y,y,y,y,n,n +democrat,y,n,y,n,n,y,y,y,y,n,n,y,?,y,y,y +republican,n,n,n,y,y,y,n,n,n,n,n,y,y,y,n,n +republican,n,n,n,y,y,y,n,n,n,n,y,y,y,y,n,y +democrat,y,n,y,n,n,y,y,y,y,y,y,n,n,n,n,y +republican,n,n,n,y,y,y,n,n,n,y,n,y,y,y,n,y +republican,y,y,y,y,y,y,y,y,n,y,?,?,?,y,n,y +democrat,y,y,y,n,n,n,y,y,y,n,n,n,n,n,n,y +democrat,n,y,y,n,n,y,y,y,?,y,n,n,n,n,n,y +republican,y,y,n,y,y,y,n,n,n,y,n,n,y,y,n,y +democrat,y,y,y,n,n,n,y,y,y,y,y,n,y,n,n,y +democrat,y,y,y,n,n,n,y,y,n,y,n,n,n,n,n,y +democrat,y,y,y,n,n,n,y,y,y,n,n,n,n,n,n,y +republican,y,y,y,y,y,y,y,y,n,y,n,n,y,y,n,y +democrat,n,y,y,n,y,y,y,y,n,n,y,n,y,n,y,y +democrat,n,n,y,n,n,y,y,y,y,n,y,n,n,n,y,y +democrat,n,y,y,n,n,y,y,y,y,n,y,n,n,y,y,y +democrat,n,y,y,n,n,?,y,y,y,y,y,n,?,y,y,y +democrat,n,n,y,n,n,n,y,y,n,y,y,n,n,n,y,? +democrat,y,n,y,n,n,n,y,y,y,y,n,n,n,n,y,y +republican,n,n,n,y,y,y,y,y,n,y,n,y,y,y,n,y +democrat,?,?,?,n,n,n,y,y,y,y,n,n,y,n,y,y +democrat,y,n,y,n,?,n,y,y,y,y,n,y,n,?,y,y +republican,n,n,y,y,y,y,n,n,y,y,n,y,y,y,n,y +democrat,n,n,y,n,n,n,y,y,y,y,n,n,n,n,n,y +republican,n,?,n,y,y,y,n,n,n,n,y,y,y,y,n,y +republican,n,n,n,y,y,y,?,?,?,?,n,y,y,y,n,y +republican,n,y,n,y,y,y,n,n,n,y,n,y,y,y,?,n diff --git a/Code/datasets/monks-1.test b/Code/datasets/monks-1.test new file mode 100644 index 0000000..1f892d8 --- /dev/null +++ b/Code/datasets/monks-1.test @@ -0,0 +1,432 @@ + 1 1 1 1 1 1 1 data_1 + 1 1 1 1 1 1 2 data_2 + 1 1 1 1 1 2 1 data_3 + 1 1 1 1 1 2 2 data_4 + 1 1 1 1 1 3 1 data_5 + 1 1 1 1 1 3 2 data_6 + 1 1 1 1 1 4 1 data_7 + 1 1 1 1 1 4 2 data_8 + 1 1 1 1 2 1 1 data_9 + 1 1 1 1 2 1 2 data_10 + 1 1 1 1 2 2 1 data_11 + 1 1 1 1 2 2 2 data_12 + 1 1 1 1 2 3 1 data_13 + 1 1 1 1 2 3 2 data_14 + 1 1 1 1 2 4 1 data_15 + 1 1 1 1 2 4 2 data_16 + 1 1 1 1 3 1 1 data_17 + 1 1 1 1 3 1 2 data_18 + 1 1 1 1 3 2 1 data_19 + 1 1 1 1 3 2 2 data_20 + 1 1 1 1 3 3 1 data_21 + 1 1 1 1 3 3 2 data_22 + 1 1 1 1 3 4 1 data_23 + 1 1 1 1 3 4 2 data_24 + 1 1 1 2 1 1 1 data_25 + 1 1 1 2 1 1 2 data_26 + 1 1 1 2 1 2 1 data_27 + 1 1 1 2 1 2 2 data_28 + 1 1 1 2 1 3 1 data_29 + 1 1 1 2 1 3 2 data_30 + 1 1 1 2 1 4 1 data_31 + 1 1 1 2 1 4 2 data_32 + 1 1 1 2 2 1 1 data_33 + 1 1 1 2 2 1 2 data_34 + 1 1 1 2 2 2 1 data_35 + 1 1 1 2 2 2 2 data_36 + 1 1 1 2 2 3 1 data_37 + 1 1 1 2 2 3 2 data_38 + 1 1 1 2 2 4 1 data_39 + 1 1 1 2 2 4 2 data_40 + 1 1 1 2 3 1 1 data_41 + 1 1 1 2 3 1 2 data_42 + 1 1 1 2 3 2 1 data_43 + 1 1 1 2 3 2 2 data_44 + 1 1 1 2 3 3 1 data_45 + 1 1 1 2 3 3 2 data_46 + 1 1 1 2 3 4 1 data_47 + 1 1 1 2 3 4 2 data_48 + 1 1 2 1 1 1 1 data_49 + 1 1 2 1 1 1 2 data_50 + 0 1 2 1 1 2 1 data_51 + 0 1 2 1 1 2 2 data_52 + 0 1 2 1 1 3 1 data_53 + 0 1 2 1 1 3 2 data_54 + 0 1 2 1 1 4 1 data_55 + 0 1 2 1 1 4 2 data_56 + 1 1 2 1 2 1 1 data_57 + 1 1 2 1 2 1 2 data_58 + 0 1 2 1 2 2 1 data_59 + 0 1 2 1 2 2 2 data_60 + 0 1 2 1 2 3 1 data_61 + 0 1 2 1 2 3 2 data_62 + 0 1 2 1 2 4 1 data_63 + 0 1 2 1 2 4 2 data_64 + 1 1 2 1 3 1 1 data_65 + 1 1 2 1 3 1 2 data_66 + 0 1 2 1 3 2 1 data_67 + 0 1 2 1 3 2 2 data_68 + 0 1 2 1 3 3 1 data_69 + 0 1 2 1 3 3 2 data_70 + 0 1 2 1 3 4 1 data_71 + 0 1 2 1 3 4 2 data_72 + 1 1 2 2 1 1 1 data_73 + 1 1 2 2 1 1 2 data_74 + 0 1 2 2 1 2 1 data_75 + 0 1 2 2 1 2 2 data_76 + 0 1 2 2 1 3 1 data_77 + 0 1 2 2 1 3 2 data_78 + 0 1 2 2 1 4 1 data_79 + 0 1 2 2 1 4 2 data_80 + 1 1 2 2 2 1 1 data_81 + 1 1 2 2 2 1 2 data_82 + 0 1 2 2 2 2 1 data_83 + 0 1 2 2 2 2 2 data_84 + 0 1 2 2 2 3 1 data_85 + 0 1 2 2 2 3 2 data_86 + 0 1 2 2 2 4 1 data_87 + 0 1 2 2 2 4 2 data_88 + 1 1 2 2 3 1 1 data_89 + 1 1 2 2 3 1 2 data_90 + 0 1 2 2 3 2 1 data_91 + 0 1 2 2 3 2 2 data_92 + 0 1 2 2 3 3 1 data_93 + 0 1 2 2 3 3 2 data_94 + 0 1 2 2 3 4 1 data_95 + 0 1 2 2 3 4 2 data_96 + 1 1 3 1 1 1 1 data_97 + 1 1 3 1 1 1 2 data_98 + 0 1 3 1 1 2 1 data_99 + 0 1 3 1 1 2 2 data_100 + 0 1 3 1 1 3 1 data_101 + 0 1 3 1 1 3 2 data_102 + 0 1 3 1 1 4 1 data_103 + 0 1 3 1 1 4 2 data_104 + 1 1 3 1 2 1 1 data_105 + 1 1 3 1 2 1 2 data_106 + 0 1 3 1 2 2 1 data_107 + 0 1 3 1 2 2 2 data_108 + 0 1 3 1 2 3 1 data_109 + 0 1 3 1 2 3 2 data_110 + 0 1 3 1 2 4 1 data_111 + 0 1 3 1 2 4 2 data_112 + 1 1 3 1 3 1 1 data_113 + 1 1 3 1 3 1 2 data_114 + 0 1 3 1 3 2 1 data_115 + 0 1 3 1 3 2 2 data_116 + 0 1 3 1 3 3 1 data_117 + 0 1 3 1 3 3 2 data_118 + 0 1 3 1 3 4 1 data_119 + 0 1 3 1 3 4 2 data_120 + 1 1 3 2 1 1 1 data_121 + 1 1 3 2 1 1 2 data_122 + 0 1 3 2 1 2 1 data_123 + 0 1 3 2 1 2 2 data_124 + 0 1 3 2 1 3 1 data_125 + 0 1 3 2 1 3 2 data_126 + 0 1 3 2 1 4 1 data_127 + 0 1 3 2 1 4 2 data_128 + 1 1 3 2 2 1 1 data_129 + 1 1 3 2 2 1 2 data_130 + 0 1 3 2 2 2 1 data_131 + 0 1 3 2 2 2 2 data_132 + 0 1 3 2 2 3 1 data_133 + 0 1 3 2 2 3 2 data_134 + 0 1 3 2 2 4 1 data_135 + 0 1 3 2 2 4 2 data_136 + 1 1 3 2 3 1 1 data_137 + 1 1 3 2 3 1 2 data_138 + 0 1 3 2 3 2 1 data_139 + 0 1 3 2 3 2 2 data_140 + 0 1 3 2 3 3 1 data_141 + 0 1 3 2 3 3 2 data_142 + 0 1 3 2 3 4 1 data_143 + 0 1 3 2 3 4 2 data_144 + 1 2 1 1 1 1 1 data_145 + 1 2 1 1 1 1 2 data_146 + 0 2 1 1 1 2 1 data_147 + 0 2 1 1 1 2 2 data_148 + 0 2 1 1 1 3 1 data_149 + 0 2 1 1 1 3 2 data_150 + 0 2 1 1 1 4 1 data_151 + 0 2 1 1 1 4 2 data_152 + 1 2 1 1 2 1 1 data_153 + 1 2 1 1 2 1 2 data_154 + 0 2 1 1 2 2 1 data_155 + 0 2 1 1 2 2 2 data_156 + 0 2 1 1 2 3 1 data_157 + 0 2 1 1 2 3 2 data_158 + 0 2 1 1 2 4 1 data_159 + 0 2 1 1 2 4 2 data_160 + 1 2 1 1 3 1 1 data_161 + 1 2 1 1 3 1 2 data_162 + 0 2 1 1 3 2 1 data_163 + 0 2 1 1 3 2 2 data_164 + 0 2 1 1 3 3 1 data_165 + 0 2 1 1 3 3 2 data_166 + 0 2 1 1 3 4 1 data_167 + 0 2 1 1 3 4 2 data_168 + 1 2 1 2 1 1 1 data_169 + 1 2 1 2 1 1 2 data_170 + 0 2 1 2 1 2 1 data_171 + 0 2 1 2 1 2 2 data_172 + 0 2 1 2 1 3 1 data_173 + 0 2 1 2 1 3 2 data_174 + 0 2 1 2 1 4 1 data_175 + 0 2 1 2 1 4 2 data_176 + 1 2 1 2 2 1 1 data_177 + 1 2 1 2 2 1 2 data_178 + 0 2 1 2 2 2 1 data_179 + 0 2 1 2 2 2 2 data_180 + 0 2 1 2 2 3 1 data_181 + 0 2 1 2 2 3 2 data_182 + 0 2 1 2 2 4 1 data_183 + 0 2 1 2 2 4 2 data_184 + 1 2 1 2 3 1 1 data_185 + 1 2 1 2 3 1 2 data_186 + 0 2 1 2 3 2 1 data_187 + 0 2 1 2 3 2 2 data_188 + 0 2 1 2 3 3 1 data_189 + 0 2 1 2 3 3 2 data_190 + 0 2 1 2 3 4 1 data_191 + 0 2 1 2 3 4 2 data_192 + 1 2 2 1 1 1 1 data_193 + 1 2 2 1 1 1 2 data_194 + 1 2 2 1 1 2 1 data_195 + 1 2 2 1 1 2 2 data_196 + 1 2 2 1 1 3 1 data_197 + 1 2 2 1 1 3 2 data_198 + 1 2 2 1 1 4 1 data_199 + 1 2 2 1 1 4 2 data_200 + 1 2 2 1 2 1 1 data_201 + 1 2 2 1 2 1 2 data_202 + 1 2 2 1 2 2 1 data_203 + 1 2 2 1 2 2 2 data_204 + 1 2 2 1 2 3 1 data_205 + 1 2 2 1 2 3 2 data_206 + 1 2 2 1 2 4 1 data_207 + 1 2 2 1 2 4 2 data_208 + 1 2 2 1 3 1 1 data_209 + 1 2 2 1 3 1 2 data_210 + 1 2 2 1 3 2 1 data_211 + 1 2 2 1 3 2 2 data_212 + 1 2 2 1 3 3 1 data_213 + 1 2 2 1 3 3 2 data_214 + 1 2 2 1 3 4 1 data_215 + 1 2 2 1 3 4 2 data_216 + 1 2 2 2 1 1 1 data_217 + 1 2 2 2 1 1 2 data_218 + 1 2 2 2 1 2 1 data_219 + 1 2 2 2 1 2 2 data_220 + 1 2 2 2 1 3 1 data_221 + 1 2 2 2 1 3 2 data_222 + 1 2 2 2 1 4 1 data_223 + 1 2 2 2 1 4 2 data_224 + 1 2 2 2 2 1 1 data_225 + 1 2 2 2 2 1 2 data_226 + 1 2 2 2 2 2 1 data_227 + 1 2 2 2 2 2 2 data_228 + 1 2 2 2 2 3 1 data_229 + 1 2 2 2 2 3 2 data_230 + 1 2 2 2 2 4 1 data_231 + 1 2 2 2 2 4 2 data_232 + 1 2 2 2 3 1 1 data_233 + 1 2 2 2 3 1 2 data_234 + 1 2 2 2 3 2 1 data_235 + 1 2 2 2 3 2 2 data_236 + 1 2 2 2 3 3 1 data_237 + 1 2 2 2 3 3 2 data_238 + 1 2 2 2 3 4 1 data_239 + 1 2 2 2 3 4 2 data_240 + 1 2 3 1 1 1 1 data_241 + 1 2 3 1 1 1 2 data_242 + 0 2 3 1 1 2 1 data_243 + 0 2 3 1 1 2 2 data_244 + 0 2 3 1 1 3 1 data_245 + 0 2 3 1 1 3 2 data_246 + 0 2 3 1 1 4 1 data_247 + 0 2 3 1 1 4 2 data_248 + 1 2 3 1 2 1 1 data_249 + 1 2 3 1 2 1 2 data_250 + 0 2 3 1 2 2 1 data_251 + 0 2 3 1 2 2 2 data_252 + 0 2 3 1 2 3 1 data_253 + 0 2 3 1 2 3 2 data_254 + 0 2 3 1 2 4 1 data_255 + 0 2 3 1 2 4 2 data_256 + 1 2 3 1 3 1 1 data_257 + 1 2 3 1 3 1 2 data_258 + 0 2 3 1 3 2 1 data_259 + 0 2 3 1 3 2 2 data_260 + 0 2 3 1 3 3 1 data_261 + 0 2 3 1 3 3 2 data_262 + 0 2 3 1 3 4 1 data_263 + 0 2 3 1 3 4 2 data_264 + 1 2 3 2 1 1 1 data_265 + 1 2 3 2 1 1 2 data_266 + 0 2 3 2 1 2 1 data_267 + 0 2 3 2 1 2 2 data_268 + 0 2 3 2 1 3 1 data_269 + 0 2 3 2 1 3 2 data_270 + 0 2 3 2 1 4 1 data_271 + 0 2 3 2 1 4 2 data_272 + 1 2 3 2 2 1 1 data_273 + 1 2 3 2 2 1 2 data_274 + 0 2 3 2 2 2 1 data_275 + 0 2 3 2 2 2 2 data_276 + 0 2 3 2 2 3 1 data_277 + 0 2 3 2 2 3 2 data_278 + 0 2 3 2 2 4 1 data_279 + 0 2 3 2 2 4 2 data_280 + 1 2 3 2 3 1 1 data_281 + 1 2 3 2 3 1 2 data_282 + 0 2 3 2 3 2 1 data_283 + 0 2 3 2 3 2 2 data_284 + 0 2 3 2 3 3 1 data_285 + 0 2 3 2 3 3 2 data_286 + 0 2 3 2 3 4 1 data_287 + 0 2 3 2 3 4 2 data_288 + 1 3 1 1 1 1 1 data_289 + 1 3 1 1 1 1 2 data_290 + 0 3 1 1 1 2 1 data_291 + 0 3 1 1 1 2 2 data_292 + 0 3 1 1 1 3 1 data_293 + 0 3 1 1 1 3 2 data_294 + 0 3 1 1 1 4 1 data_295 + 0 3 1 1 1 4 2 data_296 + 1 3 1 1 2 1 1 data_297 + 1 3 1 1 2 1 2 data_298 + 0 3 1 1 2 2 1 data_299 + 0 3 1 1 2 2 2 data_300 + 0 3 1 1 2 3 1 data_301 + 0 3 1 1 2 3 2 data_302 + 0 3 1 1 2 4 1 data_303 + 0 3 1 1 2 4 2 data_304 + 1 3 1 1 3 1 1 data_305 + 1 3 1 1 3 1 2 data_306 + 0 3 1 1 3 2 1 data_307 + 0 3 1 1 3 2 2 data_308 + 0 3 1 1 3 3 1 data_309 + 0 3 1 1 3 3 2 data_310 + 0 3 1 1 3 4 1 data_311 + 0 3 1 1 3 4 2 data_312 + 1 3 1 2 1 1 1 data_313 + 1 3 1 2 1 1 2 data_314 + 0 3 1 2 1 2 1 data_315 + 0 3 1 2 1 2 2 data_316 + 0 3 1 2 1 3 1 data_317 + 0 3 1 2 1 3 2 data_318 + 0 3 1 2 1 4 1 data_319 + 0 3 1 2 1 4 2 data_320 + 1 3 1 2 2 1 1 data_321 + 1 3 1 2 2 1 2 data_322 + 0 3 1 2 2 2 1 data_323 + 0 3 1 2 2 2 2 data_324 + 0 3 1 2 2 3 1 data_325 + 0 3 1 2 2 3 2 data_326 + 0 3 1 2 2 4 1 data_327 + 0 3 1 2 2 4 2 data_328 + 1 3 1 2 3 1 1 data_329 + 1 3 1 2 3 1 2 data_330 + 0 3 1 2 3 2 1 data_331 + 0 3 1 2 3 2 2 data_332 + 0 3 1 2 3 3 1 data_333 + 0 3 1 2 3 3 2 data_334 + 0 3 1 2 3 4 1 data_335 + 0 3 1 2 3 4 2 data_336 + 1 3 2 1 1 1 1 data_337 + 1 3 2 1 1 1 2 data_338 + 0 3 2 1 1 2 1 data_339 + 0 3 2 1 1 2 2 data_340 + 0 3 2 1 1 3 1 data_341 + 0 3 2 1 1 3 2 data_342 + 0 3 2 1 1 4 1 data_343 + 0 3 2 1 1 4 2 data_344 + 1 3 2 1 2 1 1 data_345 + 1 3 2 1 2 1 2 data_346 + 0 3 2 1 2 2 1 data_347 + 0 3 2 1 2 2 2 data_348 + 0 3 2 1 2 3 1 data_349 + 0 3 2 1 2 3 2 data_350 + 0 3 2 1 2 4 1 data_351 + 0 3 2 1 2 4 2 data_352 + 1 3 2 1 3 1 1 data_353 + 1 3 2 1 3 1 2 data_354 + 0 3 2 1 3 2 1 data_355 + 0 3 2 1 3 2 2 data_356 + 0 3 2 1 3 3 1 data_357 + 0 3 2 1 3 3 2 data_358 + 0 3 2 1 3 4 1 data_359 + 0 3 2 1 3 4 2 data_360 + 1 3 2 2 1 1 1 data_361 + 1 3 2 2 1 1 2 data_362 + 0 3 2 2 1 2 1 data_363 + 0 3 2 2 1 2 2 data_364 + 0 3 2 2 1 3 1 data_365 + 0 3 2 2 1 3 2 data_366 + 0 3 2 2 1 4 1 data_367 + 0 3 2 2 1 4 2 data_368 + 1 3 2 2 2 1 1 data_369 + 1 3 2 2 2 1 2 data_370 + 0 3 2 2 2 2 1 data_371 + 0 3 2 2 2 2 2 data_372 + 0 3 2 2 2 3 1 data_373 + 0 3 2 2 2 3 2 data_374 + 0 3 2 2 2 4 1 data_375 + 0 3 2 2 2 4 2 data_376 + 1 3 2 2 3 1 1 data_377 + 1 3 2 2 3 1 2 data_378 + 0 3 2 2 3 2 1 data_379 + 0 3 2 2 3 2 2 data_380 + 0 3 2 2 3 3 1 data_381 + 0 3 2 2 3 3 2 data_382 + 0 3 2 2 3 4 1 data_383 + 0 3 2 2 3 4 2 data_384 + 1 3 3 1 1 1 1 data_385 + 1 3 3 1 1 1 2 data_386 + 1 3 3 1 1 2 1 data_387 + 1 3 3 1 1 2 2 data_388 + 1 3 3 1 1 3 1 data_389 + 1 3 3 1 1 3 2 data_390 + 1 3 3 1 1 4 1 data_391 + 1 3 3 1 1 4 2 data_392 + 1 3 3 1 2 1 1 data_393 + 1 3 3 1 2 1 2 data_394 + 1 3 3 1 2 2 1 data_395 + 1 3 3 1 2 2 2 data_396 + 1 3 3 1 2 3 1 data_397 + 1 3 3 1 2 3 2 data_398 + 1 3 3 1 2 4 1 data_399 + 1 3 3 1 2 4 2 data_400 + 1 3 3 1 3 1 1 data_401 + 1 3 3 1 3 1 2 data_402 + 1 3 3 1 3 2 1 data_403 + 1 3 3 1 3 2 2 data_404 + 1 3 3 1 3 3 1 data_405 + 1 3 3 1 3 3 2 data_406 + 1 3 3 1 3 4 1 data_407 + 1 3 3 1 3 4 2 data_408 + 1 3 3 2 1 1 1 data_409 + 1 3 3 2 1 1 2 data_410 + 1 3 3 2 1 2 1 data_411 + 1 3 3 2 1 2 2 data_412 + 1 3 3 2 1 3 1 data_413 + 1 3 3 2 1 3 2 data_414 + 1 3 3 2 1 4 1 data_415 + 1 3 3 2 1 4 2 data_416 + 1 3 3 2 2 1 1 data_417 + 1 3 3 2 2 1 2 data_418 + 1 3 3 2 2 2 1 data_419 + 1 3 3 2 2 2 2 data_420 + 1 3 3 2 2 3 1 data_421 + 1 3 3 2 2 3 2 data_422 + 1 3 3 2 2 4 1 data_423 + 1 3 3 2 2 4 2 data_424 + 1 3 3 2 3 1 1 data_425 + 1 3 3 2 3 1 2 data_426 + 1 3 3 2 3 2 1 data_427 + 1 3 3 2 3 2 2 data_428 + 1 3 3 2 3 3 1 data_429 + 1 3 3 2 3 3 2 data_430 + 1 3 3 2 3 4 1 data_431 + 1 3 3 2 3 4 2 data_432 diff --git a/Code/datasets/monks-1.train b/Code/datasets/monks-1.train new file mode 100644 index 0000000..5a540db --- /dev/null +++ b/Code/datasets/monks-1.train @@ -0,0 +1,124 @@ + 1 1 1 1 1 3 1 data_5 + 1 1 1 1 1 3 2 data_6 + 1 1 1 1 3 2 1 data_19 + 1 1 1 1 3 3 2 data_22 + 1 1 1 2 1 2 1 data_27 + 1 1 1 2 1 2 2 data_28 + 1 1 1 2 2 3 1 data_37 + 1 1 1 2 2 4 1 data_39 + 1 1 1 2 3 1 2 data_42 + 1 1 2 1 1 1 2 data_50 + 0 1 2 1 1 2 1 data_51 + 0 1 2 1 1 3 1 data_53 + 0 1 2 1 1 4 2 data_56 + 1 1 2 1 2 1 1 data_57 + 0 1 2 1 2 3 1 data_61 + 0 1 2 1 2 3 2 data_62 + 0 1 2 1 2 4 2 data_64 + 0 1 2 1 3 2 1 data_67 + 0 1 2 1 3 4 2 data_72 + 0 1 2 2 1 2 2 data_76 + 0 1 2 2 2 3 2 data_86 + 0 1 2 2 2 4 1 data_87 + 0 1 2 2 2 4 2 data_88 + 0 1 2 2 3 2 2 data_92 + 0 1 2 2 3 3 1 data_93 + 0 1 2 2 3 3 2 data_94 + 0 1 3 1 1 2 1 data_99 + 0 1 3 1 1 4 1 data_103 + 0 1 3 1 2 2 1 data_107 + 0 1 3 1 2 4 1 data_111 + 1 1 3 1 3 1 2 data_114 + 0 1 3 1 3 2 2 data_116 + 0 1 3 1 3 3 1 data_117 + 0 1 3 1 3 4 1 data_119 + 0 1 3 1 3 4 2 data_120 + 0 1 3 2 1 2 2 data_124 + 1 1 3 2 2 1 2 data_130 + 0 1 3 2 2 2 2 data_132 + 0 1 3 2 2 3 2 data_134 + 0 1 3 2 2 4 1 data_135 + 0 1 3 2 2 4 2 data_136 + 1 1 3 2 3 1 1 data_137 + 0 1 3 2 3 2 1 data_139 + 0 1 3 2 3 4 1 data_143 + 0 1 3 2 3 4 2 data_144 + 0 2 1 1 1 3 1 data_149 + 0 2 1 1 1 3 2 data_150 + 1 2 1 1 2 1 1 data_153 + 1 2 1 1 2 1 2 data_154 + 0 2 1 1 2 2 2 data_156 + 0 2 1 1 2 3 1 data_157 + 0 2 1 1 2 4 1 data_159 + 0 2 1 1 2 4 2 data_160 + 0 2 1 1 3 4 1 data_167 + 0 2 1 2 1 2 2 data_172 + 0 2 1 2 1 3 1 data_173 + 0 2 1 2 1 4 2 data_176 + 0 2 1 2 2 3 1 data_181 + 0 2 1 2 2 4 2 data_184 + 0 2 1 2 3 2 2 data_188 + 0 2 1 2 3 4 1 data_191 + 1 2 2 1 1 2 1 data_195 + 1 2 2 1 1 2 2 data_196 + 1 2 2 1 1 3 1 data_197 + 1 2 2 1 2 3 2 data_206 + 1 2 2 1 3 1 1 data_209 + 1 2 2 1 3 1 2 data_210 + 1 2 2 1 3 2 2 data_212 + 1 2 2 1 3 3 2 data_214 + 1 2 2 1 3 4 2 data_216 + 1 2 2 2 1 1 1 data_217 + 1 2 2 2 1 3 2 data_222 + 1 2 2 2 1 4 1 data_223 + 1 2 2 2 1 4 2 data_224 + 1 2 2 2 2 2 1 data_227 + 1 2 2 2 3 4 1 data_239 + 1 2 3 1 1 1 1 data_241 + 1 2 3 1 2 1 1 data_249 + 0 2 3 1 2 3 1 data_253 + 1 2 3 1 3 1 2 data_258 + 0 2 3 1 3 3 1 data_261 + 0 2 3 1 3 4 2 data_264 + 0 2 3 2 1 3 2 data_270 + 1 2 3 2 2 1 1 data_273 + 1 2 3 2 2 1 2 data_274 + 0 2 3 2 2 2 1 data_275 + 0 2 3 2 3 3 2 data_286 + 1 3 1 1 1 1 1 data_289 + 1 3 1 1 1 1 2 data_290 + 1 3 1 1 2 1 1 data_297 + 0 3 1 1 2 2 2 data_300 + 0 3 1 1 3 2 2 data_308 + 1 3 1 2 1 1 1 data_313 + 0 3 1 2 1 2 2 data_316 + 0 3 1 2 2 2 2 data_324 + 0 3 1 2 2 3 2 data_326 + 0 3 1 2 3 2 2 data_332 + 1 3 2 1 1 1 1 data_337 + 0 3 2 1 1 4 2 data_344 + 1 3 2 1 2 1 2 data_346 + 0 3 2 1 2 4 2 data_352 + 1 3 2 2 1 1 1 data_361 + 1 3 2 2 1 1 2 data_362 + 0 3 2 2 1 3 2 data_366 + 1 3 2 2 3 1 1 data_377 + 0 3 2 2 3 2 1 data_379 + 0 3 2 2 3 4 1 data_383 + 1 3 3 1 1 1 1 data_385 + 1 3 3 1 1 2 1 data_387 + 1 3 3 1 1 4 2 data_392 + 1 3 3 1 2 3 2 data_398 + 1 3 3 1 2 4 2 data_400 + 1 3 3 1 3 1 2 data_402 + 1 3 3 1 3 2 1 data_403 + 1 3 3 1 3 2 2 data_404 + 1 3 3 1 3 4 2 data_408 + 1 3 3 2 1 1 1 data_409 + 1 3 3 2 1 3 2 data_414 + 1 3 3 2 1 4 1 data_415 + 1 3 3 2 1 4 2 data_416 + 1 3 3 2 3 1 2 data_426 + 1 3 3 2 3 2 2 data_428 + 1 3 3 2 3 3 2 data_430 + 1 3 3 2 3 4 2 data_432 diff --git a/Code/datasets/monks-2.test b/Code/datasets/monks-2.test new file mode 100644 index 0000000..44a1f13 --- /dev/null +++ b/Code/datasets/monks-2.test @@ -0,0 +1,432 @@ + 0 1 1 1 1 1 1 data_1 + 0 1 1 1 1 1 2 data_2 + 0 1 1 1 1 2 1 data_3 + 0 1 1 1 1 2 2 data_4 + 0 1 1 1 1 3 1 data_5 + 0 1 1 1 1 3 2 data_6 + 0 1 1 1 1 4 1 data_7 + 0 1 1 1 1 4 2 data_8 + 0 1 1 1 2 1 1 data_9 + 0 1 1 1 2 1 2 data_10 + 0 1 1 1 2 2 1 data_11 + 0 1 1 1 2 2 2 data_12 + 0 1 1 1 2 3 1 data_13 + 0 1 1 1 2 3 2 data_14 + 0 1 1 1 2 4 1 data_15 + 0 1 1 1 2 4 2 data_16 + 0 1 1 1 3 1 1 data_17 + 0 1 1 1 3 1 2 data_18 + 0 1 1 1 3 2 1 data_19 + 0 1 1 1 3 2 2 data_20 + 0 1 1 1 3 3 1 data_21 + 0 1 1 1 3 3 2 data_22 + 0 1 1 1 3 4 1 data_23 + 0 1 1 1 3 4 2 data_24 + 0 1 1 2 1 1 1 data_25 + 0 1 1 2 1 1 2 data_26 + 0 1 1 2 1 2 1 data_27 + 0 1 1 2 1 2 2 data_28 + 0 1 1 2 1 3 1 data_29 + 0 1 1 2 1 3 2 data_30 + 0 1 1 2 1 4 1 data_31 + 0 1 1 2 1 4 2 data_32 + 0 1 1 2 2 1 1 data_33 + 0 1 1 2 2 1 2 data_34 + 0 1 1 2 2 2 1 data_35 + 1 1 1 2 2 2 2 data_36 + 0 1 1 2 2 3 1 data_37 + 1 1 1 2 2 3 2 data_38 + 0 1 1 2 2 4 1 data_39 + 1 1 1 2 2 4 2 data_40 + 0 1 1 2 3 1 1 data_41 + 0 1 1 2 3 1 2 data_42 + 0 1 1 2 3 2 1 data_43 + 1 1 1 2 3 2 2 data_44 + 0 1 1 2 3 3 1 data_45 + 1 1 1 2 3 3 2 data_46 + 0 1 1 2 3 4 1 data_47 + 1 1 1 2 3 4 2 data_48 + 0 1 2 1 1 1 1 data_49 + 0 1 2 1 1 1 2 data_50 + 0 1 2 1 1 2 1 data_51 + 0 1 2 1 1 2 2 data_52 + 0 1 2 1 1 3 1 data_53 + 0 1 2 1 1 3 2 data_54 + 0 1 2 1 1 4 1 data_55 + 0 1 2 1 1 4 2 data_56 + 0 1 2 1 2 1 1 data_57 + 0 1 2 1 2 1 2 data_58 + 0 1 2 1 2 2 1 data_59 + 1 1 2 1 2 2 2 data_60 + 0 1 2 1 2 3 1 data_61 + 1 1 2 1 2 3 2 data_62 + 0 1 2 1 2 4 1 data_63 + 1 1 2 1 2 4 2 data_64 + 0 1 2 1 3 1 1 data_65 + 0 1 2 1 3 1 2 data_66 + 0 1 2 1 3 2 1 data_67 + 1 1 2 1 3 2 2 data_68 + 0 1 2 1 3 3 1 data_69 + 1 1 2 1 3 3 2 data_70 + 0 1 2 1 3 4 1 data_71 + 1 1 2 1 3 4 2 data_72 + 0 1 2 2 1 1 1 data_73 + 0 1 2 2 1 1 2 data_74 + 0 1 2 2 1 2 1 data_75 + 1 1 2 2 1 2 2 data_76 + 0 1 2 2 1 3 1 data_77 + 1 1 2 2 1 3 2 data_78 + 0 1 2 2 1 4 1 data_79 + 1 1 2 2 1 4 2 data_80 + 0 1 2 2 2 1 1 data_81 + 1 1 2 2 2 1 2 data_82 + 1 1 2 2 2 2 1 data_83 + 0 1 2 2 2 2 2 data_84 + 1 1 2 2 2 3 1 data_85 + 0 1 2 2 2 3 2 data_86 + 1 1 2 2 2 4 1 data_87 + 0 1 2 2 2 4 2 data_88 + 0 1 2 2 3 1 1 data_89 + 1 1 2 2 3 1 2 data_90 + 1 1 2 2 3 2 1 data_91 + 0 1 2 2 3 2 2 data_92 + 1 1 2 2 3 3 1 data_93 + 0 1 2 2 3 3 2 data_94 + 1 1 2 2 3 4 1 data_95 + 0 1 2 2 3 4 2 data_96 + 0 1 3 1 1 1 1 data_97 + 0 1 3 1 1 1 2 data_98 + 0 1 3 1 1 2 1 data_99 + 0 1 3 1 1 2 2 data_100 + 0 1 3 1 1 3 1 data_101 + 0 1 3 1 1 3 2 data_102 + 0 1 3 1 1 4 1 data_103 + 0 1 3 1 1 4 2 data_104 + 0 1 3 1 2 1 1 data_105 + 0 1 3 1 2 1 2 data_106 + 0 1 3 1 2 2 1 data_107 + 1 1 3 1 2 2 2 data_108 + 0 1 3 1 2 3 1 data_109 + 1 1 3 1 2 3 2 data_110 + 0 1 3 1 2 4 1 data_111 + 1 1 3 1 2 4 2 data_112 + 0 1 3 1 3 1 1 data_113 + 0 1 3 1 3 1 2 data_114 + 0 1 3 1 3 2 1 data_115 + 1 1 3 1 3 2 2 data_116 + 0 1 3 1 3 3 1 data_117 + 1 1 3 1 3 3 2 data_118 + 0 1 3 1 3 4 1 data_119 + 1 1 3 1 3 4 2 data_120 + 0 1 3 2 1 1 1 data_121 + 0 1 3 2 1 1 2 data_122 + 0 1 3 2 1 2 1 data_123 + 1 1 3 2 1 2 2 data_124 + 0 1 3 2 1 3 1 data_125 + 1 1 3 2 1 3 2 data_126 + 0 1 3 2 1 4 1 data_127 + 1 1 3 2 1 4 2 data_128 + 0 1 3 2 2 1 1 data_129 + 1 1 3 2 2 1 2 data_130 + 1 1 3 2 2 2 1 data_131 + 0 1 3 2 2 2 2 data_132 + 1 1 3 2 2 3 1 data_133 + 0 1 3 2 2 3 2 data_134 + 1 1 3 2 2 4 1 data_135 + 0 1 3 2 2 4 2 data_136 + 0 1 3 2 3 1 1 data_137 + 1 1 3 2 3 1 2 data_138 + 1 1 3 2 3 2 1 data_139 + 0 1 3 2 3 2 2 data_140 + 1 1 3 2 3 3 1 data_141 + 0 1 3 2 3 3 2 data_142 + 1 1 3 2 3 4 1 data_143 + 0 1 3 2 3 4 2 data_144 + 0 2 1 1 1 1 1 data_145 + 0 2 1 1 1 1 2 data_146 + 0 2 1 1 1 2 1 data_147 + 0 2 1 1 1 2 2 data_148 + 0 2 1 1 1 3 1 data_149 + 0 2 1 1 1 3 2 data_150 + 0 2 1 1 1 4 1 data_151 + 0 2 1 1 1 4 2 data_152 + 0 2 1 1 2 1 1 data_153 + 0 2 1 1 2 1 2 data_154 + 0 2 1 1 2 2 1 data_155 + 1 2 1 1 2 2 2 data_156 + 0 2 1 1 2 3 1 data_157 + 1 2 1 1 2 3 2 data_158 + 0 2 1 1 2 4 1 data_159 + 1 2 1 1 2 4 2 data_160 + 0 2 1 1 3 1 1 data_161 + 0 2 1 1 3 1 2 data_162 + 0 2 1 1 3 2 1 data_163 + 1 2 1 1 3 2 2 data_164 + 0 2 1 1 3 3 1 data_165 + 1 2 1 1 3 3 2 data_166 + 0 2 1 1 3 4 1 data_167 + 1 2 1 1 3 4 2 data_168 + 0 2 1 2 1 1 1 data_169 + 0 2 1 2 1 1 2 data_170 + 0 2 1 2 1 2 1 data_171 + 1 2 1 2 1 2 2 data_172 + 0 2 1 2 1 3 1 data_173 + 1 2 1 2 1 3 2 data_174 + 0 2 1 2 1 4 1 data_175 + 1 2 1 2 1 4 2 data_176 + 0 2 1 2 2 1 1 data_177 + 1 2 1 2 2 1 2 data_178 + 1 2 1 2 2 2 1 data_179 + 0 2 1 2 2 2 2 data_180 + 1 2 1 2 2 3 1 data_181 + 0 2 1 2 2 3 2 data_182 + 1 2 1 2 2 4 1 data_183 + 0 2 1 2 2 4 2 data_184 + 0 2 1 2 3 1 1 data_185 + 1 2 1 2 3 1 2 data_186 + 1 2 1 2 3 2 1 data_187 + 0 2 1 2 3 2 2 data_188 + 1 2 1 2 3 3 1 data_189 + 0 2 1 2 3 3 2 data_190 + 1 2 1 2 3 4 1 data_191 + 0 2 1 2 3 4 2 data_192 + 0 2 2 1 1 1 1 data_193 + 0 2 2 1 1 1 2 data_194 + 0 2 2 1 1 2 1 data_195 + 1 2 2 1 1 2 2 data_196 + 0 2 2 1 1 3 1 data_197 + 1 2 2 1 1 3 2 data_198 + 0 2 2 1 1 4 1 data_199 + 1 2 2 1 1 4 2 data_200 + 0 2 2 1 2 1 1 data_201 + 1 2 2 1 2 1 2 data_202 + 1 2 2 1 2 2 1 data_203 + 0 2 2 1 2 2 2 data_204 + 1 2 2 1 2 3 1 data_205 + 0 2 2 1 2 3 2 data_206 + 1 2 2 1 2 4 1 data_207 + 0 2 2 1 2 4 2 data_208 + 0 2 2 1 3 1 1 data_209 + 1 2 2 1 3 1 2 data_210 + 1 2 2 1 3 2 1 data_211 + 0 2 2 1 3 2 2 data_212 + 1 2 2 1 3 3 1 data_213 + 0 2 2 1 3 3 2 data_214 + 1 2 2 1 3 4 1 data_215 + 0 2 2 1 3 4 2 data_216 + 0 2 2 2 1 1 1 data_217 + 1 2 2 2 1 1 2 data_218 + 1 2 2 2 1 2 1 data_219 + 0 2 2 2 1 2 2 data_220 + 1 2 2 2 1 3 1 data_221 + 0 2 2 2 1 3 2 data_222 + 1 2 2 2 1 4 1 data_223 + 0 2 2 2 1 4 2 data_224 + 1 2 2 2 2 1 1 data_225 + 0 2 2 2 2 1 2 data_226 + 0 2 2 2 2 2 1 data_227 + 0 2 2 2 2 2 2 data_228 + 0 2 2 2 2 3 1 data_229 + 0 2 2 2 2 3 2 data_230 + 0 2 2 2 2 4 1 data_231 + 0 2 2 2 2 4 2 data_232 + 1 2 2 2 3 1 1 data_233 + 0 2 2 2 3 1 2 data_234 + 0 2 2 2 3 2 1 data_235 + 0 2 2 2 3 2 2 data_236 + 0 2 2 2 3 3 1 data_237 + 0 2 2 2 3 3 2 data_238 + 0 2 2 2 3 4 1 data_239 + 0 2 2 2 3 4 2 data_240 + 0 2 3 1 1 1 1 data_241 + 0 2 3 1 1 1 2 data_242 + 0 2 3 1 1 2 1 data_243 + 1 2 3 1 1 2 2 data_244 + 0 2 3 1 1 3 1 data_245 + 1 2 3 1 1 3 2 data_246 + 0 2 3 1 1 4 1 data_247 + 1 2 3 1 1 4 2 data_248 + 0 2 3 1 2 1 1 data_249 + 1 2 3 1 2 1 2 data_250 + 1 2 3 1 2 2 1 data_251 + 0 2 3 1 2 2 2 data_252 + 1 2 3 1 2 3 1 data_253 + 0 2 3 1 2 3 2 data_254 + 1 2 3 1 2 4 1 data_255 + 0 2 3 1 2 4 2 data_256 + 0 2 3 1 3 1 1 data_257 + 1 2 3 1 3 1 2 data_258 + 1 2 3 1 3 2 1 data_259 + 0 2 3 1 3 2 2 data_260 + 1 2 3 1 3 3 1 data_261 + 0 2 3 1 3 3 2 data_262 + 1 2 3 1 3 4 1 data_263 + 0 2 3 1 3 4 2 data_264 + 0 2 3 2 1 1 1 data_265 + 1 2 3 2 1 1 2 data_266 + 1 2 3 2 1 2 1 data_267 + 0 2 3 2 1 2 2 data_268 + 1 2 3 2 1 3 1 data_269 + 0 2 3 2 1 3 2 data_270 + 1 2 3 2 1 4 1 data_271 + 0 2 3 2 1 4 2 data_272 + 1 2 3 2 2 1 1 data_273 + 0 2 3 2 2 1 2 data_274 + 0 2 3 2 2 2 1 data_275 + 0 2 3 2 2 2 2 data_276 + 0 2 3 2 2 3 1 data_277 + 0 2 3 2 2 3 2 data_278 + 0 2 3 2 2 4 1 data_279 + 0 2 3 2 2 4 2 data_280 + 1 2 3 2 3 1 1 data_281 + 0 2 3 2 3 1 2 data_282 + 0 2 3 2 3 2 1 data_283 + 0 2 3 2 3 2 2 data_284 + 0 2 3 2 3 3 1 data_285 + 0 2 3 2 3 3 2 data_286 + 0 2 3 2 3 4 1 data_287 + 0 2 3 2 3 4 2 data_288 + 0 3 1 1 1 1 1 data_289 + 0 3 1 1 1 1 2 data_290 + 0 3 1 1 1 2 1 data_291 + 0 3 1 1 1 2 2 data_292 + 0 3 1 1 1 3 1 data_293 + 0 3 1 1 1 3 2 data_294 + 0 3 1 1 1 4 1 data_295 + 0 3 1 1 1 4 2 data_296 + 0 3 1 1 2 1 1 data_297 + 0 3 1 1 2 1 2 data_298 + 0 3 1 1 2 2 1 data_299 + 1 3 1 1 2 2 2 data_300 + 0 3 1 1 2 3 1 data_301 + 1 3 1 1 2 3 2 data_302 + 0 3 1 1 2 4 1 data_303 + 1 3 1 1 2 4 2 data_304 + 0 3 1 1 3 1 1 data_305 + 0 3 1 1 3 1 2 data_306 + 0 3 1 1 3 2 1 data_307 + 1 3 1 1 3 2 2 data_308 + 0 3 1 1 3 3 1 data_309 + 1 3 1 1 3 3 2 data_310 + 0 3 1 1 3 4 1 data_311 + 1 3 1 1 3 4 2 data_312 + 0 3 1 2 1 1 1 data_313 + 0 3 1 2 1 1 2 data_314 + 0 3 1 2 1 2 1 data_315 + 1 3 1 2 1 2 2 data_316 + 0 3 1 2 1 3 1 data_317 + 1 3 1 2 1 3 2 data_318 + 0 3 1 2 1 4 1 data_319 + 1 3 1 2 1 4 2 data_320 + 0 3 1 2 2 1 1 data_321 + 1 3 1 2 2 1 2 data_322 + 1 3 1 2 2 2 1 data_323 + 0 3 1 2 2 2 2 data_324 + 1 3 1 2 2 3 1 data_325 + 0 3 1 2 2 3 2 data_326 + 1 3 1 2 2 4 1 data_327 + 0 3 1 2 2 4 2 data_328 + 0 3 1 2 3 1 1 data_329 + 1 3 1 2 3 1 2 data_330 + 1 3 1 2 3 2 1 data_331 + 0 3 1 2 3 2 2 data_332 + 1 3 1 2 3 3 1 data_333 + 0 3 1 2 3 3 2 data_334 + 1 3 1 2 3 4 1 data_335 + 0 3 1 2 3 4 2 data_336 + 0 3 2 1 1 1 1 data_337 + 0 3 2 1 1 1 2 data_338 + 0 3 2 1 1 2 1 data_339 + 1 3 2 1 1 2 2 data_340 + 0 3 2 1 1 3 1 data_341 + 1 3 2 1 1 3 2 data_342 + 0 3 2 1 1 4 1 data_343 + 1 3 2 1 1 4 2 data_344 + 0 3 2 1 2 1 1 data_345 + 1 3 2 1 2 1 2 data_346 + 1 3 2 1 2 2 1 data_347 + 0 3 2 1 2 2 2 data_348 + 1 3 2 1 2 3 1 data_349 + 0 3 2 1 2 3 2 data_350 + 1 3 2 1 2 4 1 data_351 + 0 3 2 1 2 4 2 data_352 + 0 3 2 1 3 1 1 data_353 + 1 3 2 1 3 1 2 data_354 + 1 3 2 1 3 2 1 data_355 + 0 3 2 1 3 2 2 data_356 + 1 3 2 1 3 3 1 data_357 + 0 3 2 1 3 3 2 data_358 + 1 3 2 1 3 4 1 data_359 + 0 3 2 1 3 4 2 data_360 + 0 3 2 2 1 1 1 data_361 + 1 3 2 2 1 1 2 data_362 + 1 3 2 2 1 2 1 data_363 + 0 3 2 2 1 2 2 data_364 + 1 3 2 2 1 3 1 data_365 + 0 3 2 2 1 3 2 data_366 + 1 3 2 2 1 4 1 data_367 + 0 3 2 2 1 4 2 data_368 + 1 3 2 2 2 1 1 data_369 + 0 3 2 2 2 1 2 data_370 + 0 3 2 2 2 2 1 data_371 + 0 3 2 2 2 2 2 data_372 + 0 3 2 2 2 3 1 data_373 + 0 3 2 2 2 3 2 data_374 + 0 3 2 2 2 4 1 data_375 + 0 3 2 2 2 4 2 data_376 + 1 3 2 2 3 1 1 data_377 + 0 3 2 2 3 1 2 data_378 + 0 3 2 2 3 2 1 data_379 + 0 3 2 2 3 2 2 data_380 + 0 3 2 2 3 3 1 data_381 + 0 3 2 2 3 3 2 data_382 + 0 3 2 2 3 4 1 data_383 + 0 3 2 2 3 4 2 data_384 + 0 3 3 1 1 1 1 data_385 + 0 3 3 1 1 1 2 data_386 + 0 3 3 1 1 2 1 data_387 + 1 3 3 1 1 2 2 data_388 + 0 3 3 1 1 3 1 data_389 + 1 3 3 1 1 3 2 data_390 + 0 3 3 1 1 4 1 data_391 + 1 3 3 1 1 4 2 data_392 + 0 3 3 1 2 1 1 data_393 + 1 3 3 1 2 1 2 data_394 + 1 3 3 1 2 2 1 data_395 + 0 3 3 1 2 2 2 data_396 + 1 3 3 1 2 3 1 data_397 + 0 3 3 1 2 3 2 data_398 + 1 3 3 1 2 4 1 data_399 + 0 3 3 1 2 4 2 data_400 + 0 3 3 1 3 1 1 data_401 + 1 3 3 1 3 1 2 data_402 + 1 3 3 1 3 2 1 data_403 + 0 3 3 1 3 2 2 data_404 + 1 3 3 1 3 3 1 data_405 + 0 3 3 1 3 3 2 data_406 + 1 3 3 1 3 4 1 data_407 + 0 3 3 1 3 4 2 data_408 + 0 3 3 2 1 1 1 data_409 + 1 3 3 2 1 1 2 data_410 + 1 3 3 2 1 2 1 data_411 + 0 3 3 2 1 2 2 data_412 + 1 3 3 2 1 3 1 data_413 + 0 3 3 2 1 3 2 data_414 + 1 3 3 2 1 4 1 data_415 + 0 3 3 2 1 4 2 data_416 + 1 3 3 2 2 1 1 data_417 + 0 3 3 2 2 1 2 data_418 + 0 3 3 2 2 2 1 data_419 + 0 3 3 2 2 2 2 data_420 + 0 3 3 2 2 3 1 data_421 + 0 3 3 2 2 3 2 data_422 + 0 3 3 2 2 4 1 data_423 + 0 3 3 2 2 4 2 data_424 + 1 3 3 2 3 1 1 data_425 + 0 3 3 2 3 1 2 data_426 + 0 3 3 2 3 2 1 data_427 + 0 3 3 2 3 2 2 data_428 + 0 3 3 2 3 3 1 data_429 + 0 3 3 2 3 3 2 data_430 + 0 3 3 2 3 4 1 data_431 + 0 3 3 2 3 4 2 data_432 diff --git a/Code/datasets/monks-2.train b/Code/datasets/monks-2.train new file mode 100644 index 0000000..ef18038 --- /dev/null +++ b/Code/datasets/monks-2.train @@ -0,0 +1,169 @@ + 0 1 1 1 1 2 2 data_4 + 0 1 1 1 1 4 1 data_7 + 0 1 1 1 2 1 1 data_9 + 0 1 1 1 2 1 2 data_10 + 0 1 1 1 2 2 1 data_11 + 0 1 1 1 2 3 1 data_13 + 0 1 1 1 2 4 1 data_15 + 0 1 1 1 3 2 1 data_19 + 0 1 1 1 3 4 1 data_23 + 0 1 1 2 1 1 1 data_25 + 0 1 1 2 1 1 2 data_26 + 0 1 1 2 2 3 1 data_37 + 0 1 1 2 2 4 1 data_39 + 1 1 1 2 2 4 2 data_40 + 0 1 1 2 3 1 2 data_42 + 1 1 1 2 3 2 2 data_44 + 0 1 2 1 1 1 2 data_50 + 0 1 2 1 2 1 2 data_58 + 1 1 2 1 2 2 2 data_60 + 0 1 2 1 2 3 1 data_61 + 1 1 2 1 2 3 2 data_62 + 0 1 2 1 2 4 1 data_63 + 0 1 2 1 3 1 1 data_65 + 0 1 2 1 3 1 2 data_66 + 1 1 2 1 3 2 2 data_68 + 0 1 2 1 3 3 1 data_69 + 1 1 2 1 3 3 2 data_70 + 0 1 2 1 3 4 1 data_71 + 1 1 2 1 3 4 2 data_72 + 0 1 2 2 1 2 1 data_75 + 0 1 2 2 1 4 1 data_79 + 1 1 2 2 2 3 1 data_85 + 1 1 2 2 2 4 1 data_87 + 0 1 2 2 3 1 1 data_89 + 1 1 2 2 3 1 2 data_90 + 1 1 2 2 3 3 1 data_93 + 0 1 2 2 3 3 2 data_94 + 1 1 2 2 3 4 1 data_95 + 0 1 2 2 3 4 2 data_96 + 0 1 3 1 1 1 2 data_98 + 0 1 3 1 1 2 2 data_100 + 0 1 3 1 1 3 1 data_101 + 0 1 3 1 1 3 2 data_102 + 0 1 3 1 2 2 1 data_107 + 1 1 3 1 2 2 2 data_108 + 1 1 3 1 2 3 2 data_110 + 0 1 3 1 2 4 1 data_111 + 1 1 3 1 3 2 2 data_116 + 0 1 3 1 3 3 1 data_117 + 1 1 3 1 3 4 2 data_120 + 0 1 3 2 1 3 1 data_125 + 1 1 3 2 1 3 2 data_126 + 0 1 3 2 1 4 1 data_127 + 1 1 3 2 2 1 2 data_130 + 0 1 3 2 2 3 2 data_134 + 0 1 3 2 2 4 2 data_136 + 1 1 3 2 3 2 1 data_139 + 0 2 1 1 1 1 1 data_145 + 0 2 1 1 1 2 2 data_148 + 0 2 1 1 1 3 1 data_149 + 1 2 1 1 2 2 2 data_156 + 0 2 1 1 3 1 2 data_162 + 1 2 1 1 3 2 2 data_164 + 1 2 1 1 3 3 2 data_166 + 0 2 1 1 3 4 1 data_167 + 0 2 1 2 1 1 1 data_169 + 1 2 1 2 1 2 2 data_172 + 0 2 1 2 1 4 1 data_175 + 1 2 1 2 2 2 1 data_179 + 0 2 1 2 2 4 2 data_184 + 0 2 1 2 3 1 1 data_185 + 1 2 1 2 3 1 2 data_186 + 0 2 1 2 3 2 2 data_188 + 0 2 1 2 3 3 2 data_190 + 0 2 1 2 3 4 2 data_192 + 0 2 2 1 1 3 1 data_197 + 1 2 2 1 1 4 2 data_200 + 0 2 2 1 2 1 1 data_201 + 1 2 2 1 2 3 1 data_205 + 1 2 2 1 3 3 1 data_213 + 0 2 2 1 3 3 2 data_214 + 1 2 2 1 3 4 1 data_215 + 0 2 2 2 1 1 1 data_217 + 0 2 2 2 1 2 2 data_220 + 0 2 2 2 1 3 2 data_222 + 1 2 2 2 1 4 1 data_223 + 0 2 2 2 1 4 2 data_224 + 1 2 2 2 2 1 1 data_225 + 0 2 2 2 2 2 2 data_228 + 0 2 2 2 2 3 1 data_229 + 1 2 2 2 3 1 1 data_233 + 0 2 2 2 3 2 1 data_235 + 0 2 2 2 3 2 2 data_236 + 0 2 2 2 3 4 2 data_240 + 0 2 3 1 1 1 1 data_241 + 0 2 3 1 1 1 2 data_242 + 1 2 3 1 1 3 2 data_246 + 0 2 3 1 2 1 1 data_249 + 1 2 3 1 2 3 1 data_253 + 0 2 3 1 2 3 2 data_254 + 0 2 3 1 2 4 2 data_256 + 1 2 3 1 3 1 2 data_258 + 1 2 3 1 3 2 1 data_259 + 1 2 3 1 3 4 1 data_263 + 1 2 3 2 1 1 2 data_266 + 1 2 3 2 1 2 1 data_267 + 1 2 3 2 1 3 1 data_269 + 0 2 3 2 1 4 2 data_272 + 1 2 3 2 2 1 1 data_273 + 0 2 3 2 2 2 1 data_275 + 0 2 3 2 2 3 2 data_278 + 0 2 3 2 3 3 1 data_285 + 0 2 3 2 3 3 2 data_286 + 0 2 3 2 3 4 2 data_288 + 0 3 1 1 1 4 1 data_295 + 0 3 1 1 2 1 2 data_298 + 1 3 1 1 2 2 2 data_300 + 1 3 1 1 2 3 2 data_302 + 0 3 1 1 2 4 1 data_303 + 1 3 1 1 2 4 2 data_304 + 0 3 1 1 3 1 1 data_305 + 0 3 1 1 3 1 2 data_306 + 1 3 1 1 3 2 2 data_308 + 1 3 1 1 3 3 2 data_310 + 0 3 1 2 1 1 1 data_313 + 1 3 1 2 1 2 2 data_316 + 0 3 1 2 1 3 1 data_317 + 1 3 1 2 1 3 2 data_318 + 0 3 1 2 1 4 1 data_319 + 1 3 1 2 1 4 2 data_320 + 1 3 1 2 2 2 1 data_323 + 1 3 1 2 3 1 2 data_330 + 1 3 1 2 3 2 1 data_331 + 0 3 1 2 3 2 2 data_332 + 0 3 1 2 3 4 2 data_336 + 0 3 2 1 1 1 2 data_338 + 1 3 2 1 1 2 2 data_340 + 0 3 2 1 1 3 1 data_341 + 1 3 2 1 1 3 2 data_342 + 1 3 2 1 2 1 2 data_346 + 1 3 2 1 2 2 1 data_347 + 0 3 2 1 3 1 1 data_353 + 1 3 2 1 3 2 1 data_355 + 1 3 2 1 3 3 1 data_357 + 0 3 2 1 3 3 2 data_358 + 0 3 2 2 1 1 1 data_361 + 0 3 2 2 1 2 2 data_364 + 1 3 2 2 1 3 1 data_365 + 0 3 2 2 1 3 2 data_366 + 1 3 2 2 2 1 1 data_369 + 0 3 2 2 2 2 1 data_371 + 0 3 2 2 2 2 2 data_372 + 0 3 2 2 2 3 2 data_374 + 1 3 2 2 3 1 1 data_377 + 0 3 2 2 3 3 2 data_382 + 0 3 2 2 3 4 2 data_384 + 0 3 3 1 1 1 1 data_385 + 0 3 3 1 1 2 1 data_387 + 0 3 3 1 1 3 1 data_389 + 1 3 3 1 1 3 2 data_390 + 0 3 3 1 2 3 2 data_398 + 0 3 3 2 1 1 1 data_409 + 1 3 3 2 2 1 1 data_417 + 0 3 3 2 2 2 1 data_419 + 0 3 3 2 2 3 1 data_421 + 0 3 3 2 2 3 2 data_422 + 1 3 3 2 3 1 1 data_425 + 0 3 3 2 3 2 1 data_427 + 0 3 3 2 3 4 2 data_432 diff --git a/Code/datasets/monks-3.test b/Code/datasets/monks-3.test new file mode 100644 index 0000000..bfa44e2 --- /dev/null +++ b/Code/datasets/monks-3.test @@ -0,0 +1,432 @@ + 1 1 1 1 1 1 1 data_1 + 1 1 1 1 1 1 2 data_2 + 1 1 1 1 1 2 1 data_3 + 1 1 1 1 1 2 2 data_4 + 1 1 1 1 1 3 1 data_5 + 1 1 1 1 1 3 2 data_6 + 0 1 1 1 1 4 1 data_7 + 0 1 1 1 1 4 2 data_8 + 1 1 1 1 2 1 1 data_9 + 1 1 1 1 2 1 2 data_10 + 1 1 1 1 2 2 1 data_11 + 1 1 1 1 2 2 2 data_12 + 1 1 1 1 2 3 1 data_13 + 1 1 1 1 2 3 2 data_14 + 0 1 1 1 2 4 1 data_15 + 0 1 1 1 2 4 2 data_16 + 1 1 1 1 3 1 1 data_17 + 1 1 1 1 3 1 2 data_18 + 1 1 1 1 3 2 1 data_19 + 1 1 1 1 3 2 2 data_20 + 1 1 1 1 3 3 1 data_21 + 1 1 1 1 3 3 2 data_22 + 0 1 1 1 3 4 1 data_23 + 0 1 1 1 3 4 2 data_24 + 1 1 1 2 1 1 1 data_25 + 1 1 1 2 1 1 2 data_26 + 1 1 1 2 1 2 1 data_27 + 1 1 1 2 1 2 2 data_28 + 1 1 1 2 1 3 1 data_29 + 1 1 1 2 1 3 2 data_30 + 0 1 1 2 1 4 1 data_31 + 0 1 1 2 1 4 2 data_32 + 1 1 1 2 2 1 1 data_33 + 1 1 1 2 2 1 2 data_34 + 1 1 1 2 2 2 1 data_35 + 1 1 1 2 2 2 2 data_36 + 1 1 1 2 2 3 1 data_37 + 1 1 1 2 2 3 2 data_38 + 0 1 1 2 2 4 1 data_39 + 0 1 1 2 2 4 2 data_40 + 1 1 1 2 3 1 1 data_41 + 1 1 1 2 3 1 2 data_42 + 1 1 1 2 3 2 1 data_43 + 1 1 1 2 3 2 2 data_44 + 1 1 1 2 3 3 1 data_45 + 1 1 1 2 3 3 2 data_46 + 0 1 1 2 3 4 1 data_47 + 0 1 1 2 3 4 2 data_48 + 1 1 2 1 1 1 1 data_49 + 1 1 2 1 1 1 2 data_50 + 1 1 2 1 1 2 1 data_51 + 1 1 2 1 1 2 2 data_52 + 1 1 2 1 1 3 1 data_53 + 1 1 2 1 1 3 2 data_54 + 0 1 2 1 1 4 1 data_55 + 0 1 2 1 1 4 2 data_56 + 1 1 2 1 2 1 1 data_57 + 1 1 2 1 2 1 2 data_58 + 1 1 2 1 2 2 1 data_59 + 1 1 2 1 2 2 2 data_60 + 1 1 2 1 2 3 1 data_61 + 1 1 2 1 2 3 2 data_62 + 0 1 2 1 2 4 1 data_63 + 0 1 2 1 2 4 2 data_64 + 1 1 2 1 3 1 1 data_65 + 1 1 2 1 3 1 2 data_66 + 1 1 2 1 3 2 1 data_67 + 1 1 2 1 3 2 2 data_68 + 1 1 2 1 3 3 1 data_69 + 1 1 2 1 3 3 2 data_70 + 0 1 2 1 3 4 1 data_71 + 0 1 2 1 3 4 2 data_72 + 1 1 2 2 1 1 1 data_73 + 1 1 2 2 1 1 2 data_74 + 1 1 2 2 1 2 1 data_75 + 1 1 2 2 1 2 2 data_76 + 1 1 2 2 1 3 1 data_77 + 1 1 2 2 1 3 2 data_78 + 0 1 2 2 1 4 1 data_79 + 0 1 2 2 1 4 2 data_80 + 1 1 2 2 2 1 1 data_81 + 1 1 2 2 2 1 2 data_82 + 1 1 2 2 2 2 1 data_83 + 1 1 2 2 2 2 2 data_84 + 1 1 2 2 2 3 1 data_85 + 1 1 2 2 2 3 2 data_86 + 0 1 2 2 2 4 1 data_87 + 0 1 2 2 2 4 2 data_88 + 1 1 2 2 3 1 1 data_89 + 1 1 2 2 3 1 2 data_90 + 1 1 2 2 3 2 1 data_91 + 1 1 2 2 3 2 2 data_92 + 1 1 2 2 3 3 1 data_93 + 1 1 2 2 3 3 2 data_94 + 0 1 2 2 3 4 1 data_95 + 0 1 2 2 3 4 2 data_96 + 0 1 3 1 1 1 1 data_97 + 0 1 3 1 1 1 2 data_98 + 0 1 3 1 1 2 1 data_99 + 0 1 3 1 1 2 2 data_100 + 1 1 3 1 1 3 1 data_101 + 1 1 3 1 1 3 2 data_102 + 0 1 3 1 1 4 1 data_103 + 0 1 3 1 1 4 2 data_104 + 0 1 3 1 2 1 1 data_105 + 0 1 3 1 2 1 2 data_106 + 0 1 3 1 2 2 1 data_107 + 0 1 3 1 2 2 2 data_108 + 0 1 3 1 2 3 1 data_109 + 0 1 3 1 2 3 2 data_110 + 0 1 3 1 2 4 1 data_111 + 0 1 3 1 2 4 2 data_112 + 0 1 3 1 3 1 1 data_113 + 0 1 3 1 3 1 2 data_114 + 0 1 3 1 3 2 1 data_115 + 0 1 3 1 3 2 2 data_116 + 0 1 3 1 3 3 1 data_117 + 0 1 3 1 3 3 2 data_118 + 0 1 3 1 3 4 1 data_119 + 0 1 3 1 3 4 2 data_120 + 0 1 3 2 1 1 1 data_121 + 0 1 3 2 1 1 2 data_122 + 0 1 3 2 1 2 1 data_123 + 0 1 3 2 1 2 2 data_124 + 1 1 3 2 1 3 1 data_125 + 1 1 3 2 1 3 2 data_126 + 0 1 3 2 1 4 1 data_127 + 0 1 3 2 1 4 2 data_128 + 0 1 3 2 2 1 1 data_129 + 0 1 3 2 2 1 2 data_130 + 0 1 3 2 2 2 1 data_131 + 0 1 3 2 2 2 2 data_132 + 0 1 3 2 2 3 1 data_133 + 0 1 3 2 2 3 2 data_134 + 0 1 3 2 2 4 1 data_135 + 0 1 3 2 2 4 2 data_136 + 0 1 3 2 3 1 1 data_137 + 0 1 3 2 3 1 2 data_138 + 0 1 3 2 3 2 1 data_139 + 0 1 3 2 3 2 2 data_140 + 0 1 3 2 3 3 1 data_141 + 0 1 3 2 3 3 2 data_142 + 0 1 3 2 3 4 1 data_143 + 0 1 3 2 3 4 2 data_144 + 1 2 1 1 1 1 1 data_145 + 1 2 1 1 1 1 2 data_146 + 1 2 1 1 1 2 1 data_147 + 1 2 1 1 1 2 2 data_148 + 1 2 1 1 1 3 1 data_149 + 1 2 1 1 1 3 2 data_150 + 0 2 1 1 1 4 1 data_151 + 0 2 1 1 1 4 2 data_152 + 1 2 1 1 2 1 1 data_153 + 1 2 1 1 2 1 2 data_154 + 1 2 1 1 2 2 1 data_155 + 1 2 1 1 2 2 2 data_156 + 1 2 1 1 2 3 1 data_157 + 1 2 1 1 2 3 2 data_158 + 0 2 1 1 2 4 1 data_159 + 0 2 1 1 2 4 2 data_160 + 1 2 1 1 3 1 1 data_161 + 1 2 1 1 3 1 2 data_162 + 1 2 1 1 3 2 1 data_163 + 1 2 1 1 3 2 2 data_164 + 1 2 1 1 3 3 1 data_165 + 1 2 1 1 3 3 2 data_166 + 0 2 1 1 3 4 1 data_167 + 0 2 1 1 3 4 2 data_168 + 1 2 1 2 1 1 1 data_169 + 1 2 1 2 1 1 2 data_170 + 1 2 1 2 1 2 1 data_171 + 1 2 1 2 1 2 2 data_172 + 1 2 1 2 1 3 1 data_173 + 1 2 1 2 1 3 2 data_174 + 0 2 1 2 1 4 1 data_175 + 0 2 1 2 1 4 2 data_176 + 1 2 1 2 2 1 1 data_177 + 1 2 1 2 2 1 2 data_178 + 1 2 1 2 2 2 1 data_179 + 1 2 1 2 2 2 2 data_180 + 1 2 1 2 2 3 1 data_181 + 1 2 1 2 2 3 2 data_182 + 0 2 1 2 2 4 1 data_183 + 0 2 1 2 2 4 2 data_184 + 1 2 1 2 3 1 1 data_185 + 1 2 1 2 3 1 2 data_186 + 1 2 1 2 3 2 1 data_187 + 1 2 1 2 3 2 2 data_188 + 1 2 1 2 3 3 1 data_189 + 1 2 1 2 3 3 2 data_190 + 0 2 1 2 3 4 1 data_191 + 0 2 1 2 3 4 2 data_192 + 1 2 2 1 1 1 1 data_193 + 1 2 2 1 1 1 2 data_194 + 1 2 2 1 1 2 1 data_195 + 1 2 2 1 1 2 2 data_196 + 1 2 2 1 1 3 1 data_197 + 1 2 2 1 1 3 2 data_198 + 0 2 2 1 1 4 1 data_199 + 0 2 2 1 1 4 2 data_200 + 1 2 2 1 2 1 1 data_201 + 1 2 2 1 2 1 2 data_202 + 1 2 2 1 2 2 1 data_203 + 1 2 2 1 2 2 2 data_204 + 1 2 2 1 2 3 1 data_205 + 1 2 2 1 2 3 2 data_206 + 0 2 2 1 2 4 1 data_207 + 0 2 2 1 2 4 2 data_208 + 1 2 2 1 3 1 1 data_209 + 1 2 2 1 3 1 2 data_210 + 1 2 2 1 3 2 1 data_211 + 1 2 2 1 3 2 2 data_212 + 1 2 2 1 3 3 1 data_213 + 1 2 2 1 3 3 2 data_214 + 0 2 2 1 3 4 1 data_215 + 0 2 2 1 3 4 2 data_216 + 1 2 2 2 1 1 1 data_217 + 1 2 2 2 1 1 2 data_218 + 1 2 2 2 1 2 1 data_219 + 1 2 2 2 1 2 2 data_220 + 1 2 2 2 1 3 1 data_221 + 1 2 2 2 1 3 2 data_222 + 0 2 2 2 1 4 1 data_223 + 0 2 2 2 1 4 2 data_224 + 1 2 2 2 2 1 1 data_225 + 1 2 2 2 2 1 2 data_226 + 1 2 2 2 2 2 1 data_227 + 1 2 2 2 2 2 2 data_228 + 1 2 2 2 2 3 1 data_229 + 1 2 2 2 2 3 2 data_230 + 0 2 2 2 2 4 1 data_231 + 0 2 2 2 2 4 2 data_232 + 1 2 2 2 3 1 1 data_233 + 1 2 2 2 3 1 2 data_234 + 1 2 2 2 3 2 1 data_235 + 1 2 2 2 3 2 2 data_236 + 1 2 2 2 3 3 1 data_237 + 1 2 2 2 3 3 2 data_238 + 0 2 2 2 3 4 1 data_239 + 0 2 2 2 3 4 2 data_240 + 0 2 3 1 1 1 1 data_241 + 0 2 3 1 1 1 2 data_242 + 0 2 3 1 1 2 1 data_243 + 0 2 3 1 1 2 2 data_244 + 1 2 3 1 1 3 1 data_245 + 1 2 3 1 1 3 2 data_246 + 0 2 3 1 1 4 1 data_247 + 0 2 3 1 1 4 2 data_248 + 0 2 3 1 2 1 1 data_249 + 0 2 3 1 2 1 2 data_250 + 0 2 3 1 2 2 1 data_251 + 0 2 3 1 2 2 2 data_252 + 0 2 3 1 2 3 1 data_253 + 0 2 3 1 2 3 2 data_254 + 0 2 3 1 2 4 1 data_255 + 0 2 3 1 2 4 2 data_256 + 0 2 3 1 3 1 1 data_257 + 0 2 3 1 3 1 2 data_258 + 0 2 3 1 3 2 1 data_259 + 0 2 3 1 3 2 2 data_260 + 0 2 3 1 3 3 1 data_261 + 0 2 3 1 3 3 2 data_262 + 0 2 3 1 3 4 1 data_263 + 0 2 3 1 3 4 2 data_264 + 0 2 3 2 1 1 1 data_265 + 0 2 3 2 1 1 2 data_266 + 0 2 3 2 1 2 1 data_267 + 0 2 3 2 1 2 2 data_268 + 1 2 3 2 1 3 1 data_269 + 1 2 3 2 1 3 2 data_270 + 0 2 3 2 1 4 1 data_271 + 0 2 3 2 1 4 2 data_272 + 0 2 3 2 2 1 1 data_273 + 0 2 3 2 2 1 2 data_274 + 0 2 3 2 2 2 1 data_275 + 0 2 3 2 2 2 2 data_276 + 0 2 3 2 2 3 1 data_277 + 0 2 3 2 2 3 2 data_278 + 0 2 3 2 2 4 1 data_279 + 0 2 3 2 2 4 2 data_280 + 0 2 3 2 3 1 1 data_281 + 0 2 3 2 3 1 2 data_282 + 0 2 3 2 3 2 1 data_283 + 0 2 3 2 3 2 2 data_284 + 0 2 3 2 3 3 1 data_285 + 0 2 3 2 3 3 2 data_286 + 0 2 3 2 3 4 1 data_287 + 0 2 3 2 3 4 2 data_288 + 1 3 1 1 1 1 1 data_289 + 1 3 1 1 1 1 2 data_290 + 1 3 1 1 1 2 1 data_291 + 1 3 1 1 1 2 2 data_292 + 1 3 1 1 1 3 1 data_293 + 1 3 1 1 1 3 2 data_294 + 0 3 1 1 1 4 1 data_295 + 0 3 1 1 1 4 2 data_296 + 1 3 1 1 2 1 1 data_297 + 1 3 1 1 2 1 2 data_298 + 1 3 1 1 2 2 1 data_299 + 1 3 1 1 2 2 2 data_300 + 1 3 1 1 2 3 1 data_301 + 1 3 1 1 2 3 2 data_302 + 0 3 1 1 2 4 1 data_303 + 0 3 1 1 2 4 2 data_304 + 1 3 1 1 3 1 1 data_305 + 1 3 1 1 3 1 2 data_306 + 1 3 1 1 3 2 1 data_307 + 1 3 1 1 3 2 2 data_308 + 1 3 1 1 3 3 1 data_309 + 1 3 1 1 3 3 2 data_310 + 0 3 1 1 3 4 1 data_311 + 0 3 1 1 3 4 2 data_312 + 1 3 1 2 1 1 1 data_313 + 1 3 1 2 1 1 2 data_314 + 1 3 1 2 1 2 1 data_315 + 1 3 1 2 1 2 2 data_316 + 1 3 1 2 1 3 1 data_317 + 1 3 1 2 1 3 2 data_318 + 0 3 1 2 1 4 1 data_319 + 0 3 1 2 1 4 2 data_320 + 1 3 1 2 2 1 1 data_321 + 1 3 1 2 2 1 2 data_322 + 1 3 1 2 2 2 1 data_323 + 1 3 1 2 2 2 2 data_324 + 1 3 1 2 2 3 1 data_325 + 1 3 1 2 2 3 2 data_326 + 0 3 1 2 2 4 1 data_327 + 0 3 1 2 2 4 2 data_328 + 1 3 1 2 3 1 1 data_329 + 1 3 1 2 3 1 2 data_330 + 1 3 1 2 3 2 1 data_331 + 1 3 1 2 3 2 2 data_332 + 1 3 1 2 3 3 1 data_333 + 1 3 1 2 3 3 2 data_334 + 0 3 1 2 3 4 1 data_335 + 0 3 1 2 3 4 2 data_336 + 1 3 2 1 1 1 1 data_337 + 1 3 2 1 1 1 2 data_338 + 1 3 2 1 1 2 1 data_339 + 1 3 2 1 1 2 2 data_340 + 1 3 2 1 1 3 1 data_341 + 1 3 2 1 1 3 2 data_342 + 0 3 2 1 1 4 1 data_343 + 0 3 2 1 1 4 2 data_344 + 1 3 2 1 2 1 1 data_345 + 1 3 2 1 2 1 2 data_346 + 1 3 2 1 2 2 1 data_347 + 1 3 2 1 2 2 2 data_348 + 1 3 2 1 2 3 1 data_349 + 1 3 2 1 2 3 2 data_350 + 0 3 2 1 2 4 1 data_351 + 0 3 2 1 2 4 2 data_352 + 1 3 2 1 3 1 1 data_353 + 1 3 2 1 3 1 2 data_354 + 1 3 2 1 3 2 1 data_355 + 1 3 2 1 3 2 2 data_356 + 1 3 2 1 3 3 1 data_357 + 1 3 2 1 3 3 2 data_358 + 0 3 2 1 3 4 1 data_359 + 0 3 2 1 3 4 2 data_360 + 1 3 2 2 1 1 1 data_361 + 1 3 2 2 1 1 2 data_362 + 1 3 2 2 1 2 1 data_363 + 1 3 2 2 1 2 2 data_364 + 1 3 2 2 1 3 1 data_365 + 1 3 2 2 1 3 2 data_366 + 0 3 2 2 1 4 1 data_367 + 0 3 2 2 1 4 2 data_368 + 1 3 2 2 2 1 1 data_369 + 1 3 2 2 2 1 2 data_370 + 1 3 2 2 2 2 1 data_371 + 1 3 2 2 2 2 2 data_372 + 1 3 2 2 2 3 1 data_373 + 1 3 2 2 2 3 2 data_374 + 0 3 2 2 2 4 1 data_375 + 0 3 2 2 2 4 2 data_376 + 1 3 2 2 3 1 1 data_377 + 1 3 2 2 3 1 2 data_378 + 1 3 2 2 3 2 1 data_379 + 1 3 2 2 3 2 2 data_380 + 1 3 2 2 3 3 1 data_381 + 1 3 2 2 3 3 2 data_382 + 0 3 2 2 3 4 1 data_383 + 0 3 2 2 3 4 2 data_384 + 0 3 3 1 1 1 1 data_385 + 0 3 3 1 1 1 2 data_386 + 0 3 3 1 1 2 1 data_387 + 0 3 3 1 1 2 2 data_388 + 1 3 3 1 1 3 1 data_389 + 1 3 3 1 1 3 2 data_390 + 0 3 3 1 1 4 1 data_391 + 0 3 3 1 1 4 2 data_392 + 0 3 3 1 2 1 1 data_393 + 0 3 3 1 2 1 2 data_394 + 0 3 3 1 2 2 1 data_395 + 0 3 3 1 2 2 2 data_396 + 0 3 3 1 2 3 1 data_397 + 0 3 3 1 2 3 2 data_398 + 0 3 3 1 2 4 1 data_399 + 0 3 3 1 2 4 2 data_400 + 0 3 3 1 3 1 1 data_401 + 0 3 3 1 3 1 2 data_402 + 0 3 3 1 3 2 1 data_403 + 0 3 3 1 3 2 2 data_404 + 0 3 3 1 3 3 1 data_405 + 0 3 3 1 3 3 2 data_406 + 0 3 3 1 3 4 1 data_407 + 0 3 3 1 3 4 2 data_408 + 0 3 3 2 1 1 1 data_409 + 0 3 3 2 1 1 2 data_410 + 0 3 3 2 1 2 1 data_411 + 0 3 3 2 1 2 2 data_412 + 1 3 3 2 1 3 1 data_413 + 1 3 3 2 1 3 2 data_414 + 0 3 3 2 1 4 1 data_415 + 0 3 3 2 1 4 2 data_416 + 0 3 3 2 2 1 1 data_417 + 0 3 3 2 2 1 2 data_418 + 0 3 3 2 2 2 1 data_419 + 0 3 3 2 2 2 2 data_420 + 0 3 3 2 2 3 1 data_421 + 0 3 3 2 2 3 2 data_422 + 0 3 3 2 2 4 1 data_423 + 0 3 3 2 2 4 2 data_424 + 0 3 3 2 3 1 1 data_425 + 0 3 3 2 3 1 2 data_426 + 0 3 3 2 3 2 1 data_427 + 0 3 3 2 3 2 2 data_428 + 0 3 3 2 3 3 1 data_429 + 0 3 3 2 3 3 2 data_430 + 0 3 3 2 3 4 1 data_431 + 0 3 3 2 3 4 2 data_432 diff --git a/Code/datasets/monks-3.train b/Code/datasets/monks-3.train new file mode 100644 index 0000000..c4569a8 --- /dev/null +++ b/Code/datasets/monks-3.train @@ -0,0 +1,122 @@ + 1 1 1 1 1 1 2 data_2 + 1 1 1 1 1 2 1 data_3 + 1 1 1 1 1 2 2 data_4 + 0 1 1 1 1 3 1 data_5 + 0 1 1 1 1 4 1 data_7 + 1 1 1 1 2 1 1 data_9 + 1 1 1 1 2 2 2 data_12 + 0 1 1 1 2 4 2 data_16 + 1 1 1 2 1 2 2 data_28 + 0 1 1 2 1 4 2 data_32 + 1 1 1 2 2 2 2 data_36 + 0 1 1 2 2 4 1 data_39 + 0 1 1 2 2 4 2 data_40 + 1 1 1 2 3 1 1 data_41 + 1 1 1 2 3 1 2 data_42 + 1 1 1 2 3 3 1 data_45 + 1 1 1 2 3 3 2 data_46 + 1 1 2 1 1 3 1 data_53 + 1 1 2 1 2 2 1 data_59 + 1 1 2 1 2 2 2 data_60 + 0 1 2 1 2 3 1 data_61 + 1 1 2 1 3 1 1 data_65 + 1 1 2 1 3 1 2 data_66 + 1 1 2 1 3 2 1 data_67 + 1 1 2 1 3 2 2 data_68 + 1 1 2 1 3 3 2 data_70 + 0 1 2 1 3 4 1 data_71 + 1 1 2 2 1 3 1 data_77 + 0 1 2 2 1 4 2 data_80 + 1 1 2 2 2 1 1 data_81 + 1 1 2 2 2 2 1 data_83 + 1 1 2 2 2 2 2 data_84 + 1 1 2 2 3 1 1 data_89 + 1 1 2 2 3 2 1 data_91 + 1 1 2 2 3 2 2 data_92 + 0 1 3 1 1 2 1 data_99 + 0 1 3 1 1 4 1 data_103 + 0 1 3 1 2 3 2 data_110 + 0 1 3 1 2 4 1 data_111 + 0 1 3 1 3 1 1 data_113 + 0 1 3 1 3 3 1 data_117 + 0 1 3 2 1 1 1 data_121 + 0 1 3 2 1 1 2 data_122 + 0 1 3 2 1 2 1 data_123 + 0 1 3 2 1 4 2 data_128 + 0 1 3 2 2 3 2 data_134 + 0 1 3 2 2 4 2 data_136 + 0 1 3 2 3 4 1 data_143 + 1 2 1 1 1 1 1 data_145 + 1 2 1 1 1 1 2 data_146 + 0 2 1 1 1 4 1 data_151 + 0 2 1 1 1 4 2 data_152 + 1 2 1 1 2 1 1 data_153 + 1 2 1 1 2 1 2 data_154 + 1 2 1 1 3 2 2 data_164 + 1 2 1 1 3 3 2 data_166 + 0 2 1 1 3 4 1 data_167 + 1 2 1 2 1 2 2 data_172 + 0 2 1 2 2 4 1 data_183 + 1 2 1 2 3 1 2 data_186 + 1 2 2 1 1 3 2 data_198 + 0 2 2 1 1 4 2 data_200 + 1 2 2 1 2 1 2 data_202 + 0 2 2 1 2 2 1 data_203 + 1 2 2 1 3 1 1 data_209 + 1 2 2 1 3 2 2 data_212 + 0 2 2 1 3 3 1 data_213 + 0 2 2 1 3 3 2 data_214 + 0 2 2 1 3 4 2 data_216 + 1 2 2 2 1 2 2 data_220 + 1 2 2 2 2 1 2 data_226 + 1 2 2 2 2 3 1 data_229 + 1 2 2 2 2 3 2 data_230 + 0 2 2 2 3 4 1 data_239 + 1 2 3 1 1 3 1 data_245 + 0 2 3 1 2 1 1 data_249 + 0 2 3 1 2 2 1 data_251 + 0 2 3 1 2 2 2 data_252 + 0 2 3 1 2 3 2 data_254 + 0 2 3 1 3 3 1 data_261 + 0 2 3 2 1 1 2 data_266 + 0 2 3 2 1 2 2 data_268 + 0 2 3 2 1 4 1 data_271 + 0 2 3 2 2 3 1 data_277 + 0 2 3 2 2 4 2 data_280 + 0 2 3 2 3 1 1 data_281 + 0 2 3 2 3 2 1 data_283 + 0 2 3 2 3 4 2 data_288 + 1 3 1 1 1 1 1 data_289 + 1 3 1 1 1 2 1 data_291 + 1 3 1 1 1 3 1 data_293 + 0 3 1 1 2 4 2 data_304 + 1 3 1 1 3 1 2 data_306 + 0 3 1 1 3 4 2 data_312 + 1 3 1 2 1 2 1 data_315 + 1 3 1 2 2 3 2 data_326 + 0 3 1 2 2 4 2 data_328 + 1 3 1 2 3 1 1 data_329 + 1 3 2 1 1 2 2 data_340 + 0 3 2 1 1 4 1 data_343 + 1 3 2 1 2 3 1 data_349 + 1 3 2 1 3 1 2 data_354 + 1 3 2 2 1 2 2 data_364 + 1 3 2 2 1 3 2 data_366 + 1 3 2 2 2 1 2 data_370 + 1 3 2 2 3 1 1 data_377 + 1 3 2 2 3 3 2 data_382 + 0 3 2 2 3 4 1 data_383 + 1 3 3 1 1 3 2 data_390 + 1 3 3 1 1 4 1 data_391 + 0 3 3 1 2 4 2 data_400 + 0 3 3 1 3 1 1 data_401 + 0 3 3 1 3 2 1 data_403 + 0 3 3 1 3 2 2 data_404 + 0 3 3 1 3 4 1 data_407 + 0 3 3 2 1 1 1 data_409 + 0 3 3 2 1 1 2 data_410 + 0 3 3 2 2 2 2 data_420 + 0 3 3 2 2 3 2 data_422 + 0 3 3 2 3 1 1 data_425 + 0 3 3 2 3 3 2 data_430 + 0 3 3 2 3 4 2 data_432 diff --git a/Code/entrainer_tester.py b/Code/entrainer_tester.py new file mode 100644 index 0000000..6d7623a --- /dev/null +++ b/Code/entrainer_tester.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -* +import numpy as np +import sys +import load_datasets as ld +import BayesNaif # importer la classe du classifieur bayesien +import Knn # importer la classe du Knn +#importer d'autres fichiers et classes si vous en avez développés + + +""" +C'est le fichier main duquel nous allons tout lancer +Vous allez dire en commentaire c'est quoi les paramètres que vous avez utilisés +En gros, vous allez : +1- Initialiser votre classifieur avec ses paramètres +2- Charger les datasets +3- Entrainer votre classifieur +4- Le tester + +""" + +# Initializer vos paramètres + +myKnn = Knn.Knn() + +# Initializer/instanciez vos classifieurs avec leurs paramètres + + + + + +# Charger/lire les datasets + +train, train_labels, test, test_labels = ld.load_iris_dataset(0.7) + +# Entrainez votre classifieur + +myKnn.train(train, train_labels) + +# Tester votre classifieur + + + + + + diff --git a/Code/load_datasets.py b/Code/load_datasets.py new file mode 100644 index 0000000..29ae4df --- /dev/null +++ b/Code/load_datasets.py @@ -0,0 +1,205 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -* +import numpy as np +import random + +def load_iris_dataset(train_ratio=0.7): + """Cette fonction a pour but de lire le dataset Iris + + Args: + train_ratio: le ratio des exemples (ou instances) qui vont etre attribués à l'entrainement, + le rest des exemples va etre utilisé pour les tests. + Par exemple : si le ratio est 50%, il y aura 50% des exemple (75 exemples) qui vont etre utilisé + pour l'entrainement, et 50% (75 exemples) pour le test. + + Retours: + Cette fonction doit retourner 4 matrices de type Numpy, train, train_labels, test, et test_labels + + - train : une matrice numpy qui contient les exemples qui vont etre utilisés pour l'entrainement, chaque + ligne dans cette matrice représente un exemple (ou instance) d'entrainement. + + - train_labels : contient les labels (ou les étiquettes) pour chaque exemple dans train, de telle sorte + que : train_labels[i] est le label (ou l'etiquette) pour l'exemple train[i] + + - test : une matrice numpy qui contient les exemples qui vont etre utilisés pour le test, chaque + ligne dans cette matrice représente un exemple (ou instance) de test. + + - test_labels : contient les labels (ou les étiquettes) pour chaque exemple dans test, de telle sorte + que : test_labels[i] est le label (ou l'etiquette) pour l'exemple test[i] + """ + + random.seed(1) # Pour avoir les meme nombres aléatoires à chaque initialisation. + + # Vous pouvez utiliser des valeurs numériques pour les différents types de classes, tel que : + conversion_labels = {'Iris-setosa': 0, 'Iris-versicolor' : 1, 'Iris-virginica' : 2} + + # Le fichier du dataset est dans le dossier datasets en attaché + + f = open('datasets/bezdekIris.data', 'r') + lines=[line.strip() for line in f.readlines()] + f.close() + + lines=[line.split(",") for line in lines if line] + + features=[] + labels=[] + + for line in lines: + features.append(line[0:4]) + labels.append(conversion_labels[line[4]]) + + np_features=np.array(features,dtype=np.float) + np_labels=np.array(labels,dtype=np.int) + + n_train = int(np_features.shape[0]*train_ratio) + + all_indices = [i for i in range(np_features.shape[0])] + random.shuffle(all_indices) + + train_index = all_indices[0:n_train] + test_index = all_indices[n_train:np_features.shape[0]] + + train = np_features[train_index] + train_labels = np_labels[train_index] + test = np_features[test_index] + test_labels = np_labels[test_index] + + + # REMARQUE très importante : + # remarquez bien comment les exemples sont ordonnés dans + # le fichier du dataset, ils sont ordonnés par type de fleur, cela veut dire que + # si vous lisez les exemples dans cet ordre et que si par exemple votre ration est de 60%, + # vous n'allez avoir aucun exemple du type Iris-virginica pour l'entrainement, pensez + # donc à utiliser la fonction random.shuffle pour melanger les exemples du dataset avant de séparer + # en train et test. + + + # Tres important : la fonction doit retourner 4 matrices (ou vecteurs) de type Numpy. + return (train, train_labels, test, test_labels) + + + +def load_congressional_dataset(train_ratio): + """Cette fonction a pour but de lire le dataset Congressional Voting Records + + Args: + train_ratio: le ratio des exemples (ou instances) qui vont servir pour l'entrainement, + le rest des exemples va etre utilisé pour les test. + + Retours: + Cette fonction doit retourner 4 matrices de type Numpy, train, train_labels, test, et test_labels + + - train : une matrice numpy qui contient les exemples qui vont etre utilisés pour l'entrainement, chaque + ligne dans cette matrice représente un exemple (ou instance) d'entrainement. + + - train_labels : contient les labels (ou les étiquettes) pour chaque exemple dans train, de telle sorte + que : train_labels[i] est le label (ou l'etiquette) pour l'exemple train[i] + + - test : une matrice numpy qui contient les exemples qui vont etre utilisés pour le test, chaque + ligne dans cette matrice représente un exemple (ou instance) de test. + + - test_labels : contient les labels (ou les étiquettes) pour chaque exemple dans test, de telle sorte + que : test_labels[i] est le label (ou l'etiquette) pour l'exemple test[i] + """ + + random.seed(1) # Pour avoir les meme nombres aléatoires à chaque initialisation. + + # Vous pouvez utiliser un dictionnaire pour convertir les attributs en numériques + # Notez bien qu'on a traduit le symbole "?" pour une valeur numérique + # Vous pouvez biensur utiliser d'autres valeurs pour ces attributs + conversion_labels = {'republican' : 0, 'democrat' : 1, + 'n' : 0, 'y' : 1, '?' : 2} + + # Le fichier du dataset est dans le dossier datasets en attaché + f = open('datasets/house-votes-84.data', 'r') + lines=[line.strip() for line in f.readlines()] + f.close() + + lines=[line.split(",") for line in lines if line] + + features=[] + labels=[] + + for line in lines: + features.append([conversion_labels[i] for i in line[1:17]]) + labels.append(conversion_labels[line[0]]) + + np_features=np.array(features,dtype=np.float) + np_labels=np.array(labels,dtype=np.int) + + train_index = np.random.rand(np_features.shape[0]) < train_ratio + + train = np_features[train_index] + train_labels = np_labels[train_index] + test = np_features[~train_index] + test_labels = np_labels[~train_index] + + # La fonction doit retourner 4 structures de données de type Numpy. + return (train, train_labels, test, test_labels) + + +def load_monks_dataset(numero_dataset): + """Cette fonction a pour but de lire le dataset Monks + + Notez bien que ce dataset est différent des autres d'un point de vue + exemples entrainement et exemples de tests. + Pour ce dataset, nous avons 3 différents sous problèmes, et pour chacun + nous disposons d'un fichier contenant les exemples d'entrainement et + d'un fichier contenant les fichiers de tests. Donc nous avons besoin + seulement du numéro du sous problème pour charger le dataset. + + Args: + numero_dataset: lequel des sous problèmes nous voulons charger (1, 2 ou 3 ?) + par exemple, si numero_dataset=2, vous devez lire : + le fichier monks-2.train contenant les exemples pour l'entrainement + et le fichier monks-2.test contenant les exemples pour le test + les fichiers sont tous dans le dossier datasets + Retours: + Cette fonction doit retourner 4 matrices de type Numpy, train, train_labels, test, et test_labels + + - train : une matrice numpy qui contient les exemples qui vont etre utilisés pour l'entrainement, chaque + ligne dans cette matrice représente un exemple (ou instance) d'entrainement. + - train_labels : contient les labels (ou les étiquettes) pour chaque exemple dans train, de telle sorte + que : train_labels[i] est le label (ou l'etiquette) pour l'exemple train[i] + + - test : une matrice numpy qui contient les exemples qui vont etre utilisés pour le test, chaque + ligne dans cette matrice représente un exemple (ou instance) de test. + - test_labels : contient les labels (ou les étiquettes) pour chaque exemple dans test, de telle sorte + que : test_labels[i] est le label (ou l'etiquette) pour l'exemple test[i] + """ + + + # TODO : votre code ici, vous devez lire les fichiers .train et .test selon l'argument numero_dataset + + f = open('datasets/monks-'+str(numero_dataset)+'.train', 'r') + lines_train=[line.strip() for line in f.readlines()] + f.close() + + f = open('datasets/monks-'+str(numero_dataset)+'.test', 'r') + lines_test=[line.strip() for line in f.readlines()] + f.close() + + lines_train=[line.split(" ") for line in lines_train if line] + lines_test=[line.split(" ") for line in lines_test if line] + + features_train=[] + labels_train=[] + features_test=[] + labels_test=[] + + for line in lines_train: + features_train.append(line[1:7]) + labels_train.append(line[0]) + + for line in lines_test: + features_test.append(line[1:7]) + labels_test.append(line[0]) + + train=np.array(features_train,dtype=np.float) + train_labels=np.array(labels_train,dtype=np.int) + + test=np.array(features_test,dtype=np.float) + test_labels=np.array(labels_test,dtype=np.int) + + # La fonction doit retourner 4 matrices (ou vecteurs) de type Numpy. + return (train, train_labels, test, test_labels) \ No newline at end of file