Created
December 21, 2013 16:45
-
-
Save dhammack/8071840 to your computer and use it in GitHub Desktop.
Logistic Regression. Multiclass (softmax) classification, various nonlinear basis functions, training with gradient descent + momentum, comparisons with sklearn's implementation. Based on Bishop 4.3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"metadata": { | |
"name": "4.3_Logistic_Regression" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "# Logistic and Softmax Regression (classification) #\n\nLogistic Regression is an algorithm for classification (blame the stat guys for that misnomer). Neural networks are built from these (shallow ones, at least). I'm going to do everything in the multiclass case. 4.3.3 (IRLS) is not covered in this notebook.\n\nLogistic regression is discriminative, and the loss function (*cross entropy*) is given by:\n\n$-\\sum_{n=1}^{N}{\\sum_{k=1}^{K}{t_{nk} ln(y_{nk})}}$\n\n\nWhere $N$ is the number of training examples, $K$ is the number of classes, $t_{nk}$ is 1 if training example $n$ is class $k$ and zero otherwise (a one-hot representation), and $y_{nk}$ is the prediction of our model of the probability that training example $n$ is class $k$.\n\nOur model predicts a conditional probability $p(t=k|x;W)$. As we saw with linear basis function models, we can easily work with linear combinations of nonlinear functions of our input. In other words, we first apply a nonlinear transformation to our data and then learn a linear decision boundary. \n\nBecause it's important, I'm going to add a regularization penalty of the form\n\n$\\lambda tr(WW^{T})$, where $W$ is a *matrix* of weights and $tr$ is the trace function. In other words, we penalize the size of each weight vector for the $K$ classes. The dimensions of our weight matrix, $W$, will be $(K,D)$, where $D$ is the dimensionality of our input after being mapped to the new space. Thus $p(t=k|x;W) = W\\phi(x)$, where $\\phi$ is the mapping (basis functions). \n\nEnough, let's see some code." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "#imports\n%pylab inline\nfrom sklearn.datasets import make_classification, load_iris\nfrom sklearn.preprocessing import LabelBinarizer\nfrom sklearn.linear_model import LogisticRegression #for comparison\nfrom sklearn.cross_validation import train_test_split", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "Populating the interactive namespace from numpy and matplotlib\n" | |
} | |
], | |
"prompt_number": 1 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "class LogisticClassifier(object):\n \"\"\"\n Multiclass logistic regression with regularization. Trained with gradient descent + momentum (if desired). \n \"\"\"\n \n def __init__(self, basis=None):\n \"\"\"\n Instantiate a logistic regression model. Specify a custom basis function here,\n it should accept an array and output a (preferably higher dimensional) array.\n The default is the identity function plus a bias term.\n \"\"\"\n self.W = array([])\n self.A = None #the mixing matrix for basis mapping.\n self.basis=basis\n if basis == 'poly':\n self.basisfunc = self.poly_basis\n elif basis == 'rbf':\n self.basisfunc = self.rbf_basis\n elif basis == 'sigmoid':\n self.basisfunc = self.sigmoid_basis\n elif basis == 'rectifier':\n self.basisfunc = self.rectifier_basis\n else:\n self.basisfunc = self.identity\n \n \n def identity(self, x):\n #identity basis function + a bias\n return hstack((x,1))\n \n def poly_basis(self, x):\n #polynomial basis\n degree = 2\n #first mix the components of x in a higher dimension\n xn = dot(self.A,x)\n return self.identity(hstack(tuple(sum(xn**i for i in range(degree)))))\n \n def rbf_basis(self, x):\n #in this case, use the mixing matrix as centroids.\n return self.identity(hstack(tuple(exp(-norm(x-mu)) for mu in self.A)))\n \n def sigmoid_basis(self, x):\n #just like a neural network layer.\n xn = dot(self.A, x)\n return self.identity((1+exp(-xn))**-1)\n \n def rectifier_basis(self, x):\n #used in the latest neural nets\n xn = dot(self.A, x)\n return self.identity(maximum(xn, 0))\n \n def basismap(self, X):\n #if X is an observation matrix (examples by dimensions),\n #return each row mapped to a higher dimsional space\n new_dimensions = self.basisfunc(X[0,:]).shape[0]\n Xn = zeros((X.shape[0], new_dimensions))\n for i,xi in enumerate(X):\n Xn[i,:] = self.basisfunc(xi)\n return Xn\n \n def fit(self, X, Y, itrs=100, learn_rate=0.1, reg=0.1,\n momentum=0.5, report_cost=False, proj_layer_size=10):\n \"\"\"\n Fit the model. \n X - observation matrix (observations by dimensions)\n Y - one-hot target matrix (examples by classes)\n itrs - number of iterations to run\n learn_rate - size of step to use for gradient descent\n reg - regularization penalty (lambda above)\n momentum - weight of the previous gradient in the update step\n report_cost - if true, return the loss function at each step (expensive).\n proj_layer_size - number of dimensions in the projection (mixing) layer. Higher -> more variance\n \"\"\"\n \n #first map to a new basis\n if self.basis != 'rbf':\n self.A = uniform(-1, 1, (proj_layer_size, X.shape[1]))\n else:\n #use the training examples as bases\n self.A = X[permutation(X.shape[0])[:proj_layer_size],:]\n Xn = self.basismap(X)\n \n #set up weights\n self.W = uniform(-0.1, 0.1, (Y.shape[1], Xn.shape[1]))\n \n #optimize\n costs = []\n previous_grad = zeros(self.W.shape) #used in momentum\n for i in range(itrs):\n grad = self.grad(Xn, Y, reg) #compute gradient\n self.W = self.W - learn_rate*(grad + momentum*previous_grad) #take a step, use previous gradient as well.\n previous_grad = grad\n \n if report_cost:\n costs.append(self.loss(X,Y,reg))\n \n return costs\n \n def softmax(self, Z):\n #returns sigmoid elementwise\n Z = maximum(Z, -1e3)\n Z = minimum(Z, 1e3)\n numerator = exp(Z)\n return numerator / sum(numerator, axis=1).reshape((-1,1))\n \n def predict(self, X):\n \"\"\"\n If the model has been trained, makes predictions on an observation matrix (observations by features)\n \"\"\"\n Xn = self.basismap(X)\n return self.softmax(dot(Xn, self.W.T))\n \n def grad(self, Xn, Y, reg):\n \"\"\"\n Returns the gradient of the loss function wrt the weights. \n \"\"\"\n #Xn should be the design matrix\n Yh = self.softmax(dot(Xn, self.W.T))\n return -dot(Y.T-Yh.T,Xn)/Xn.shape[0] + reg*self.W\n \n def loss(self, X, Y, reg):\n #assuming X is the data matrix\n Yh = self.predict(X)\n return -mean(mean(Y*log(Yh))) - reg*trace(dot(self.W,self.W.T))/self.W.shape[0]\n ", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 2 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "I use this plotting code a lot. It required a little modification" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "#nice plotting code from before\ndef plot_contour_scatter(X, Y, model, title_text, binarizer):\n #sample from a lattice (for the nice visualization)\n x1, x2 = meshgrid(arange(-5,5,0.1), arange(-5,5,0.1))\n Xnew = vstack((x1.ravel(), x2.ravel())).T\n \n Z = model.predict(Xnew).reshape((Xnew.shape[0],-1))\n Zc = binarizer.inverse_transform(Z)\n y = binarizer.inverse_transform(Y)\n\n #plot - contour plot and scatter superimposed\n contourf(arange(-5,5,0.1), arange(-5,5,0.1), Zc.reshape(x1.shape),\n cmap ='Paired',levels=arange(0,4,0.1))\n c_dict = {0:'b', 1:'g', 2:'r', 3:'y', 4:'m', 5:'k', 6:'c'}\n colorsToUse= [c_dict[yi] for yi in y]\n scatter(X[:,0], X[:,1], c=colorsToUse)\n title(title_text)\n show()", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 3 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Let's try some toy examples. First we need to get some data." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "# #make data\nX,Y = make_classification(n_features=2, n_informative=2, n_redundant=0,\n n_repeated=0, n_classes=3, n_clusters_per_class=1)\n\n#make Y into a one-hot matrix\nlb = LabelBinarizer()\nY = lb.fit_transform(Y)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 4 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Now we can fit our model. Let's try with no basis functions first." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "#fit\nmodel = LogisticClassifier()\ncosts = model.fit(X,Y,report_cost=True, momentum=0.9, learn_rate=0.1,itrs=500,reg=0.01)\nplot(range(len(costs)), costs)\ntitle('loss over time')\nshow()\nplot_contour_scatter(X,Y, model, 'Logistic Regression, linear basis', lb)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x8b27eb8>" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAEKCAYAAAAyx7/DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8FMX/x/HX3l16I5BKEkggQAhNkA5KQEEEQREsKNi7\n/hS/dlRARfiKBcWuCAoWrF9FLKBiRESK9F4TSnpIQurVnd8fB0ciIUAKyYXP8/HgQe5ub3Z2k7xv\nMjs7oymlFEIIIdyGob4rIIQQ4sxIcAshhJuR4BZCCDcjwS2EEG5GglsIIdyMBLcQQrgZCe5G6u67\n72bq1Kln/L4DBw4QEBDAuTZKdNiwYcyfP7/O9xMbG8vSpUsBmDZtGrfffnud7/N0JCUl8cEHH9Rq\nmX/++ScJCQm1WqY4Sol617JlS/Xrr7/W275/++23Gpczd+5cZTAYlL+/vwoMDFSdOnVS33zzTS3U\nsHGJjY2tlfNd25KSktQHH3xQ39UQp0la3A2ApmlomlZv+1a11Lru168fRUVFFBQUcN9993HdddeR\nn59fK2WXp+t6rZd5LpHz5/4kuBswi8XChAkTiIqKIioqigcffBCr1ep6fcaMGTRv3pzo6Ghmz56N\nwWBg3759ANx00008/fTTAOTm5nLZZZcRHBxMs2bNuPDCC1FKMX78eA4cOMCIESMICAjgpZdeIjU1\nFYPB4PrlzsvL4+abbyYqKoqmTZsyatSok9b32AeApmmMGzcOi8XC3r17Xcfy8MMP07JlSyIiIrj7\n7rsxm82nfSx33303w4YNw9/fn+TkZNLT0xk9ejRhYWG0atWK119/3VXW6tWr6d69O0FBQURERPDQ\nQw8BYDabGTduHCEhIQQHB9OzZ09ycnKAil0FSimmTp1KbGws4eHh3HjjjRQWFgK4zs+8efNo2bIl\noaGhTJs2rVrf3ylTpjB+/PjTKlcpxX//+1/i4+MJCQnhmmuuqfCheNVVVxEZGUmTJk0YMGAA27Zt\nc71W2fmrzJ49e+jVqxdBQUFcccUVp13+jz/+SIcOHQgMDCQ6OpqXX34ZgOTkZGJiYlzbvfDCC0RH\nRxMYGEhCQoKry0hUQ72294VS6uR/Pj/99NOqT58+KicnR+Xk5Ki+ffuqp59+Wiml1E8//aQiIiLU\ntm3bVGlpqbr++uuVpmlq7969SimlbrrpJte2jz/+uLrrrruU3W5XdrtdLV++/KT7TklJUZqmKYfD\n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\nTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x8b275c0>" | |
} | |
], | |
"prompt_number": 5 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "How often is it wrong?\n" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "def error_rate(Yh, Y):\n return sum( not_equal(argmax(Yh,axis=1), argmax(Y,axis=1))) / float(Yh.shape[0]) \n\nprint error_rate(model.predict(X), Y)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.14\n" | |
} | |
], | |
"prompt_number": 6 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Ok. How about a polynomial basis?" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "#fit\nmodel = LogisticClassifier(basis='poly')\ncosts = model.fit(X,Y,report_cost=True, momentum=0.9, learn_rate=0.1,itrs=100,reg=0.01)\nplot(range(len(costs)), costs)\ntitle('loss over time')\nshow()\nplot_contour_scatter(X,Y, model, 'Logistic Regression, polynomial basis', lb)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nYII=\n", | |
"text": "<matplotlib.figure.Figure at 0x8e1a198>" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nlvk/GBwxoEt1760AAAAASUVORK5CYII=\n", | |
"text": "<matplotlib.figure.Figure at 0x8b646a0>" | |
} | |
], | |
"prompt_number": 7 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Not bad - if we zoomed out it would be clear that the decision boundary isn't linear anymore. Let's use a sigmoid basis." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "#fit\nmodel = LogisticClassifier(basis='sigmoid')\ncosts = model.fit(X,Y,report_cost=True, momentum=0.9, learn_rate=0.2,itrs=400,reg=1e-3)\nplot(range(len(costs)), costs)\ntitle('loss over time')\nshow()\nplot_contour_scatter(X,Y, model, 'Logistic Regression, sigmoid basis', lb)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n8BcRcaD/DwIVLZCVBc83AAAAAElFTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x1265fe80>" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x1265fc50>" | |
} | |
], | |
"prompt_number": 8 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Looks nice. The sigmoid basis is important because it's the same thing that each layer of a neural network does (ignoring recent results in deep learning). Each layer in a neural net (Bishop ch5) performs a matrix multiply and then an elementwise sigmoid. In neural nets, however, we use the chain rule to figure out the gradient of the error w.r.t. the layer 1 weight matrix. In this example, it's the same thing but the first layer is static. \n\nWe can also simulate a rbf network by using a rbf basis." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "#fit\nmodel = LogisticClassifier(basis='rbf')\ncosts = model.fit(X,Y,report_cost=True, momentum=0.9, learn_rate=0.15,itrs=300,reg=0.01)\nplot(range(len(costs)), costs)\ntitle('loss over time')\nshow()\nplot_contour_scatter(X,Y, model, 'Logistic Regression, RBF basis', lb)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": "<matplotlib.figure.Figure at 0x8b59b38>" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\ngg==\n", | |
"text": "<matplotlib.figure.Figure at 0x8b53748>" | |
} | |
], | |
"prompt_number": 9 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Highly nonlinear decision boundaries here. This classifier is basically the same as a RBF network. \n\nModern neural nets (deep ones, that is) use an activation function called a rectifier. " | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "#fit\nmodel = LogisticClassifier(basis='rectifier')\ncosts = model.fit(X,Y,report_cost=True, momentum=0.9, learn_rate=0.2,itrs=100,reg=0.01)\nplot(range(len(costs)), costs)\ntitle('loss over time')\nshow()\nplot_contour_scatter(X,Y, model, 'Logistic Regression, linear rectifier basis', lb)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nuel3OHTIFATne37okNmvb9+agqBfv5rHc7e+faFjx4bHocQvIhJgvvkGvvyypiAoLa3ZDh0y75WW\nmscrrqiCMqsdAAAGJElEQVRdEFRv330dElLTD6HELyLSSlkWHD9eu0Co3qoLhupt7VozhxIo8YuI\nOM6l5E7NuSci4jBK/CIiDnPRxJ+bm0tMTAxRUVFkZWXVeX/nzp2kpKTQsWNHnnrqqQYdKyIiLc9v\n4vd6vdx3333k5uZSUFBAdnY2O3bsqLVPz549ef755/n5z3/e4GOltry8PLtDCBi6FjV0LWroWjQN\nv4k/Pz+fyMhIwsPDcbvdpKenk5OTU2uf3r17k5SUhNvtbvCxUpv+UdfQtaiha1FD16Jp+E38JSUl\nhIWF+V57PB5KSkrqdeJLOVZERJqP38TvuoTxxpdyrIiINJ8gf2+GhoZSXFzse11cXIzH46nXiet7\nbEREhAqJc8ybN8/uEAKGrkUNXYsauhZGREREo4/1m/iTkpLYvXs3RUVFhISEsGzZMrKzs8+773cH\nEtT32D179jQ6eBERaTi/iT8oKIiFCxeSlpaG1+slIyOD2NhYFi1aBMDs2bMpLS0lOTmZkydP0q5d\nO5599lkKCgro3LnzeY8VERF72T5lg4iItCxbR+46eYBXcXExP/jBDxgyZAhXXXUVzz33HADHjh1j\n3LhxDB48mPHjx3PixAmbI20ZXq+XxMREJk2aBDj3Opw4cYIbbriB2NhY4uLi+Pjjjx17LRYsWMCQ\nIUMYOnQoM2bMoKKiwjHX4o477qBv374MHTrU9zd/333BggVERUURExPDypUrL3p+2xK/0wd4ud1u\nnn76abZv387GjRt54YUX2LFjB0888QTjxo1j165dXHvttTzxxBN2h9oinn32WeLi4nwd/U69Dj/7\n2c+YOHEiO3bsYOvWrcTExDjyWhQVFbF48WI2b97Mtm3b8Hq9LF261DHXYtasWeTm5tb624W+e0FB\nAcuWLaOgoIDc3Fzuvfdezp496/8DLJts2LDBSktL871esGCBtWDBArvCsd31119vvf/++1Z0dLRV\nWlpqWZZlHTp0yIqOjrY5suZXXFxsXXvttdaaNWus6667zrIsy5HX4cSJE9bAgQPr/N2J1+Lo0aPW\n4MGDrWPHjllnzpyxrrvuOmvlypWOuhZ79+61rrrqKt/rC333+fPnW0888YRvv7S0NOujjz7ye27b\navwa4FWjqKiILVu2MHLkSL788kv69u0LQN++ffnyyy9tjq75PfDAA/z2t7+lXbuaf45OvA579+6l\nd+/ezJo1i+9973vcddddlJeXO/Ja9OjRg7lz59K/f39CQkLo1q0b48aNc+S1qHah737w4MFat8rX\nJ5falvh1775RVlbG9OnTefbZZ+nSpUut91wuV5u/Tu+88w59+vQhMTHxgnOLO+E6AFRVVbF582bu\nvfdeNm/eTKdOneo0ZTjlWhQWFvLMM89QVFTEwYMHKSsrY8mSJbX2ccq1OJ+LffeLXRfbEv+lDA5r\nK86cOcP06dOZOXMmU6ZMAUxJXlpaCsChQ4fo06ePnSE2uw0bNvCXv/yFgQMHcvPNN7NmzRpmzpzp\nuOsApqbm8XhITk4G4IYbbmDz5s3069fPcdfik08+YdSoUfTs2ZOgoCCmTZvGRx995MhrUe1C/ye+\nm0sPHDhAaGio33PZlvjPHeBVWVnJsmXLmDx5sl3htDjLssjIyCAuLo45c+b4/j558mReffVVAF59\n9VVfgdBWzZ8/n+LiYvbu3cvSpUv54Q9/yB//+EfHXQeAfv36ERYWxq5duwBYtWoVQ4YMYdKkSY67\nFjExMWzcuJFvvvkGy7JYtWoVcXFxjrwW1S70f2Ly5MksXbqUyspK9u7dy+7duxkxYoT/kzV1h0RD\nvPfee9bgwYOtiIgIa/78+XaG0uLWrVtnuVwuKyEhwRo2bJg1bNgwa8WKFdbRo0eta6+91oqKirLG\njRtnHT9+3O5QW0xeXp41adIky7Isx16HTz/91EpKSrLi4+OtqVOnWidOnHDstcjKyrLi4uKsq666\nyrr11lutyspKx1yL9PR0Kzg42HK73ZbH47FeeeUVv9/98ccftyIiIqzo6GgrNzf3oufXAC4REYfR\n0osiIg6jxC8i4jBK/CIiDqPELyLiMEr8IiIOo8QvIuIwSvwiIg6jxC8i4jD/H14nUz/9fgkBAAAA\nAElFTkSuQmCC\n", | |
"text": "<matplotlib.figure.Figure at 0x8e3a710>" | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\ndXW13TGSxuv1yum8/M+itLRUXV1dNieyTnNzs2bPnq3c3FxlZGRo+fLlqqurszuWpaZOnap77rlH\nkpSVlaWCggKdPHnS5lTW6+rqUn19vZ5++umUuD4AxT2Muro6uVwuFRcX2x3FFrt27dKiRYvsjmGZ\n7u5uzZw5M3bf5XKpu7vbxkTJdeLECX300UcqLS21O4rlNmzYoJqamtikxHTpdgewm9frVSgUuu54\nZWWlfD6fGhoaYsdS4Se1NPSYq6qqYut/lZWVyszM1MqVK5MdL2lS4SXzWPX29mrp0qWqra1VVlaW\n3XEs9c477ygnJ0dutztltrxP+OJubGz8yuOtra3q7OxUSUmJpMsvtebPn6/m5mbl5OQkM2LCDTXm\nQbt371Z9fb2ampqSlMgeM2bMUDAYjN0PBoNyuVw2JkqOvr4+LVmyRKtXr9bixYvtjmO5Q4cOaf/+\n/aqvr1c4HNbFixe1du1a7dmzx+5oYxfFqOTm5kbPnTtndwzLHThwIFpYWBg9c+aM3VEs19fXF83L\ny4t2dnZGv/jii2hJSUm0vb3d7liWikQi0TVr1kTXr19vdxRbBAKB6JNPPml3jLilxoJPEkyUl9UV\nFRXq7e2V1+uV2+3WM888Y3cky6Snp+uFF17Q448/rsLCQi1btkwFBQV2x7LUBx98oL179+q9996T\n2+2W2+2W3++3O1ZSpcL/Zba8A4BhmHEDgGEobgAwDMUNAIahuAHAMBQ3ABiG4gYAw1DcAGAYihsA\nDPM/mxrshjSi9QAAAAAASUVORK5CYII=\n", | |
"text": "<matplotlib.figure.Figure at 0x8e3a9e8>" | |
} | |
], | |
"prompt_number": 10 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "## Real Data ##\n\nSklearn includes the iris dataset for use in validating algorithms. Let's give it a shot." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "iris_data = load_iris()\nX = iris_data.data\nY = iris_data.target\nY = lb.fit_transform(Y)\nXtrain, Xtest, Ytrain, Ytest = train_test_split(X,Y,test_size=0.25)\n#ugh, sklearn doesn't take one-hot representations\nYtrain_sk = lb.inverse_transform(Ytrain)\nYtest_sk = lb.inverse_transform(Ytest)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 11 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Let's compare our implementation with the implementation already in sklearn" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "sklearn_lr = LogisticRegression()\nlinear_lr = LogisticClassifier()\nlinear_lr.fit(Xtrain,Ytrain, momentum=0.5, learn_rate=0.1,itrs=1000,reg=0.01)\nsklearn_lr.fit(Xtrain, Ytrain_sk)\n\n#performance\nprint 'ours:', error_rate(linear_lr.predict(Xtest), Ytest)\nprint 'sklearn:', error_rate(sklearn_lr.predict_proba(Xtest), Ytest)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "ours: 0.0526315789474\nsklearn: 0.105263157895\n" | |
} | |
], | |
"prompt_number": 12 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "The difference isn't significant, the data set is too small. Let's use the make_classification utility to run some more tests." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "X,Y = make_classification(n_samples=1000, n_features=20, n_informative=10,\n n_redundant=10, n_classes=5, n_clusters_per_class=1)\nY = lb.fit_transform(Y)\nXtrain, Xtest, Ytrain, Ytest = train_test_split(X,Y,test_size=0.25)\n#ugh, sklearn doesn't take one-hot representations\nYtrain_sk = lb.inverse_transform(Ytrain)\n", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 13 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "And now we can compare them." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "sklearn_lr = LogisticRegression()\nlinear_lr = LogisticClassifier()\nlinear_lr.fit(Xtrain, Ytrain, momentum=0.5, learn_rate=0.1,\n itrs=1000, reg=0.01)\nsklearn_lr.fit(Xtrain, Ytrain_sk)\n\nprint 'ours:', error_rate(linear_lr.predict(Xtest), Ytest)\nprint 'sklearn:', error_rate(sklearn_lr.predict_proba(Xtest), Ytest)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "ours: 0.284\nsklearn: 0.296\n" | |
} | |
], | |
"prompt_number": 14 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "We can also see how our different basis functions perform" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "#fit a sigmoid basis logistic regressor\nsigmoid_lr = LogisticClassifier(basis='sigmoid')\nsigmoid_lr.fit(Xtrain, Ytrain, momentum=0.9, learn_rate=0.05,\n itrs=1000, reg=0.001, proj_layer_size=50)\n\n#fit a polynomial basis logistic regressor\npoly_lr = LogisticClassifier(basis='poly')\npoly_lr.fit(Xtrain, Ytrain, momentum=0.9, learn_rate=0.05,\n itrs=1000, reg=0.001, proj_layer_size=50)\n\n#fit a rectifier basis logistic regressor\nrect_lr = LogisticClassifier(basis='rectifier')\nrect_lr.fit(Xtrain, Ytrain, momentum=0.9, learn_rate=0.05,\n itrs=1000, reg=0.001, proj_layer_size=50)\n\n#fit a rbf basis logistic regressor\nrbf_lr = LogisticClassifier(basis='rbf')\nrbf_lr.fit(Xtrain, Ytrain, momentum=0.9, learn_rate=0.05,\n itrs=1000, reg=0.001, proj_layer_size=50)\n\nprint 'ours (linear):', error_rate(linear_lr.predict(Xtest), Ytest)\nprint 'ours (sigmoid):', error_rate(sigmoid_lr.predict(Xtest), Ytest)\nprint 'ours (polynomial):', error_rate(poly_lr.predict(Xtest), Ytest)\nprint 'ours (rectifier):', error_rate(rect_lr.predict(Xtest), Ytest)\nprint 'ours (rbf):', error_rate(rbf_lr.predict(Xtest), Ytest)\nprint 'sklearn:', error_rate(sklearn_lr.predict_proba(Xtest), Ytest)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "ours (linear): 0.284\nours (sigmoid): 0.256\nours (polynomial): " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.396\nours (rectifier): 0.212\nours (rbf): " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.816\nsklearn: 0.296\n" | |
} | |
], | |
"prompt_number": 15 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Very strong performance by the rectifier and sigmoid layers, very poor performance for RBF and polynomial layers. Let's run it again, on different data." | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "X,Y = make_classification(n_samples=1000, n_features=20, n_informative=10,\n n_redundant=10, n_classes=9, n_clusters_per_class=2)\nY = lb.fit_transform(Y)\nXtrain, Xtest, Ytrain, Ytest = train_test_split(X,Y,test_size=0.25)\n#ugh, sklearn doesn't take one-hot representations\nYtrain_sk = lb.inverse_transform(Ytrain)\n", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 16 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "sklearn_lr = LogisticRegression()\nlinear_lr = LogisticClassifier()\n\nlinear_lr.fit(Xtrain, Ytrain, momentum=0.5, learn_rate=0.1,\n itrs=1000, reg=0.01)\nsklearn_lr.fit(Xtrain, Ytrain_sk)\n\n#fit a sigmoid basis logistic regressor\nsigmoid_lr = LogisticClassifier(basis='sigmoid')\nsigmoid_lr.fit(Xtrain, Ytrain, momentum=0.9, learn_rate=0.05,\n itrs=1000, reg=0.001, proj_layer_size=50)\n\n#fit a polynomial basis logistic regressor\npoly_lr = LogisticClassifier(basis='poly')\npoly_lr.fit(Xtrain, Ytrain, momentum=0.9, learn_rate=0.05,\n itrs=1000, reg=0.001, proj_layer_size=50)\n\n#fit a rectifier basis logistic regressor\nrect_lr = LogisticClassifier(basis='rectifier')\nrect_lr.fit(Xtrain, Ytrain, momentum=0.9, learn_rate=0.05,\n itrs=1000, reg=0.001, proj_layer_size=50)\n\n#fit a rbf basis logistic regressor\nrbf_lr = LogisticClassifier(basis='rbf')\nrbf_lr.fit(Xtrain, Ytrain, momentum=0.9, learn_rate=0.05,\n itrs=1000, reg=0.001, proj_layer_size=50)\n\n\nprint 'ours (linear):', error_rate(linear_lr.predict(Xtest), Ytest)\nprint 'ours (sigmoid):', error_rate(sigmoid_lr.predict(Xtest), Ytest)\nprint 'ours (polynomial):', error_rate(poly_lr.predict(Xtest), Ytest)\nprint 'ours (rectifier):', error_rate(rect_lr.predict(Xtest), Ytest)\nprint 'ours (rbf):', error_rate(rbf_lr.predict(Xtest), Ytest)\nprint 'sklearn:', error_rate(sklearn_lr.predict_proba(Xtest), Ytest)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "ours (linear): 0.636\nours (sigmoid): 0.648\nours (polynomial): " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.724\nours (rectifier): 0.532\nours (rbf): " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.908\nsklearn: 0.644\n" | |
} | |
], | |
"prompt_number": 17 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Again, we see a similar distribution of scores. I'm starting to see why the rectifier is becoming more common than the sigmoid. One more time!" | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": "X,Y = make_classification(n_samples=1000, n_features=20, n_informative=10,\n n_redundant=10, n_classes=9, n_clusters_per_class=2)\nY = lb.fit_transform(Y)\nXtrain, Xtest, Ytrain, Ytest = train_test_split(X,Y,test_size=0.25)\n#ugh, sklearn doesn't take one-hot representations\nYtrain_sk = lb.inverse_transform(Ytrain)\n\nsklearn_lr = LogisticRegression()\nlinear_lr = LogisticClassifier()\n\nlinear_lr.fit(Xtrain, Ytrain, momentum=0.5, learn_rate=0.1,\n itrs=1000, reg=0.01)\nsklearn_lr.fit(Xtrain, Ytrain_sk)\n\n#fit a sigmoid basis logistic regressor\nsigmoid_lr = LogisticClassifier(basis='sigmoid')\nsigmoid_lr.fit(Xtrain, Ytrain, momentum=0.9, learn_rate=0.05,\n itrs=1000, reg=0.001, proj_layer_size=50)\n\n#fit a polynomial basis logistic regressor\npoly_lr = LogisticClassifier(basis='poly')\npoly_lr.fit(Xtrain, Ytrain, momentum=0.9, learn_rate=0.05,\n itrs=1000, reg=0.001, proj_layer_size=50)\n\n#fit a rectifier basis logistic regressor\nrect_lr = LogisticClassifier(basis='rectifier')\nrect_lr.fit(Xtrain, Ytrain, momentum=0.9, learn_rate=0.05,\n itrs=1000, reg=0.001, proj_layer_size=50)\n\n#fit a rbf basis logistic regressor\nrbf_lr = LogisticClassifier(basis='rbf')\nrbf_lr.fit(Xtrain, Ytrain, momentum=0.9, learn_rate=0.05,\n itrs=1000, reg=0.001, proj_layer_size=50)\n\n\nprint 'ours (linear):', error_rate(linear_lr.predict(Xtest), Ytest)\nprint 'ours (sigmoid):', error_rate(sigmoid_lr.predict(Xtest), Ytest)\nprint 'ours (polynomial):', error_rate(poly_lr.predict(Xtest), Ytest)\nprint 'ours (rectifier):', error_rate(rect_lr.predict(Xtest), Ytest)\nprint 'ours (rbf):', error_rate(rbf_lr.predict(Xtest), Ytest)\nprint 'sklearn:', error_rate(sklearn_lr.predict_proba(Xtest), Ytest)", | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "ours (linear): 0.592\nours (sigmoid): 0.612\nours (polynomial): " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.752\nours (rectifier): 0.548\nours (rbf): " | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": "0.904\nsklearn: 0.628\n" | |
} | |
], | |
"prompt_number": 18 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": "Time to draw some conclusions. First, a linear projection followed by a rectifier activation is a *very* competitive basis function. It won in all of our experiments, usually by a large margin. Both my RBF and polynomial activations are very bad, which is probably a bug on my part but I'm not sure. I looked into it a little and they just seem to be learning *very* slowly. Our linear basis logistic regression is comparable to sklearn's, probably because they're doing the exact same thing. " | |
} | |
], | |
"metadata": {} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment