Skip to content

Instantly share code, notes, and snippets.

@Saurabh7
Created March 15, 2014 15:13
Show Gist options
  • Save Saurabh7/9568818 to your computer and use it in GitHub Desktop.
Save Saurabh7/9568818 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "multiclass_reduction"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Multiclass Reductions"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"by Chiyuan Zhang and Sören Sonnenburg"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Since binary classification problems are one of the most thoroughly studied\n",
"problems in machine learning, it is very appealing to consider reducing\n",
"multiclass problems to binary ones. Then many advanced learning and\n",
"optimization techniques as well as generalization bound analysis for binary\n",
"classification can be utilized."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"In `SHOGUN`, the strategies of reducing a multiclass problem to binary\n",
"classification problems are described by an instance of\n",
"`CMulticlassStrategy`. A multiclass strategy describes\n",
"\n",
"* How to train the multiclass machine as a number of binary machines?\n",
" * How many binary machines are needed?\n",
" * For each binary machine, what subset of the training samples are used, and how are they colored? In multiclass problems, we use *coloring* to refer partitioning the classes into two groups: $+1$ and $-1$, or black and white, or any other meaningful names.\n",
"* How to combine the prediction results of binary machines into the final multiclass prediction?\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The user can derive from the virtual class [CMulticlassStrategy](http://www.shogun-toolbox.org/doc/en/latest/classshogun_1_1CMulticlassStrategy.html) to\n",
"implement a customized multiclass strategy. But usually the built-in strategies\n",
"are enough for general problems. We will describe the built-in *One-vs-Rest*,\n",
"*One-vs-One* and *Error-Correcting Output Codes* strategies in this tutorial.\n",
"\n",
"The basic routine to use a multiclass machine with reduction to binary problems\n",
"in shogun is to create a generic multiclass machine and then assign a particular\n",
"multiclass strategy and a base binary machine."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## One-vs-Rest and One-vs-One\n",
"\n",
"The *One-vs-Rest* strategy is implemented in\n",
"`CMulticlassOneVsRestStrategy`. As indicated by the name, this\n",
"strategy reduce a $K$-class problem to $K$ binary sub-problems. For the $k$-th\n",
"problem, where $k\\in\\{1,\\ldots,K\\}$, the samples from class $k$ are colored as\n",
"$+1$, and the samples from other classes are colored as $-1$. The multiclass\n",
"prediction is given as\n",
"\n",
"$$\n",
"f(x) = \\operatorname*{argmax}_{k\\in\\{1,\\ldots,K\\}}\\; f_k(x)\n",
"$$\n",
"\n",
"where $f_k(x)$ is the prediction of the $k$-th binary machines.\n",
"\n",
"The One-vs-Rest strategy is easy to implement yet produces excellent performance\n",
"in many cases. One interesting paper, [Rifkin, R. M. and Klautau, A. (2004). *In defense of one-vs-all classification*. Journal of Machine\n",
"Learning Research, 5:101\u2013141](http://jmlr.org/papers/v5/rifkin04a.html), it was shown that the\n",
"One-vs-Rest strategy can be\n",
"\n",
"> as accurate as any other approach, assuming that the underlying binary\n",
"classifiers are well-tuned regularized classifiers such as support vector\n",
"machines.\n",
"\n",
"Implemented in [CMulticlassOneVsOneStrategy](http://www.shogun-toolbox.org/doc/en/latest/classshogun_1_1CMulticlassOneVsOneStrategy.html), the \n",
"*One-vs-One* strategy is another simple and intuitive \n",
"strategy: it basically produces one binary problem for each pair of classes. So there will be $\\binom{K}{2}$ binary problems. At prediction time, the \n",
"output of every binary classifiers are collected to do voting for the $K$ \n",
"classes. The class with the highest vote becomes the final prediction.\n",
"\n",
"Compared with the One-vs-Rest strategy, the One-vs-One strategy is usually more\n",
"costly to train and evaluate because more binary machines are used.\n",
"\n",
"In the following, we demonstrate how to use `SHOGUN`'s One-vs-Rest and \n",
"One-vs-One multiclass learning strategy on the USPS dataset. For \n",
"demonstration, we randomly 200 samples from each class for training and 200 \n",
"samples from each class for testing.\n",
"\n",
"The [CLibLinear](http://www.shogun-toolbox.org/doc/en/latest/classshogun_1_1CLibLinear.html) is used as the base binary classifier in a [CLinearMulticlassMachine](http://www.shogun-toolbox.org/doc/en/latest/classshogun_1_1CLinearMulticlassMachine.html), with One-vs-Rest and One-vs-One strategies. The running time and performance (on my machine) is reported below:"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"-------------------------------------------------\n",
"Strategy Training Time Test Time Accuracy\n",
"------------- ------------- --------- --------\n",
"One-vs-Rest 12.68 0.27 92.00%\n",
"One-vs-One 11.54 1.50 93.90%\n",
"-------------------------------------------------\n",
"Table: Comparison of One-vs-Rest and One-vs-One multiclass reduction strategy on the USPS dataset."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First we load the data and initialize random splitting:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"\n",
"from numpy import random\n",
"from scipy.io import loadmat\n",
"\n",
"mat = loadmat('../../../data/multiclass/usps.mat')\n",
"Xall = mat['data']\n",
"\n",
"#normalize examples to have norm one\n",
"Xall = Xall / np.sqrt(sum(Xall**2,0))\n",
"Yall = mat['label'].squeeze()\n",
"\n",
"# map from 1..10 to 0..9, since shogun\n",
"# requires multiclass labels to be\n",
"# 0, 1, ..., K-1\n",
"Yall = Yall - 1\n",
"\n",
"N_train_per_class = 200\n",
"N_test_per_class = 200\n",
"N_class = 10\n",
"\n",
"# to make the results reproducable\n",
"random.seed(0)\n",
"\n",
"# index for subsampling\n",
"index = np.zeros((N_train_per_class+N_test_per_class, N_class), 'i')\n",
"for k in range(N_class):\n",
" Ik = (Yall == k).nonzero()[0] # index for samples of class k\n",
" I_subsample = random.permutation(len(Ik))[:N_train_per_class+N_test_per_class]\n",
" index[:, k] = Ik[I_subsample]\n",
"\n",
"idx_train = index[:N_train_per_class, :].reshape(N_train_per_class*N_class)\n",
"idx_test = index[N_train_per_class:, :].reshape(N_test_per_class*N_class)\n",
"\n",
"random.shuffle(idx_train)\n",
"random.shuffle(idx_test)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"import SHOGUN components and convert features into SHOGUN format:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from modshogun import RealFeatures, MulticlassLabels\n",
"from modshogun import LibLinear, L2R_L2LOSS_SVC, LinearMulticlassMachine\n",
"from modshogun import MulticlassOneVsOneStrategy, MulticlassOneVsRestStrategy\n",
"from modshogun import MulticlassAccuracy\n",
"\n",
"import time\n",
"\n",
"feats_train = RealFeatures(Xall[:, idx_train])\n",
"feats_test = RealFeatures(Xall[:, idx_test])\n",
"\n",
"lab_train = MulticlassLabels(Yall[idx_train].astype('d'))\n",
"lab_test = MulticlassLabels(Yall[idx_test].astype('d'))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"define a helper function to train and evaluate multiclass machine given a strategy:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def evaluate(strategy, C):\n",
" bin_machine = LibLinear()\n",
" bin_machine.set_bias_enabled(True)\n",
" bin_machine.set_C(C, C)\n",
"\n",
" mc_machine = LinearMulticlassMachine(strategy, feats_train, bin_machine, lab_train)\n",
"\n",
" t_begin = time.clock()\n",
" mc_machine.train()\n",
" t_train = time.clock() - t_begin\n",
"\n",
" t_begin = time.clock()\n",
" pred_test = mc_machine.apply_multiclass(feats_test)\n",
" t_test = time.clock() - t_begin\n",
"\n",
" evaluator = MulticlassAccuracy()\n",
" acc = evaluator.evaluate(pred_test, lab_test)\n",
"\n",
" print \"training time: %.4f\" % t_train\n",
" print \"testing time: %.4f\" % t_test\n",
" print \"accuracy: %.4f\" % acc"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Test on One-vs-Rest and One-vs-One strategies."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print \"\\nOne-vs-Rest\"\n",
"print \"=\"*60\n",
"evaluate(MulticlassOneVsRestStrategy(), 5.0)\n",
"\n",
"print \"\\nOne-vs-One\"\n",
"print \"=\"*60\n",
"evaluate(MulticlassOneVsOneStrategy(), 2.0)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"One-vs-Rest\n",
"============================================================\n",
"training time: 0.3100"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"-c:3: RuntimeWarning: \u001b[1;34m[WARN]\u001b[0m In file /home/saurabh/l/shogun/src/shogun/multiclass/MulticlassStrategy.cpp line 45: MulticlassStrategy::CMulticlassStrategy(): register parameters!\n",
"\n",
"-c:9: RuntimeWarning: \u001b[1;34m[WARN]\u001b[0m In file /home/saurabh/l/shogun/src/shogun/classifier/svm/LibLinear.cpp line 413: reaching max number of iterations\n",
"Using -s 2 may be faster(also see liblinear FAQ)\n",
"\n",
"\n",
"-c:7: RuntimeWarning: \u001b[1;34m[WARN]\u001b[0m In file /home/saurabh/l/shogun/src/shogun/multiclass/MulticlassStrategy.cpp line 45: MulticlassStrategy::CMulticlassStrategy(): register parameters!\n",
"\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"testing time: 0.0200\n",
"accuracy: 0.9285\n",
"\n",
"One-vs-One\n",
"============================================================\n",
"training time: 0.4400"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"testing time: 0.0800\n",
"accuracy: 0.9415\n"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"-c:7: RuntimeWarning: \u001b[1;34m[WARN]\u001b[0m In file /home/saurabh/l/shogun/src/shogun/multiclass/MulticlassOneVsOneStrategy.cpp line 33: MulticlassOneVsOneStrategy::CMulticlassOneVsOneStrategy(): register parameters!\n",
"\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"LibLinear also has a true multiclass SVM implemenentation - so it is worthwhile to compare training time and accuracy with the above reduction schemes:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from modshogun import MulticlassLibLinear\n",
"mcsvm = MulticlassLibLinear(5.0, feats_train, lab_train)\n",
"mcsvm.set_use_bias(True)\n",
"\n",
"t_begin = time.clock()\n",
"mcsvm.train(feats_train)\n",
"t_train = time.clock() - t_begin\n",
"\n",
"t_begin = time.clock()\n",
"pred_test = mcsvm.apply_multiclass(feats_test)\n",
"t_test = time.clock() - t_begin\n",
"\n",
"evaluator = MulticlassAccuracy()\n",
"acc = evaluator.evaluate(pred_test, lab_test)\n",
"\n",
"print \"training time: %.4f\" % t_train\n",
"print \"testing time: %.4f\" % t_test\n",
"print \"accuracy: %.4f\" % acc"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"training time: 0.9400\n",
"testing time: 0.0200\n",
"accuracy: 0.9305\n"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"-c:2: RuntimeWarning: \u001b[1;34m[WARN]\u001b[0m In file /home/saurabh/l/shogun/src/shogun/multiclass/MulticlassStrategy.cpp line 45: MulticlassStrategy::CMulticlassStrategy(): register parameters!\n",
"\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you can see performance of all the three is very much the same though the multiclass svm is a bit faster in training. Usually training time of the true multiclass SVM is much slower than one-vs-rest approach. It should be noted that classification performance of one-vs-one is known to be slightly superior to one-vs-rest since the machines do not have to be properly scaled like in the one-vs-rest approach. However, with larger number of classes one-vs-one quickly becomes prohibitive and so one-vs-rest is the only suitable approach - or other schemes presented below."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Error-Correcting Output Codes\n",
"\n",
"*Error-Correcting Output Codes* (ECOC) is a\n",
"generalization of the One-vs-Rest and One-vs-One strategies. For example, we\n",
"can represent the One-vs-Rest strategy with the following $K\\times K$ coding \n",
"matrix, or a codebook:\n",
"\n",
"$$\n",
" \\begin{bmatrix}\n",
" +1 & -1 & -1 & \\ldots & -1 & -1 \\\\\\\\\n",
" -1 & +1 & -1 & \\ldots & -1 & -1\\\\\\\\\n",
" -1 & -1 & +1 & \\ldots & -1 & -1\\\\\\\\\n",
" \\vdots & \\vdots & \\vdots & \\ddots & \\vdots & \\vdots \\\\\\\\\n",
" -1 & -1 & -1 & \\ldots & +1 & -1 \\\\\\\\\n",
" -1 & -1 & -1 & \\ldots & -1 & +1\n",
" \\end{bmatrix}\n",
"$$\n",
"\n",
"Denote the codebook by $B$, there is one column of the codebook associated with\n",
"each of the $K$ classes. For example, the code for class $1$ is\n",
"$[+1,-1,-1,\\ldots,-1]$. Each row of the codebook corresponds to a binary\n",
"coloring of all the $K$ classes. For example, in the first row, the class $1$\n",
"is colored as $+1$, while the rest of the classes are all colored as $-1$.\n",
"Associated with each row, there is a binary classifier trained according to the\n",
"coloring. For example, the binary classifier associated with the first row is\n",
"trained by treating all the examples of class $1$ as positive examples, and all\n",
"the examples of the rest of the classes as negative examples.\n",
"\n",
"In this special case, there are $K$ rows in the codebook. The number of rows in\n",
"the codebook is usually called the *code length*. As we can see, this\n",
"codebook exactly describes how the One-vs-Rest strategy trains the binary\n",
"sub-machines."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"OvR=-np.ones((10,10))\n",
"fill_diagonal(OvR, +1)\n",
"\n",
"_=gray()\n",
"_=imshow(OvR, interpolation='nearest')\n",
"_=gca().set_xticks([])\n",
"_=gca().set_yticks([])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAO0AAADtCAYAAABTTfKPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAA1RJREFUeJzt3cFqwlAURdGX0v//5XRebKyVq9npWlMRMtleQThu+77v\nC8j4ePcDAI8RLcSIFmJECzGihRjRQszn0Yvbtr3qOYBvfvo19jDaozc+w4cB/J2vxxAjWogRLcSI\nFmJECzGihRjRQoxoIUa0ECNaiBEtxIgWYkQLMaKFGNFCjGghRrQQI1qIES3E3N2Imthzmvz7IPtT\nXJ1LCzGihRjRQoxoIUa0ECNaiBEtxIgWYkQLMaKFGNFCjGghRrQQI1qIES3EiBZiRAsxooUY0UKM\naCFGtBAjWoi5O6E6YXLmdGqe1TQrZ+HSQoxoIUa0ECNaiBEtxIgWYkQLMaKFGNFCjGghRrQQI1qI\nES3EiBZiRAsxooUY0UKMaCFGtBAjWogRLcS8ZY1x0tRq4tTK41qWHnmMSwsxooUY0UKMaCFGtBAj\nWogRLcSIFmJECzGihRjRQoxoIUa0ECNaiBEtxIgWYkQLMaKFGNFCjGghRrQQI1qIudyE6pTJmdOp\neVbTrNfk0kKMaCFGtBAjWogRLcSIFmJECzGihRjRQoxoIUa0ECNaiBEtxIgWYkQLMaKFGNFCjGgh\nRrQQI1qIES3EWGM8ganVRCuP1+TSQoxoIUa0ECNaiBEtxIgWYkQLMaKFGNFCjGghRrQQI1qIES3E\niBZiRAsxooUY0UKMaCFGtBAjWogRLcRYY7yw2srjWpYef8OlhRjRQoxoIUa0ECNaiBEtxIgWYkQL\nMaKFGNFCjGghRrQQI1qIES3EiBZiRAsxooUY0UKMaCFGtBAjWogRLcSYUOVhkzOnU/OsV5pmdWkh\nRrQQI1qIES3EiBZiRAsxooUY0UKMaCFGtBAjWogRLcSIFmJECzGihRjRQoxoIUa0ECNaiBEtxIgW\nYqwxcipTq4lTK49rvX7p0aWFGNFCjGghRrQQI1qIES3EiBZiRAsxooUY0UKMaCFGtBAjWogRLcSI\nFmJECzGihRjRQoxoIUa0ECNaiBEtxJhQ5V+YnDmdmGc9el6XFmJECzGihRjRQoxoIUa0ECNaiBEt\nxIgWYkQLMaKFGNFCjGghRrQQI1qIES3EiBZiRAsxooUY0UKMaCHGGiM8aXLp8ZbDaCemIYHn+HoM\nMaKFGNFCjGghRrQQ8wU9wyoL4eAloAAAAABJRU5ErkJggg==\n"
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A further generalization is to allow $0$-values in the codebook. A $0$ for a\n",
"class $k$ in a row means we ignore (the examples of) class $k$ when training\n",
"the binary classifiers associated with this row. With this generalization, we\n",
"can also easily describes the One-vs-One strategy with a $\\binom{K}{2}\\times K$\n",
"codebook:\n",
"\n",
"$$\n",
"\\begin{bmatrix}\n",
"+1 & -1 & 0 & \\ldots & 0 & 0 \\\\\\\\\n",
"+1 & 0 & -1 & \\ldots & 0 & 0 \\\\\\\\\n",
"\\vdots & \\vdots & \\vdots & \\ddots & \\vdots & 0 \\\\\\\\\n",
"+1 & 0 & 0 & \\ldots & -1 & 0 \\\\\\\\\n",
"0 & +1 & -1 & \\ldots & 0 & 0 \\\\\\\\\n",
"\\vdots & \\vdots & \\vdots & & \\vdots & \\vdots \\\\\\\\\n",
"0 & 0 & 0 & \\ldots & +1 & -1\n",
"\\end{bmatrix}\n",
"$$\n",
"\n",
"Here each of the $\\binom{K}{2}$ rows describes a binary classifier trained with\n",
"a pair of classes. The resultant binary classifiers will be identical as those\n",
"described by a One-vs-One strategy.\n",
"\n",
"Since $0$ is allowed in the codebook to ignore some classes, this kind of\n",
"codebooks are usually called *sparse codebook*, while the codebooks with\n",
"only $+1$ and $-1$ are usually called *dense codebook*.\n",
"\n",
"In general case, we can specify any code length and fill the codebook\n",
"arbitrarily. However, some rules should be followed:\n",
"\n",
"* Each row must describe a *valid* binary coloring. In other words, both $+1$ and $-1$ should appear at least once in each row. Or else a binary classifier cannot be obtained for this row.\n",
"* It is good to avoid duplicated rows. There is generally no harm to have duplicated rows, but the resultant binary classifiers are completely identical provided the training algorithm for the binary classifiers are deterministic. So this can be a waste of computational resource.\n",
"* Negative rows are also duplicated. Simply inversing the sign of a code row does not produce a \"new\" code row. Because the resultant binary classifier will simply be the negative classifier associated with the original row."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Though you can certainly generate your own codebook, it is usually easier to\n",
"use the `SHOGUN` built-in procedures to generate codebook automatically. There\n",
"are various codebook generators (called *encoders*) in `SHOGUN`. However,\n",
"before describing those encoders in details, let us notice that a codebook \n",
"only describes how the sub-machines are trained. But we still need a\n",
"way to specify how the binary classification results of the sub-machines can be\n",
"combined to get a multiclass classification result.\n",
"\n",
"Review the codebook again: corresponding to each class, there is a column. We\n",
"call the codebook column the (binary) *code* for that class. For a new\n",
"sample $x$, by applying the binary classifiers associated with each row\n",
"successively, we get a prediction vector of the same length as the\n",
"*code*. Deciding the multiclass label from the prediction vector (called\n",
"*decoding*) can be done by minimizing the *distance* between the\n",
"codes and the prediction vector. Different *decoders* define different \n",
"choices of distance functions. For this reason, it is usually good to make the\n",
"mutual distance between codes of different classes large. In this way, even\n",
"though several binary classifiers make wrong predictions, the distance of\n",
"the resultant prediction vector to the code of the *true* class is likely\n",
"to be still smaller than the distance to other classes. So correct results can\n",
"still be obtained even when some of the binary classifiers make mistakes. This\n",
"is the reason for the name *Error-Correcting Output Codes*.\n",
"\n",
"In `SHOGUN`, encoding schemes are described by subclasses of\n",
"[CECOCEncoder](http://www.shogun-toolbox.org/doc/en/latest/classshogun_1_1CECOCEncoder.html), while decoding schemes are described by subclasses\n",
"of [CECOCDecoder](http://www.shogun-toolbox.org/doc/en/latest/classshogun_1_1CECOCDecoder.html). Theoretically, any combinations of\n",
"encoder-decoder pairs can be used. Here we will introduce several common\n",
"encoder/decoders in shogun."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* [CECOCRandomDenseEncoder](http://www.shogun-toolbox.org/doc/en/latest/classshogun_1_1CECOCRandomDenseEncoder.html): This encoder generate random dense ($+1$/$-1$) codebooks and choose the one with the largest *minimum mutual distance* among the classes. The recommended code length for this encoder is $10\\log K$. \n",
"* [CECOCRandomSparseEncoder](http://www.shogun-toolbox.org/doc/en/latest/classshogun_1_1CECOCRandomSparseEncoder.html): This is similar to the random dense encoder, except that sparse ($+1$/$-1$/$0$) codebooks are generated. The recommended code length for this encoder is $15\\log K$.\n",
"* [CECOCOVREncoder](http://www.shogun-toolbox.org/doc/en/latest/classshogun_1_1CECOCOVREncoder.html), [CECOCOVOEncoder](http://www.shogun-toolbox.org/doc/en/latest/classshogun_1_1CECOCOVOEncoder.html): These two encoders mimic the One-vs-Rest and One-vs-One strategies respectively. They are implemented mainly for demonstrative purpose. When suitable decoders are used, the results will be equivalent to the corresponding strategies, respectively."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Using ECOC Strategy in `SHOGUN` is similar to ordinary one-vs-rest or one-vs-one. You need to choose an encoder and a decoder, and then construct a `ECOCStrategy`, as demonstrated below:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from modshogun import ECOCStrategy, ECOCRandomDenseEncoder, ECOCLLBDecoder\n",
"\n",
"print \"\\nRandom Dense Encoder + Margin Loss based Decoder\"\n",
"print \"=\"*60\n",
"evaluate(ECOCStrategy(ECOCRandomDenseEncoder(), ECOCLLBDecoder()), 2.0)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Random Dense Encoder + Margin Loss based Decoder\n",
"============================================================\n",
"training time: 0.9900"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"testing time: 0.0400\n",
"accuracy: 0.8940\n"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"-c:5: RuntimeWarning: \u001b[1;34m[WARN]\u001b[0m In file /home/saurabh/l/shogun/src/shogun/multiclass/MulticlassStrategy.cpp line 45: MulticlassStrategy::CMulticlassStrategy(): register parameters!\n",
"\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Using a kernel multiclass machine"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Expanding on the idea of creating a generic multiclass machine and then assigning a particular multiclass strategy and a base binary machine, one can also use the [KernelMulticlassMachine](http://www.shogun-toolbox.org/doc/en/current/classshogun_1_1CKernelMulticlassMachine.html) with a kernel of choice.\n",
"\n",
"Here we will use a [GaussianKernel](http://www.shogun-toolbox.org/doc/en/3.0.0/classshogun_1_1CGaussianKernel.html) with LibSVM as the classifer.\n",
"All we have to do is define a new helper evaluate function with the features defined as in the above examples."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def evaluate_multiclass_kernel(strategy):\n",
" from modshogun import KernelMulticlassMachine, LibSVM, GaussianKernel\n",
" width=2.1\n",
" epsilon=1e-5\n",
" \n",
" kernel=GaussianKernel(feats_train, feats_train, width)\n",
" \n",
" classifier = LibSVM()\n",
" classifier.set_epsilon(epsilon)\n",
"\n",
" mc_machine = KernelMulticlassMachine(strategy, kernel, classifier, lab_train)\n",
"\n",
" t_begin = time.clock()\n",
" mc_machine.train()\n",
" t_train = time.clock() - t_begin\n",
"\n",
" t_begin = time.clock()\n",
" pred_test = mc_machine.apply_multiclass(feats_test)\n",
" t_test = time.clock() - t_begin\n",
"\n",
" evaluator = MulticlassAccuracy()\n",
" acc = evaluator.evaluate(pred_test, lab_test)\n",
"\n",
" print \"training time: %.4f\" % t_train\n",
" print \"testing time: %.4f\" % t_test\n",
" print \"accuracy: %.4f\" % acc\n",
"\n",
"print \"\\nOne-vs-Rest\"\n",
"print \"=\"*60\n",
"evaluate_multiclass_kernel(MulticlassOneVsRestStrategy())\n",
"\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"One-vs-Rest\n",
"============================================================\n",
"training time: 4.1600"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"testing time: 2.4900\n",
"accuracy: 0.9270\n"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"-c:30: RuntimeWarning: \u001b[1;34m[WARN]\u001b[0m In file /home/saurabh/l/shogun/src/shogun/multiclass/MulticlassStrategy.cpp line 45: MulticlassStrategy::CMulticlassStrategy(): register parameters!\n",
"\n"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So we have seen that we can classify multiclass samples using a base binary machine. If we dwell on this a bit more, we can easily spot the intuition behind this.\n",
"\n",
"The MulticlassOneVsRestStrategy classifies one class against the rest of the classes. This is done for each and every class by training a separate classifier for it.So we will have total k classifiers where k is the number of classes.\n",
"\n",
"Just to see this in action lets create some data using the gaussian mixture model class (GMM) from which we sample the data points.Four different classes are created and plotted."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from modshogun import *\n",
"from numpy import *\n",
"\n",
"num=1000;\n",
"dist=1.0;\n",
"\n",
"gmm=GMM(4)\n",
"gmm.set_nth_mean(array([-dist*4,-dist]),0)\n",
"gmm.set_nth_mean(array([-dist*4,dist*4]),1)\n",
"gmm.set_nth_mean(array([dist*4,dist*4]),2)\n",
"gmm.set_nth_mean(array([dist*4,-dist]),3)\n",
"gmm.set_nth_cov(array([[1.0,0.0],[0.0,1.0]]),0)\n",
"gmm.set_nth_cov(array([[1.0,0.0],[0.0,1.0]]),1)\n",
"gmm.set_nth_cov(array([[1.0,0.0],[0.0,1.0]]),2)\n",
"gmm.set_nth_cov(array([[1.0,0.0],[0.0,1.0]]),3)\n",
"\n",
"gmm.set_coef(array([1.0,0.0,0.0,0.0]))\n",
"x0=array([gmm.sample() for i in xrange(num)]).T\n",
"x0t=array([gmm.sample() for i in xrange(num)]).T\n",
"\n",
"gmm.set_coef(array([0.0,1.0,0.0,0.0]))\n",
"x1=array([gmm.sample() for i in xrange(num)]).T\n",
"x1t=array([gmm.sample() for i in xrange(num)]).T\n",
"\n",
"gmm.set_coef(array([0.0,0.0,1.0,0.0]))\n",
"x2=array([gmm.sample() for i in xrange(num)]).T\n",
"x2t=array([gmm.sample() for i in xrange(num)]).T\n",
"\n",
"gmm.set_coef(array([0.0,0.0,0.0,1.0]))\n",
"x3=array([gmm.sample() for i in xrange(num)]).T\n",
"x3t=array([gmm.sample() for i in xrange(num)]).T\n",
"\n",
"\n",
"traindata=concatenate((x0,x1,x2,x3), axis=1)\n",
"testdata=concatenate((x0t,x1t,x2t,x3t), axis=1)\n",
"\n",
"l0 = array([0.0 for i in xrange(num)])\n",
"l1 = array([1.0 for i in xrange(num)])\n",
"l2 = array([2.0 for i in xrange(num)])\n",
"l3 = array([3.0 for i in xrange(num)])\n",
"\n",
"trainlab=concatenate((l0,l1,l2,l3))\n",
"testlab=concatenate((l0,l1,l2,l3))"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"_=scatter(traindata[0,:], traindata[1,:], c=trainlab, s=100)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\nYoJMJqO7u5vExMRBp1SlUil33HEHEomEV199FUNDQyZMmEB9fb2QY37ttdcwNTVFX1+f8+fPi3Le\nYKitrRVlyt8bflIw37x5M2VlZRQXF/PVV18xc+ZMPv/885/r2H5xGDduHO7u7r0Cnc64ODMzk/z8\nfNra2igrK8PT01N4NhYWFqJUKjEwMMDe3p6qqipsbGwEJbGgoICTJ09SUlIihnPkcjlGRkZcunSJ\n9PR0Wlpa6O7uRqFQUFlZiY+Pz4BZikQiYcyYMRQWFiKVSunq6iI/P5+Ghgbs7Oyorq6mp6eHjo6O\nfj8/duxYrly50m+Go1KpSEpKwtXVVWTmuu/j5eVFcXFxr+AgkUhwc3MjPDycyMhIsXxvamri+vXr\nNDc3o1KpKC4u5sKFCwwfPrxf2QMzMzNkMpk4ZpVKRXp6OsuXL//FuA9ZW1uzePFitmzZwqhRozhw\n4EC/2/X09HDp0iVyc3OJjIykvLycGTNm8Nlnn2Fvb8+kSZN6vWhdXFzIzc0d9G/rXrDnzp0jIyMD\nR0fHIcXISkpKsLW17XUfqdVq9PT0WLp0KdHR0WJYZyBzZh3OnDlDRESEUFg0MTEZkB+ug6+vb6+J\nZ51f7PLly8nJyeGTTz7hgQceQCKREBUVhVQqJTk5edB9xsbG8vDDDw+6zW8VPyvP/L9BD/u/xo4d\nO7j77rvR19cnPz+fpqYm3N3dMTAwoKmpSXChDQwMhDO9g4MDly5dIjg4mFGjRhEbG0ttbS21tbXC\nfOH7bkL+/v4UFhYKfWudAbAuEA4mvgVgZ2dHe3u7UKPTsWpaW1sxNTUVgbe/wGlvb8+ECROIiYnB\n1tZWOB81NjZSVFSEs7OzqO/X1dXR2dmJk5MTUqkUCwsLUlJSBH1Th5KSEq5evYqTkxOTJ09GT0+P\n2tpaYmNjUalUWFlZMXHixCGzqqamJqFJM3/+fN55550fduH+jzFs2DCOHTvGzZs3ufvuu/Hx8UGj\n0ZCWlsa+fftoaWlh5cqV7N27F6lUikajITk5mZ07d5KUlERWVpbYV0REBGvXrmXp0qX9DmDBLY67\ns7MzGRkZ7Nixg/T0dL799ts+ZbrbcfLkSezs7Pjqq68YPXo0Y8eO5fLly4waNYoRI0bQ2tpKcXEx\nra2tdHV18fHHH6PVaqmrq8PAwIDAwECmTJlCYmIily9f5o033gBu9VO6u7t/NJMpIyOD5uZmrl27\n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\nwX621q1u3wAAAABJRU5ErkJggg==\n"
}
],
"prompt_number": 10
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have the data ready , lets convert it to shogun format features."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"feats_tr=RealFeatures(traindata)\n",
"labels=MulticlassLabels(trainlab)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 11
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The [KernelMulticlassMachine](http://www.shogun-toolbox.org/doc/en/current/classshogun_1_1CKernelMulticlassMachine.html) is used with LibSVM as the classifer just as in the above example.\n",
"\n",
"Now we have four different classes, so as explained above we will have four classifiers which in shogun terms are submachines.\n",
"\n",
"We can see the outputs of two of the four individual submachines(specified by the index) and of the main machine. The plots clearly show how the submachine classify each class as if it is a binary classification problem and this provides the base for the whole multiclass classification."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from modshogun import KernelMulticlassMachine, LibSVM, GaussianKernel\n",
"\n",
"width=2.1\n",
"epsilon=1e-5\n",
" \n",
"kernel=GaussianKernel(feats_tr, feats_tr, width)\n",
" \n",
"classifier = LibSVM()\n",
"classifier.set_epsilon(epsilon)\n",
"\n",
"mc_machine = KernelMulticlassMachine(MulticlassOneVsRestStrategy(), kernel, classifier, labels)\n",
"\n",
"mc_machine.train()\n",
"\n",
"size=100\n",
"x1=linspace(-10, 10, size)\n",
"x2=linspace(-10, 10, size)\n",
"x, y=meshgrid(x1, x2)\n",
"grid=RealFeatures(array((ravel(x), ravel(y)))) #test features\n",
"\n",
"out = mc_machine.apply_multiclass(grid) #main output\n",
"z=out.get_labels().reshape((size, size))\n",
"\n",
"sub_out0 = mc_machine.get_submachine_outputs(0) #first submachine\n",
"sub_out1 = mc_machine.get_submachine_outputs(1) #second submachine\n",
"\n",
"z0=sub_out0.get_labels().reshape((size, size))\n",
"z1=sub_out1.get_labels().reshape((size, size))\n",
"\n",
"figure(figsize=(20,5))\n",
"subplot(131)\n",
"c0=pcolor(x, y, z0)\n",
"_=contour(x, y, z0, linewidths=1, colors='black', hold=True)\n",
"_=colorbar(c0)\n",
"\n",
"subplot(132)\n",
"c1=pcolor(x, y, z1)\n",
"_=contour(x, y, z1, linewidths=1, colors='black', hold=True)\n",
"_=colorbar(c1)\n",
"\n",
"subplot(133)\n",
"c2=pcolor(x, y, z)\n",
"_=contour(x, y, z, linewidths=1, colors='black', hold=True)\n",
"_=colorbar(c2)\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stderr",
"text": [
"-c:11: RuntimeWarning: \u001b[1;34m[WARN]\u001b[0m In file /home/saurabh/l/shogun/src/shogun/multiclass/MulticlassStrategy.cpp line 45: MulticlassStrategy::CMulticlassStrategy(): register parameters!\n",
"\n"
]
},
{
"output_type": "display_data",
"png": "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\niUNERERERERENAGwiUNERERERERENAGwiUNERERERERENAGwiUNERERERERENAGwiUNERERERERE\nNAH8H8s4oje0jaXHAAAAAElFTkSuQmCC\n"
}
],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment