{ "metadata": { "name": "", "signature": "sha256:4bc2c54eae49a8eabd74685c9a836183b3be66b46c8d518e14fd3c7125dd6a75" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Classification lin\u00e9aire" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vous aurez \u00e0 implanter un mod\u00e8le de classification lin\u00e9aire particulier: le perceptron. Il s'agit de la formulation classique (classification binaire) et on vous demande d'utiliser la proc\u00e9dure d'entrainement en-ligne, c'est \u00e0 dire la descente de gradient stochastique.\n", "\n", "Les algorithmes que nous impl\u00e9menterons dor\u00e9navant suivront l'architecture de la classe d\u00e9finit dans la cellule suivante, avec obligatoirement les m\u00e9thodes `train` et `compute_predictions`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%load_ext autoreload\n", "%autoreload 2\n", "%pylab inline\n", "%aimport numpy\n", "np=numpy\n", "import time\n", "import utilitaires5" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The autoreload extension is already loaded. To reload it, use:\n", " %reload_ext autoreload\n", "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "class Algorithme:\n", " def __init__(self, parametres):\n", " \"\"\"\n", " Constructeur de la classe.\n", " \n", " Prend les param\u00e8tres donn\u00e9es \u00e0 la constuction de la classe et initialise ses attribues.\n", " \"\"\"\n", " \n", " def train(self, train_data, autres_parametres):\n", " \"\"\"\n", " Entraine le mod\u00e8le d'apprentissage\n", " \n", " Prend en entr\u00e9e une matrice de donn\u00e9es et entra\u00eene le mod\u00e8le. D'autre param\u00e8tres peuvent \u00eatre d\u00e9fini ici \n", " tel que le nombre d'\u00e9poque d'entra\u00eenement par exemple.\n", " \n", " Parameters\n", " ----------\n", " train_data : array\n", " matrice de dimension (n,d+1) o\u00f9 n est le nombre d'exemples et d le nombre de dimensions.\n", " L'index d+1 de change ligne repr\u00e9sente la classe de l'exemple de cette ligne.\n", " \"\"\"\n", " \n", " def compute_predictions(self, test_data):\n", " \"\"\"\n", " Calcule les pr\u00e9dictions du mod\u00e8le\n", " \n", " Calcule les pr\u00e9dictions \u00e0 partir d'une matrice de test. Donne en sortie une pr\u00e9dictions \n", " pour chaque classe dans le cas d'une classification multiclasse. L'argmax n'est pas calcul\u00e9 dans cette m\u00e9thode.\n", " \n", " Parameters\n", " ----------\n", " test_data : array\n", " matrice de dimension (n,d) o\u00f9 n est le nombre d'exemples et d le nombre de dimensions\n", " \n", " Returns\n", " -------\n", " array\n", " matrice de dimension (n,c) o\u00f9 n est le nombre d'exemples et c le nombre de classe\n", " \"\"\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "L'\u00e9quation de base du perceptron comme vu dans les note de cours est la suivante. On notera ici la version $w$ incluant le biais, donc $w = (b, w_1, w_2, \\dots, w_d)$ et $X_i = (1, X_{i,1}, X_{i,2}, \\dots, X_{i,d})$\n", "\n", "$$f(X_i) = \\hat{y_i} = h\\left(\\sum_{j=0}^d w_j X_{i,j}\\right)=h(w^TX_i)$$ \n", "\n", "o\u00f9 \n", "\n", "$$ \n", " h(a) = \\left\\{ \n", " \\begin{array}{l l}\n", " ~1 & \\quad \\text{si} ~ a > 0\\\\\n", " -1 & \\quad \\text{sinon}\n", " \\end{array} \\right. $$\n", "\n", "La mise \u00e0 jour des gradients se calcule avec le gradient de la fonction de co\u00fbt $L$, qu'on appelle le crit\u00e8re du perceptron, par rapport \u00e0 $w$ comme toujours. En miminisant le co\u00f9t $L$, on exclue les exemples bien classifi\u00e9s et on somme seur l'ensemble de exemples mal classifi\u00e9s $M$.\n", "\n", "$$L = -\\sum_{i \\in M} \\hat{y_i}y_i = -\\sum_{i \\in M} w^TX_iy_i$$\n", "\n", "La d\u00e9riv\u00e9 par rapport \u00e0 $w$ donne donc\n", "\n", "$$\\frac{\\partial L}{\\partial w} = -\\sum_{i \\in M} X_iy_i$$\n", "\n", "Ce qui nous am\u00e8ne \u00e0 l'\u00e9quation de mise \u00e0 jour de $w$ suivante lorsque $X_i$ est mal classifi\u00e9. Sinon, on ne change pas $w$.\n", "\n", "$$w_{t+1} \\leftarrow w_t + \\lambda X_iy_i$$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class Perceptron:\n", "\n", " def __init__(self, mu):\n", " \"\"\"\n", " Constructeur de la classe.\n", " \n", " Prend les param\u00e8tres donn\u00e9es \u00e0 la constuction de la classe et initialise ses attribues.\n", " \"\"\"\n", " # mu est le taux d'apprentissage.\n", " self.mu = mu\n", " \n", " def train(self, train_data, max_epoque=10):#float('inf')):\n", " \"\"\"\n", " Entraine le mod\u00e8le d'apprentissage\n", " \n", " Prend en entr\u00e9e une matrice de donn\u00e9es et entra\u00eene le mod\u00e8le. D'autre param\u00e8tres peuvent \u00eatre d\u00e9fini ici \n", " tel que le nombre d'\u00e9poque d'entra\u00eenement par exemple.\n", " \n", " Parameters\n", " ----------\n", " train_data : array\n", " matrice de dimension (n,d+1) o\u00f9 n est le nombre d'exemples et d le nombre de dimensions.\n", " L'index d+1 de change ligne repr\u00e9sente la classe de l'exemple de cette ligne.\n", " \"\"\"\n", " # Cette fonction doit d\u00e9terminer les valeurs des parametres.\n", " # train_data: chaque ligne contient un exemple (traits et \u00e9tiquette).\n", " \n", " # 1) Initialisation des param\u00e8tres. \n", " # Initialisez les poids \u00e0\u00a0de petites valeurs et le biais \u00e0 0.\n", " self.weights = numpy.random.random(train_data.shape[1])\n", " self.weights[-1] = 0\n", " datas = numpy.array(train_data)\n", " datas[:,-1] = 1\n", " \n", " # 2) Entrainement\n", " # Tant que votre mod\u00e8le n'obtient pas la s\u00e9paration lin\u00e9aire \n", " # des donn\u00e9es continuer la proc\u00e9dure d'entrainement en-ligne.\n", " # C'est sans danger ici, car la d\u00e9mo sp\u00e9cifie des classes qui\n", " # sont lin\u00e9airement s\u00e9parables \u00e9tant donn\u00e9s les attributs.\n", " # - Si erreur -> mise \u00e0 jour des param\u00e8tres.\n", " i = 0\n", " count = 0 # on arr\u00eate quand l'ensemble est lin\u00e9airement s\u00e9par\u00e9\n", " epoque = 0\n", " while count < train_data.shape[0] and epoque < max_epoque:\n", " if (numpy.dot(datas[i], self.weights)) * train_data[i,-1] < 0:\n", " self.weights += self.mu * train_data[i,-1] * datas[i]\n", " count = 0\n", " else:\n", "\t\t\t\tcount = count + 1\n", " i = (i + 1) % train_data.shape[0]\n", " if i==0:\n", " epoque += 1\n", "\n", " def compute_predictions(self, test_data):\n", " \"\"\"\n", " Calcule les pr\u00e9dictions du mod\u00e8le\n", " \n", " Calcule les pr\u00e9dictions \u00e0 partir d'une matrice de test. Donne en sortie une pr\u00e9dictions \n", " pour chaque classe dans le cas d'une classification multiclasse. L'argmax n'est pas calcul\u00e9 dans cette m\u00e9thode.\n", " \n", " Parameters\n", " ----------\n", " test_data : array\n", " matrice de dimension (n,d) o\u00f9 n est le nombre d'exemples et d le nombre de dimensions\n", " \n", " Returns\n", " -------\n", " array\n", " matrice de dimension (n,c) o\u00f9 n est le nombre d'exemples et c le nombre de classe\n", " \"\"\"\n", " \n", " # A COMPL\u00c9TER!\n", " # Cette fonction doit utiliser les param\u00e8tres appris pour calculer\n", " # la valeur de sortie pour les exemples de test_data (un exemple\n", " # par ligne, seulement les traits).\n", " \n", " # 1) Vous devez calculer la vraie valeur de sorties.\n", " sorties = []\n", " for i in range(len(test_data)):\n", " data = []\n", " for j in range(len(test_data[i])):\n", " data.append(test_data[i][j])\n", " data.append(1)\n", " sorties.append(numpy.dot(data, self.weights))\n", " return sorties" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "# On commence par charger iris\n", "iris = np.loadtxt('iris.txt')\n", "data = iris\n", "\n", "# On se limite au cas de la classification BINAIRE donc on va seulement garder \n", "# donn\u00e9es des 2 premi\u00e8res classes.\n", "# Ici on garde juste les exemples avec l'etiquette 1 et 2.\n", "data = data[data[:,-1]<3,:]\n", "# Ici on transforme chaque etiquette qui est egale a 2 en -1, pour avoir les \n", "# m\u00eames \u00e9tiquettes que dans la formulation standard du perceptron (1 et -1).\n", "data[data[:,-1]==2,-1] = -1\n", "\n", "# On se limite \u00e0 des donn\u00e9es dont la dimension est 2, de fa\u00e7on \u00e0 pouvoir visualiser\n", "# la fronti\u00e8re de decision avec la fonction gridplot.\n", "train_cols = [2,3]\n", "# Une variable pour contenir l'indice de la colonne correspondant aux \u00e9tiquettes.\n", "target_ind = [data.shape[1] - 1]\n", "\n", "# Nombre de classes\n", "n_classes = 2\n", "# Nombre de points d'entrainement\n", "n_train = 75\n", "# Taille de la grille = grid_size x grid_size\n", "grid_size = 50\n", "\n", "print \"On va entrainer un perceptron sur \", n_train, \" exemples d'entrainement\"\n", "\n", "# decommenter pour avoir des resultats non-deterministes \n", "random.seed(3395)\n", "\n", "# D\u00e9terminer au hasard des indices pour les exemples d'entrainement et de test\n", "inds = range(data.shape[0])\n", "random.shuffle(inds)\n", "train_inds = inds[:n_train]\n", "test_inds = inds[n_train:]\n", " \n", "# Separer les donnees dans les deux ensembles: entrainement et test.\n", "train_set = data[train_inds,:]\t# garder les bonnes lignes\n", "train_set = train_set[:,train_cols + target_ind] # garder les bonnes colonnes\n", "test_set = data[test_inds,:]\n", "test_set = test_set[:,train_cols + target_ind]\n", "\n", "# Separarer l'ensemble de test: entrees et etiquettes.\n", "test_inputs = test_set[:,:-1]\n", "test_labels = test_set[:,-1]\n", "\n", "# Le taux d'apprentissage\n", "mu = 0.1\n", "\n", "# Cr\u00c3\u00a9er et entrainer le modele\n", "model_perceptron = Perceptron(mu)\n", "model_perceptron.train(train_set)\n", "\n", "# Obtenir les sorties sur l'ensemble de test.\n", "t1 = time.clock()\n", "les_sorties = model_perceptron.compute_predictions(test_inputs)\n", "t2 = time.clock()\n", "print 'Ca nous a pris ', t2-t1, ' secondes pour calculer les predictions sur ', test_inputs.shape[0],' points de test'\n", "\n", "# Convertir les sorties en classe. On prend le signe.\n", "classes_pred = numpy.sign(les_sorties)\n", " \n", "# Mesurer la performance.\n", "err = 1.0 - numpy.mean(test_labels==classes_pred)\n", "print \"L'erreur de test est de \", 100.0 * err,\"%\"\n", "\n", "# Affichage graphique\n", "if len(train_cols) == 2:\n", " # Surface de decision\n", " t1 = time.clock()\n", " utilitaires5.gridplot(model_perceptron,train_set,test_set,n_points = grid_size)\n", " t2 = time.clock()\n", " print 'Ca nous a pris ', t2-t1, ' secondes pour calculer les predictions sur ', grid_size * grid_size, ' points de la grille'\n", " filename = 'grille_' + '_c1=' + str(train_cols[0]) + '_c2=' + str(train_cols[1])+'.png'\n", " print 'On va sauvegarder la figure dans ', filename\n", " pylab.savefig(filename,format='png')\n", " \n", "else:\n", " print 'Trop de dimensions (', len(train_cols),') pour pouvoir afficher la surface de decision'\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "On va entrainer un perceptron sur 75 exemples d'entrainement\n", "Ca nous a pris 0.0 secondes pour calculer les predictions sur 25 points de test\n", "L'erreur de test est de 0.0 %\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nAQcOHz5cEggE/KNGjdpeXV1d2tUn8Fq93n333Zu3bt06OlEd/alTpwq2bdtWHo1G0djY2G3w4MF7\nE+n3a25uTo9GowgGg76JEyd+tGnTpmldXaZr/fr3f//3//LVr3711crKymVdXZZr/SopKTl8/vz5\nnK4ux/V6PfLIIy/++te//mY0ymu0rq4uK962XToFgjnO3u/3B3WcfVeW6Vrq5ptv3tSjR48LXV2O\n66WCgoLT5eXl2wGgW7duTaWlpbtPnjzZu6vLda2Unp7eAgCBQCA5HA57c3Jyaru6TNdSx48fL16+\nfPnsxx9//FfRBB35lqjHVV9fn7Vp06abv/nNb/4GYJo8KyurPt72XeroT5w4UdSnT58afV9cXHz8\nxIkTRV1ZJqsr05EjR0q2bds2euLEiZu7uizXSpFIJKm8vHx7fn7+mVtvvXVDWVlZdVeX6Vrqe9/7\n3v/3r//6r/89KSkp0tVluR7yeDzR6dOnrx03btwnL7zwwoKuLs+11OHDh/vl5uae/cY3vvHbMWPG\nbF2wYMELLS0t6fG271JH39lx9lZ/2Wpqaup2//33L/7pT3/63W7dujV1dXmulZKSkiLbt28vP378\nePG77757y8aNGyu6ukzXSm+//fbcvLy8L0aPHr0tUaPe999/f+q2bdtGr1ixYtbPfvazv9m0adPN\nXV2ma6VQKOTbunXrmCeeeOI/tm7dOiYjI6P56aef/kG87bvU0dtx9je+gsGg/7777vv9ww8//Mrd\nd9+9pKvLcz2UlZVVP2fOnHc++eSTcV1dlmulDz74YMqyZcuq+vXrd/ihhx5atH79+tseeeSRl7q6\nXNdShYWFpwAgNzf37D333PPWli1bJnR1ma6ViouLjxcXFx8fP378xwBw//33L+5ocskudfR2nP2N\nrWg06nnsscd+XVZWVv13f/d3/7ury3Mtde7cuV51dXXZANDa2pq2Zs2aGaNHj97W1eW6Vvrxj3/8\n9zU1NX0OHz7c77XXXpt/2223rX/ppZce6epyXSu1tLSkNzY2ZgJAc3NzxurVq+8YMWLEjq4u17VS\nQUHB6T59+tTs27dvMACsXbt2+rBhw3bFBbq653j58uWzBg8evHfAgAEHfvzjH/+wq8tzLV/z589f\nVFhYeDI5Obm9uLi45je/+c03urpM1/K1adOmaR6PJzJq1Kjt5eXl28rLy7etWLHizq4u17V4ff75\n5yNGjx69ddSoUdtHjBjx+b/8y7/8964u0/V6bdy48SuJNurm0KFD/UaNGrV91KhR24cNG7Yz0XxL\nNBrF9u3bR40bN+7jkSNHfnbPPff8Z0ejbjzRqE2TW1lZWSWy7ApTVlZWVgku6+itrKysElzW0VtZ\nWVkluKyjt7KyskpwWUdvZWVlleCyjt7KysoqwfX/A097p9FB1UGCAAAAAElFTkSuQmCC\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Ca nous a pris 0.39 secondes pour calculer les predictions sur 2500 points de la grille\n", "On va sauvegarder la figure dans grille__c1=2_c2=3.png\n" ] }, { "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }