{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"preamble": true
},
"source": [
"(Defining latex commands: not to be shown...)\n",
"$$\n",
"\\newcommand{\\norm}[1]{\\left \\| #1 \\right \\|}\n",
"\\DeclareMathOperator{\\minimize}{minimize}\n",
"\\newcommand{\\real}{\\mathbb{R}}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Monster vs. Mouse (50 Points)\n",
"\n",
"While trying to sleep, you hear some noise under your bed. Being a big Science Fiction fan you obviously immediately think it's a monster. A BIG monster... or maybe two?!? Frightened to death, you do not dare to move, but your brain is racing. And it recalls that the other day, you saw a mouse disappearing on the other side of the bedroom... So maybe it is (just?!?) a mouse. Or, just something else... Hmmm. Remembering your Emperical Inference classes, you decide to evaluate the probability that, given some noise under your bed, there is a monster.\n",
"\n",
"You define the random variables:\n",
"\n",
" + n = some noise under your bed (Values 0 or 1)\n",
" + M = 0, 1 or 2 monsters under your bed (Values 0, 1 or 2)\n",
" + m = a mouse under your bed (Values 0 or 1)\n",
" + e = something else (e.g. only air) under your bed (Values 0 or 1),\n",
"\n",
"and express your beliefs about monsters, mice and noise, by assigning numbers to P(M), P(m), P(e), P(n|M), P(n|m), P(n|e). Given that you heard some noise under your bed, you then calculate the Maximum a Posteriori (MAP) of M (i.e., the maximum of P(M|n=1)).\n",
"\n",
"Please share your beliefs and your results with us."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Programming a Hand-Featured SVM (50 points)\n",
"\n",
"The goal of this exercise is to implement a very simple SVM using an off-the-shelf optimizer, in the case of a 2-dimensional input space.\n",
"Most of it has already been implented in an iPython Notebook that you can find on the homepage of the course, and that we reproduce hereafter.\n",
"\n",
"You are asked to hand out a print out of the lines marked \"### CHANGE THIS LINE ###\", as well as your plots."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The SVM equation in the linear separable case\n",
"\n",
"Let $(x_1,t_1), \\ldots, (x_N,t_N) \\in \\real^p \\times \\{-1,1\\}$ be N data points with their binary labels. For this exercise, $p=2$. \n",
"In the lecture, we saw that trying to maximize the margin between two linearly separable classes of data points led to the problem:\n",
"\\begin{equation}\n",
" \\minimize_{\\substack{ \\{ w \\ \\in \\real^2,\\ b \\ \\in \\ \\real \\} }} \\frac{1}{2} \\norm{w}^2 \\quad \\mathrm{subject \\ to} \\quad t_n(w^T x_n + b) \\geq 1 \\quad n = 1 \\ldots N ,\n",
"\\end{equation}\n",
"whereby the points are subsequently classified according to the rule:\n",
"\\begin{equation}\n",
" t = \\left \\{ \n",
" \\begin{array}{cc}\n",
" \\ \\ 1 \\quad \\mathrm{if} \\quad w^T x + b \\geq 0 \\\\\n",
" -1 \\quad \\mathrm{if} \\quad w^T x + b < 0\n",
" \\end{array}\n",
" \\right . .\n",
"\\end{equation}\n",
"The function $\\mathop{l}(w,b) := \\frac{1}{2} \\norm{w}^2$ is called the _objective_ function. The equations $t_n(w^T x_n + b) \\geq 1$ are called the (_inequality_) _constraints_.\n",
"\n",
"In practice, one often preferres to transform this problem into its so-called _dual_ formulation. However, in this exercise, we will stick to the above equations: the _primal_ formulation."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##Loading the required packages."
]
},
{
"cell_type": "code",
<<<<<<< HEAD
"execution_count": 53,
=======
"execution_count": 2,
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"import math as m\n",
"from numpy import *\n",
"from scipy import optimize\n",
"from matplotlib import pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Definition of the data point \n",
"\n",
"_X = location of the data points_ $\\in \\real^{N \\times 2}$ \n",
"_t = label class of each point_ $\\in \\real^N$"
]
},
{
"cell_type": "code",
<<<<<<< HEAD
"execution_count": 54,
=======
"execution_count": 3,
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"X_ = np.array([[1.,3.],[2.,6.],[2.,3.],[-1.,0],\n",
" [1.,0.],[2.,2.],[3.,1.],[0.,-1.]])\n",
"t_ = np.array([1,1,1,1,-1,-1,-1,-1])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Definition of the Objective Function and its Gradient\n",
"\n",
"_wb = $(w_1, w_2, b) = (w , b)$_ $\\in \\real^2 \\times \\real$\n",
"\n",
"(Note that the gradient of the objective function (here called 'jac') does not appear in the equations of an SVM. But our off-the-shelf optimizer uses it for its computations.)"
]
},
{
"cell_type": "code",
<<<<<<< HEAD
"execution_count": 55,
=======
"execution_count": 4,
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def objective(wb):\n",
" ### changed ###\n",
" return 0.5*(wb[0]**2+wb[1]**2)\n",
"def jac(wb):\n",
" return hstack((wb[0:2],array([0])))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Definition of the Inequality Constraints and of their Gradient\n",
"\n",
"(Again, the gradient does not appear in the SVM equations, but it is needed for our optimizer.)"
]
},
{
"cell_type": "code",
<<<<<<< HEAD
"execution_count": 94,
=======
"execution_count": 5,
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def ineq(wb):\n",
" #writing \"return a-b\" would encode the constraint a-b >= 0\n",
" ### changed ###\n",
" return t*(np.dot(wb[0:2],X.T)+wb[2])-1\n",
"\n",
"def grad(wb):\n",
" return -1*hstack(((-t*X.T).T, -t[:,newaxis]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Optimisation of the SVM"
]
},
{
"cell_type": "code",
<<<<<<< HEAD
"execution_count": 95,
=======
"execution_count": 6,
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-2. 2. -1.]\n"
]
}
],
"source": [
"def optimizeSVM(X_,t_):\n",
" global X,t\n",
" X = X_\n",
" t = t_\n",
" wb0 = np.random.randn(3) #initialization\n",
" #wb0 = array([-1.,-2.,0.2])\n",
"\n",
" cons = {'type':'ineq', #constraints\n",
" 'fun': ineq,\n",
" 'jac': grad}\n",
"\n",
" opt = {'disp':False}\n",
"\n",
" opt_result = optimize.minimize(objective, wb0, jac=jac,constraints=cons, #the optimizer\n",
" method='SLSQP', options=opt)\n",
" wb_opt = opt_result[\"x\"] #result of the optimization\n",
" \n",
" return wb_opt\n",
"\n",
"wb_opt = optimizeSVM(X_,t_) #the optimized parameters\n",
"print(wb_opt)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plotting the Result"
]
},
{
"cell_type": "code",
<<<<<<< HEAD
"execution_count": 96,
=======
"execution_count": 7,
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"iVBORw0KGgoAAAANSUhEUgAAAXAAAAEACAYAAACqOy3+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n",
<<<<<<< HEAD
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x106d19790>"
=======
"AAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuYXFWd7vHvSwK5kKBwVEYkiANqAsEQjgQiAo1XaB0d\n",
"RlG8zIghmTkDpAMiwjgjncILCAqSgBwNgiJ4GW6O3JQg9hkQDiA3RcBLPJjg4SaOmGiiQX7zx6rQ\n",
"3aE76e61q2rvqvfzPDxQ1VVr/4wPv16svfa7FBGYmVn1bNHqAszMbGzcwM3MKsoN3MysotzAzcwq\n",
"yg3czKyi3MDNzCoqq4FLeqWkuwf89ZSknqKKMzOz4amofeCStgB+DcyJiFWFDGpmZsMqcgnlDcAK\n",
"N28zs+YosoEfDnytwPHMzGwTCllCkbQVaflkt4h4IntAMzPbrPEFjXMIcOdQzVuSw1bMzMYgIrSp\n",
"nxfVwN8DfH2sRZSBpMURsbjVdWxOFeqsQo3gOovmOos1kslv9hq4pK1JNzCvyB3LzMxGLnsGHhF/\n",
"AF5QQC1mZjYKfhKzX1+rCxihvlYXMAJ9rS5ghPpaXcAI9bW6gBHqa3UBI9TX6gKKUtiDPMNeQIoq\n",
"rIGbmZXJSHqnZ+BmZhXlBm5mVlFu4GZmFeUGbmZWUW7gZmYV5QZuZlZRbuBmZhXlBm5mVlFu4GZm\n",
"FeUGbmZWUW7gZmYV5QZuZlZRbuBmZhXlBm5mVlFFnMjzfEmXSXpA0v2S9i2iMDMz27QizsQ8G7g2\n",
"It4paTywdQFjmjXMTKl7GvRMhYmrYd0qWHJfxLWtrststLIauKTnAftHxAcAIuJp4KkiCjNrhJlS\n",
"91w4exnsuuG9BbDLTAk3caua3CWUlwFPSLpQ0l2SlkmaXERhZo0wDXoGNm+AZbDrTrCwVTVZE0nP\n",
"R5rU6jKKkruEMh7YCzgmIu6Q9DngJODkgR+StHjAy76I6Mu8rtmYTIWJQ70/BdrmX2obgrQFcATw\n",
"KWA+cHVL6xmCpC6gazTfyW3gDwMPR8Qd9deXkRr4IBGxOPM6ZoVYDeuGen8NrG12LdYk0t7AOcAz\n",
"wFuIuLPFFQ2pPrHt2/BaUu/mvpO1hBIRjwKrJL2i/tYbgJ/kjGnWSKtgyQL4xcD35sOKlbC0VTVZ\n",
"g0gvRFoGfBs4D9ivrM17rLJPpZc0Czgf2ApYAXwwIp4a8HOfSm+lMlPq3gkWToFJa2DtSljqG5ht\n",
"JO2G+19AL3AxsJgBPakqRtI7sxt4EUWYmRVC2p+0XPIk0EPEfS2uaMxG0juL2AduZtZa0g7AGcD+\n",
"wIeBS2n07LQE/Ci9mVWXtBXSCcCPgIeAGUT8eyc0b/AM3MyqSnoTsIR0721fIn6xmW+0HTdwM6sW\n",
"aWfgTGAWsIiI0u3pbhYvoZhZNUiTkE4GfgjcBezeyc0bPAM3s7KTBLwNOAu4E9iLiJWtLaoc3MDN\n",
"rLzSQ4JnAy8FFhDxvRZXVCpeQjGz8pGmIJ0G3AIsB2blNm+J7STOkXhdITWWgBu4mZWHJKTDgQeA\n",
"FwN7EHEmEevHPiTjJBbUxxwH3FtMsa3nJRQzKwdpD1ImzfOAw4n4Qf6Q7EN6MnM9cEgEd+WOWSae\n",
"gZtZa6WM7rOB7wHfBF6d27wlXiTxJeBK0i+F17Zb8wY3cDNrFWkLpHnAg8AEYDciziPiL2MfkvES\n",
"PaRU1N8BMyK4KIJniim6XLyEYmbN14CMbokDSbPtJ4CuiPaPtnYDN7PmkV5IOhXnraTDX75KRNbs\n",
"WGJHUpDVfsCHgMsj6IgsFC+hmFnjSeORjiYtbawGphPxlZzmLTFB4kTSrpIVpOWSyzqleYNn4GbW\n",
"aIMzug8iIntpQ+Jg0gM+PwP2iaDjgqyggAYu6SHg98BfgPURMSd3TDNrAymj+3TgAArK6JZ4GemR\n",
"+pnAsRHlO5y4mYpYQgmgKyJmu3mb2UYZ3b+igIxuickSNVKQ1e3AzE5v3lDcEoqPTDOzwjO6JQT8\n",
"LWnWfTswOwIHWdUV0cADuEHSX4AvRMSyAsY0sypJGd2fBfakoIxuiemkXwYvAeZFcGP2mDXtCfz/\n",
"6I3Hc8cqgyIa+H4R8YjS9qDlkh6MiJsGfkDS4gEv+yKir4DrmlmrSZOAE4Ae4HPA+4hYlzckU4GP\n",
"AfOATwLnRDDmLBQA1bQd8HHgncC7gNI1cEldQNeovlPk0XGSeoE1EfHZAe/5VHqzdvPcjO7jczO6\n",
"68sl7wU+DdwAnBTBo1lj1jQOOJLUvC8FTo7e+G3OmM3S8FPpJU0GxkXEaklbA28CajljmlnJNSCj\n",
"W2IW6SnKKcC7Irgle8ya9iVtX1wHvDl6457cMcsmdwlle+DK9MuY8cAlEXF9dlVmVj7SFODfgPmk\n",
"pymX5sS8piHZljQ7Pgw4GTg/gjFnoQCopu2B00gTyhOBS6K3PU+pz2rgEfH/SDctzKxdpRnau0mP\n",
"q99Iyuh+JG9ItiCtcX+ClBi4WwRPZo1Z05bAUaRfMl8GZkRv/D5nzLLzk5hmNrzGZHTPIS1tPA10\n",
"FxHzqpoOItX5CHBA9MYDuWNWgRu4mT2X9HzS/az3AL3AF3NiXtOQvAg4FTiEFGR1cW7Mq2raEfgM\n",
"sC8pyOrKdl0uGYobuJn1k7YAjiCtcX+LlNH9m7whGU9a2vgYcBEpdOqprDFrmkBq2McD5wLzojf+\n",
"mDNmFbmBm1lSkYxu1dRN2gVzPzAneuOXuWNWlRu4WaerSEa3avpr0sNC04Ge6I3rcsZrB84DN+tU\n",
"FcnoVk2TVdMppCyUW4A93LwTz8DNOlEFMrpVk4BDgTOBW4E9ozcezq2znbiBm3WSimR0q6YZpCCr\n",
"vwKOiF7nJw3FSyhmnaDxGd13UEBGt2raRjWdAfwncBUw2817eJ6Bm7W7CmR015dL3kcKsvouMDN6\n",
"47GcMTuBG7hZu0oZ3WcCsyh/RvdSYBLwjuiN/5s7ZqfwEopZu5EmIZ1MWtq4C9g9t3lLTJU4HbgZ\n",
"uA7YM7d5q6btVNO5pBn3RcA+bt6j4xm4Wbt4bkb3Xg3I6J5ZUEb3hiCrS0mhU5XI6C4bN3CzduCM\n",
"7o7kJRSzKpOmIJ1GesBlOTArt3lLbCtxDnA9cAmwd27zVk3bq6YLgMtJT1Pu7+adzzNwsyqqTkb3\n",
"eOBoOiiju5kKaeCSxpFumDwcEX9TxJhmNozqZHR3kep8lA7K6G6mombgi0jJYFMLGs/MNuaMbttI\n",
"9hq4pB2BbuB8wKfPmxVN2gJpHvAgMIGU0X1eTvOWGC/RQwqy+h0pdOqinOatmiaoppOAe4CfArtF\n",
"b1zh5t04RczAzwJOALYpYCwzG0h6NenAgrJndB9C2gXzAB2e0d1MWQ1c0luBxyPibkldm/jc4gEv\n",
"+yKcbWC2SYMzuv8FuKjEGd1nAbsBi6I3rs0Zr5PVe2jXqL6TE0Qm6VPA35NufEwkzcIvj4h/GPCZ\n",
"iAgvrZiNhDQe+CfSGvfFQI2IvOPHxATgWOAjwHnAqRH8IWvMmiaT1syPIq13nxW98aecMW2wkfTO\n",
"rAa+0cUOBD688S4UN3CzERqc0b2wARndxzUgo/sEZ3Q3xkh6Z9H7wH2zwmy0nNFtY1TYk5gR8X8i\n",
"4m1FjWfW9hqf0X07zuhua34S06wVnNFtBXADN2smZ3RbgRxmZdYMzui2BvAM3KyRnNFtDeQGbtYo\n",
"zui2BvMSilnRnNFtTeIZuFlRBmd0fx9ndFuDuYGbFcEZ3dYCbuBmOZzRbS3kBm42FtIWwBGkxMD/\n",
"IGV0/yZvSMaTwqE+RtrCNyOCvCCrmiYAx5Ee0T8XmBe98cecMa083MDNRkvam7S04Yxuayk3cLOR\n",
"ql5G9wxSRvd1OeNZeXkbodnmSOORjiYdP7YGmE7El3Oat8QEiROBe0l5KDMiuCyneaumyarpFFIW\n",
"yq3AHm7e7c0zcLNNGZzR/Toi7ssfclBG9z4NyOje0xndncEN3Gwo/RndBwLH44xuK6GsJRRJEyXd\n",
"JukeSfdLOrWowsxaYnBG90qc0W0lljUDj4h1kg6KiD8qneV3s6TXRsTNBdVn1jz9Gd2/BOYS8fO8\n",
"4ZzRbY2VvYQS8eye0q2AcYATzDrUTKl7GvRMhYmrYd0qWHJflO+U8o3rnAHfODMlBs4iHf57dQHL\n",
"Jc7otobLbuBKDzTcBewCnBcR92dXZZUzU+qeC2cvg103vLcAdpkpUaYmPlSdf4Q33gWX7JUyutfl\n",
"jC8xlfQgzjzgk8A5EazPGrOm7YCPA+8k5ZdcEL15T3tae8jeRhgRz0TEnsCOwAGSurKrssqZBj0D\n",
"myLAMth1J1jYqpqGMlSdk2GLf4MX5jRvCUm8j/TQzItI69xn5TRv1TRONS2ojxmk0Kllbt62QWG7\n",
"UCLiKUnXAK8G+gb+TNLiAS/7Inyzpd1MhYlDvT8l/ed+aewB2w71fk6dzui2ItQnv12j+U5WA5f0\n",
"AuDpiPidpEnAG0nBPoNExOKc61j5rU6N5jnWwNpm1zIkaQrwb70we6gfj6VOiW1JSxuHAScD50eQ\n",
"F2RV0/akIKs3AycClzh0qjPUJ7Z9G15L6t3cd3KXUF4M3CjpHuA24Koo4NQRq55VsGQBgx9ImQ8r\n",
"VqaZaetIQjqctAyxw7Hwwdw6JbaQmF8fcxwpo/sLOc1bNY1XTYuA+0gPDc2I3rjYzds2RZk32zd/\n",
"ASkiQg29iJXCTKl7J1g4BSatgbUrYWlLb2AOzug+ZkNGd06dAzK61wMLG5DR3eOMboOR9U43cGs/\n",
"jc/oPpGU0Z0bOuWMbhvWSHqnH6W39tGcjO7pEWQdP1bP6P4Q6RF9Z3TbmLmBW3tobEb348CBEWQ/\n",
"46CauklBVvfjjG7L5AZu1dbYjO7XkGbJRWR070J6pH46aZ3bMa+WzXngVk2Nzei+h7RTZbcCM7pv\n",
"A27BGd1WIM/ArXoan9G9b0EZ3X9Hyui+BWd0WwO4gVt1pIzuM4ADaExG96IIrskuc3BG9wcc82qN\n",
"4iUUK7/BGd2/opiM7kkSi4E76M/ozmre9Yzuz5Ayuq8G9nLztkbyDNzKrTkZ3auyxnRGt7WIG7iV\n",
"k7Qzaf24Chnd55DCvJzRbU3lJRQrF2kSKcTnTlLO/O5EXJW5XDJV4nTgJuBaYM/c5q2atlNN55Jm\n",
"3BcB+7h5W7N5Bm7lIIl0Ks7nSM17LyJ+lTckAt5LWtq4AdgjgkezxqxpHHAkKYXwMlLolE+hspZw\n",
"A7fWk15J2sL3UmABETfkD/lsRvfWwGER3Jo9pjO6rWS8hGKtI01BOg34AbAcmJXbvCW2lTgHuB64\n",
"BJiT27xV0/aq6ULgCtJ/Iezv5m1l4Bm4NV9aLjmctKf7RmAPIh7JG5ItSOdQfoLUaHeL4MmsMWva\n",
"EjiadA7ll4Hp0RtZQVZmRXIDt+aSXkVa2tgGePeGjO68IQdldHcXlNF9EKnOR0gzbmd0W+nkHqk2\n",
"jXQH/kWkQ1e/GBFLiijM2kzK6D6FNPMuc0b3NAZndF/hjG4rq9wZ+HrguIi4R+nMwTslLY/wbMXq\n",
"qpXRfTz9Gd0fdEa3lV1WA4+IR0nHQBERayQ9AOxAOivQOl1JM7qlmd0wrQemToTV6+i+7Rbm8Pek\n",
"jO69ndFtVVHYGrjSk3OzSbGZ1slKnNGdmvfcs2HZrmy7Ag4+Dl60/nXcvu0n4prfnpJTo1mzFbKN\n",
"sL58chmwKCLWFDGmVVDK6D6GUmd0T+thy7N35aCPwYI5sGounPObLbl237ljrdGsVbJn4JK2BC4H\n",
"Lo6Ibw3zmcUDXvZFOKGt7fRndP+WMmd07/U/p3HADHh4Lvzve+D30+o/nTIpt16zHJK6gK5RfScn\n",
"H0hpP+9XgCcj4rhhPuNT6dtZdTK6dwOW8F+T9uE/rpnCQwdt9Inu70Rce0judcyKMpLembuEsh/w\n",
"fuAgSXfX/zo4c0yrgmpmdF/FF176Xh762kYz+fkrYOXSnOuYtULuLpSb8eP4nadxGd1nUmxG9/tJ\n",
"QVbfAXaP3niMXpBm/gW6F6ZlkzVrYeXSiPuuzbmeWStkLaGM6AJeQmkfjcnofiXpl8GOwMKCMrpn\n",
"k7YaTgSOccyrVVEzllCsEzQ2o/tm4DqKy+j+PGnG7Yxua3vOQrHhNS6j+z3A6RSb0T2f9Ki+M7qt\n",
"Y7iB29Aak9H9KtJWwyIzuufWx1yLM7qtw3gJxQZrXEb30vp4RWd0X07acuiMbus4noFb4oxus8px\n",
"AzdndJtVlBt4J2tcRvengG6Ky+jekZTRPRdndJs9yw28EzUuo/ufgZMpNqP7Q8CHSRnd85zRbdbP\n",
"DbzT9Gd0B8VldB9QH3PMGd3PGbOmbtIuGGd0mw3DDbxTNCaj+yWkm577kZHRPWjMmnYh7SqZASyK\n",
"3vAj7mbD8DbCdtef0X0/8AdS6FRuRvdW9Yzue4EVZGd0g2qarJpOIR0Icisw083bbNM8A29ngzO6\n",
"Dyooo/vNpOyS4jK64e9IGSu3ArOjN7KCrMw6hRt4Oxqc0f1hICvmNQ3Jy0hNdg+Ky+ieQfpl8GLg\n",
"iOiN7+eOadZJvITSTobO6P5mgRndd1B8RvfVpFm3m7fZKHkG3i4GZ3S/hoif5Q3XsIzu95Eyur9L\n",
"Wud+LGdMs05WxJmYFwBvAR6PiD3yS7JR6c/o3hNYRPEZ3UcWlNG9J2k9fiLwDse8muUrYgnlQsDH\n",
"qDXb4Izuu0kP45Q1o/tc0ozbGd2jIM3slg75jvSuvvT3md2trsnKJXsGHhE3Kc0CrRmqldF9JPBx\n",
"nNE9aqlZzz0blu3a/+6CXaSZ+Pg328Br4FUyOKP7H4lYnj/ksxndU4B3RXBL9pg17Vsfcx3O6B6j\n",
"aT2Dmzek190LATdwA5rUwCUtHvCyLyL6mnHdtiFNIcWnzgdOBZYS8ee8IdmWFGT1LlJ+yfkR5AVZ\n",
"1bQ9cBrwZuAjwCUOnRqrqROHfn/KpObWYc0iqQvoGs13mtLAI2JxM67TdgZndH+f4jO6r6S4jO6j\n",
"SL9kvoIzuguwet3Q769Z29w6rFnqE9u+Da+V7nFtkpdQyqo/o/t5wOFE3Jw/5LMZ3U/TmIzuA5zR\n",
"XZRVS2DBLoOXUeavgJVLW1eTlY0yd5wh6evAgcD/IKXRnRwRFw74eUSEsi7SSQZndC8GvlBwRvdJ\n",
"pIzuvCArZ3Q3XLqRudPCtGyyZi2sXOobmJ1jJL0zu4EXUYQxVEb3vzYgo/uUCJ7KGvO5Gd2nOaPb\n",
"rHgj6Z1eQimDwRndbyXih/lDPpvR/QTQFcFPssd0RrdZqbiBt1JjM7pfS5opO6PbrE05zKoVBmd0\n",
"r6H4jO5fAjOc0W3W3jwDb7b+jO4ncUa3mWVwA2+WwRndxwOXFpzRfWwEV2eX6Yxus8rwEkqjDZ3R\n",
"nXXAwjAZ3VnN2xndZtXjGXgjDc7onkvEz/OGG5TRfQewVwQrs8Z0RrdZZbmBN0J/Rvcs4Fic0W1m\n",
"DeAllCKljO6TSTGvdwG7F5jR/QPSDNkZ3WYGeAZejP6M7rNIjbsRGd0zndFtZgO5geeSXkF6OnFn\n",
"Ukb3DflDOqPbzDbPSyhjJU1BOg24hTRDnpXbvCW2lVgKLAcuAfbObd6qaXvVdCFwOekUn/3dvM3a\n",
"g2fgo5WWS95NtTK6v0xaLnFGt1kbcQMfDWkPBmd0/yB/SGd0m9nYuIGPRMrorpFuKvYCXyx5Rve+\n",
"pCCrK53Rbda+3MA35bkZ3bs1IKN7RoEZ3ceTMrrnOaPbrP1lN3BJB5Nujo0Dzo+IT2dXVQb9Gd3P\n",
"AG8h4s78IRue0T3HGd1mnSPrRB5J44CfAm8Afk16vPs9Ef1rrmU/kWem1D0NeqbCxNWw7oXw5Yvg\n",
"9aSM7pOAr5Y8o3s6KaP7upzxipCOAJvWk05UX70OVi3xEWBmY9OME3nmAL+IiIfqF/wG8HagEjfN\n",
"Zkrdc+HsZfDswbFr4A0Pwrenw3Qi8pY2xATSo/QfAc4DFkTwh6wxa5pM+sVyFGm9+7DojT/ljFmE\n",
"1Lznnj34EN4Fu0gzcRM3a4zcBv4SYGBO9MPAPpljNs006BnYvAGmwLgPwaRr85v3waSljZ8B+xSc\n",
"0X0LsGf0xsM5YxZrWs/g5g3pdfdCwA3crAFyG/iIlgEkLR7wsi8i+jKvW4hdYJuh3p8Ck8Y6Zj2j\n",
"+yxgJo3J6P5A9Jbjz2+wqROHfn/KmP8szTqJpC6gazTfyW3gvwamDXg9jTQLHyQiFmdep1jSVsCi\n",
"T8Orh/rxGlg7+iGZDJwIHAN8Fjg8gnVZZda0DWm3ygdI+SWfj954OmfMxlk9zP/WNaP+szTrRPWJ\n",
"bd+G15J6N/ed3Efpfwi8XNLOSk3x3cC3M8dsrJTR/SOg6+PwzwsYvLQxH1asTA/BjHA4JHEoaRfI\n",
"DGB2BJ/Kad6qSarp/aR7CduRMrqXlLd5A6xaAgs2WiaavwJWjvjP0sxGJ2sXCoCkQ+jfRviliDh1\n",
"o5+XYxfK4IzuRURcDelG5k6wcApMWgNrV8LS+2JkB/dKTCctbbwEWNiAjO5jqhTzmm5k7rQwLZus\n",
"WQsrl/oGptnYjKR3ZjfwIopocAGTgBOAHtIvms8Qkbe0IaYCHyPll3wSOCeC9Vlj1rQdaZnknaT8\n",
"kguiN+9pTzOrrmZsIyyvwRndd5IyuvOOH0sZ3e8lHT/WiIzuS3FGt5mNUHs28P6M7pcCC4j4Xv6Q\n",
"zCKtjTuj28xKob3ywAdndC8nZXRnNe96Rvc5wPU4o9vMSqQ9ZuCDM7pvxBndZtYBqt/AndFtZh2q\n",
"ug28cRndpwKH4IxuMyu56jXwwRnd36K4jO6jSFsDndFtZpVQrQbemIzuA0lLG87oNrNKqUYDl15I\n",
"mnEXmdG9I+mm536kWfJlBWd095Qho9vM2le5txFK45GOBn4CrCZldH8lp3lLTJA4EbgXWEFaLrk0\n",
"p3mrpsmq6RTgNtIWxj3cvM2s0co7A5f2Jy2XPAkcRET+0kZjMroPJWWs3ErpMrrNrJ2Vr4FLOwCn\n",
"AwcAHwYuJTOwpcEZ3X8FHFHOjG4za2flWUKRtkI6gRT1+itgBhH/ntO8JSZL1Eixt7eTskuymrdq\n",
"2kY1nQH8J3AVMNvN28xaoRwz8JTRvQT4JTCXiJ/nDYeAvyXNum8nZXTnBVml5ZL3kYKsvkvK6H4s\n",
"Z0wzsxytbeCDM7qPBa4uYLlkYEb3vAIzupeSjlp7R5Uyus2sfbVmCUWahHQyKeb1LmB3Iq7KXC6Z\n",
"KnE6cDNwHbBnbvNWTduppnNJM+6LgH3cvM2sLMY8A5d0GLCYtOd574jYfF7I4Izuu0gZ3b8aaw1p\n",
"yIZldG8IsnJGt5mVUs4Syo9JW+i+MKJP92d07wz8IxE3ZFy7PuSzGd1b0+YZ3em4smk96fT31etg\n",
"1RIfV2bW2cbcwCPiQdgwqd6MlNE9nxQUtZSIP4/1umk4tiWdYHMY6dT28yPIC7Kqaft6fW8mnS5/\n",
"SVlCp1Lznns2LNu1/90Fu0gzcRM361zNuom5A8VndF9BMRnd44GjKXVG97Sewc0b0uvuhYAbuFmH\n",
"2mQDl7Sc9KDKxj4aEVeN9CJK2wP/iTRb74sY/b7pARnd6ykuo7uLtATzKKXO6J46cej3p0xqbh1m\n",
"1iiSuoCu0Xxnkw08It6YUc/AcRaP9bsbZXSfSMrozg2dqlhG9+p1Q7+/Zm1z6zCzRqlPbPs2vJbU\n",
"u7nvFLWNcAQL4aMcUIyX6CEFWf0OmB7BVzNDpyaoppOAe4CfArtFb1xR7uYNsGoJLNgot2X+Cli5\n",
"tDX1mFkZaKxbryUdSnpg5gXAU8DdEXHIEJ+LiBhVgx+Q0f040BPB/WMqcuCYNR1C2gXzAHBc1TK6\n",
"043MnRamZZM1a2HlUt/ANGtfI+mdY27gRRbR/9lnM7pfQ8rovryA5ZK/Ju07nwEscsyrmVXBSHpn\n",
"KcKsBmR03wP8grS7JOuAhQEZ3beTol6d0W1mbaXlYVYbZXTv64xuM7ORaVkD3yije1EE12SP6Yxu\n",
"M+sgTV9CkZgksRi4g/6M7qzmXc/o/gzO6DazDtK0GfiAjO4z6c/oXpU1pjO6zayDNaWBS7yStLSx\n",
"I3BkgRnd5wATcUa3mXWgpmwjhPgN8Eng3AjWZ41X03akIKt3kvJLLojeyAqyMjMrm5FsI2zWEsoe\n",
"BWV0H0lq3s7oNrOO15QGXkDzLmVGt5lZK7V8H/im1DO6TwPeRMkyus3MWq2UDVw1bQkcRakzus3M\n",
"Wqt0DVw1HUQKsnqEUmd0m5m1VmkaePUyus3MWqvlDVw1TSA17OOBc4F50Rt/bG1VZmbl19IGrpq6\n",
"SUFW9wNzqpbRbWbWSmNu4JLOAN4K/BlYAXwwIp4a0Xdr2oUUZDUd6HHMq5nZ6OWEWV0P7B4Rs0hR\n",
"sP+yuS8MyOi+DbiFEmV01w8ULb0q1FmFGsF1Fs11Nt+YG3hELI+IZ+ovbyPlnAxJNUk1vYN0nNnL\n",
"SRndp0Vv/Gms12+ArlYXMEJdrS5gBLpaXcAIdbW6gBHqanUBI9TV6gJGqKvVBRSlqDXwecDXN/Hz\n",
"60kZ3R9wzKuZWTE22cAlLSc13o19NCKuqn/mX4E/R8TXNjHU1cDnozeygqzMzKxfVhqhpCOABcDr\n",
"I2LdMJ/xXm4zszFoWBqhpIOBE4ADh2veIynAzMzGZswzcEk/B7YCNkS63hoRRxVVmJmZbVrDD3Qw\n",
"M7PGaMqhxpLOkPSApHslXSHpec247mhIOkzSTyT9RdJera5nY5IOlvSgpJ9LOrHV9QxF0gWSHpP0\n",
"41bXsimSpkn6fv3/7/sk9bS6pqFImijpNkn3SLpf0qmtrmk4ksZJulvSVa2uZVMkPSTpR/Vab291\n",
"PUOR9HxJl9V75v2S9h3us806lX7UD/20wI+BQ0kn25eKpHGkAy0OBnYD3iNpRmurGtKFpBrLbj1w\n",
"XETsTgpPO7qMf571e0sHRcSewKuAgyS9tsVlDWcRKRKj7P9JH0BXRMyOiDmtLmYYZwPXRsQM0v/v\n",
"wyayNqWBj+ahn1aJiAcj4metrmMYc4BfRMRDEbEe+Abw9hbX9BwRcRPwX62uY3Mi4tGIdKpTRKwh\n",
"/QuyQ2urGlrEs8FuWwHj6L/nVBqSdgS6gfOBKmxaKG2N9dWJ/SPiAoCIeHpTESXNmoEPNA+4tgXX\n",
"rbKXAKuEvdvRAAACK0lEQVQGvH64/p5lkrQzMJs0sSgdSVtIugd4DPh+RNzf6pqGcBZpR9ozm/tg\n",
"CQRwg6QfSlrQ6mKG8DLgCUkXSrpL0jJJk4f7cGENXNJyST8e4q+/GfCZkTz00zAjqbGkyv6fpZUk\n",
"aQpwGbCoPhMvnYh4pr6EsiNwQNlyPCS9FXg8Iu6mxDPbAfaLiNnAIaSls/1bXdBGxgN7AZ+PiL2A\n",
"PwAnberDhYiIN27q5/WHfrqB1xd1zdHaXI0l9mtg2oDX00izcBsjSVsClwMXR8S3Wl3P5kTEU5Ku\n",
"AV4N9LW4nIFeA7xNUjcwEdhG0kUR8Q8trmtIEfFI/e9PSLqStDx5U2urGuRh4OGIuKP++jI20cCb\n",
"tQtlw0M/b9/UQz8lUraZxA+Bl0vaWdJWwLuBb7e4psqSJOBLwP0R8blW1zMcSS+Q9Pz6P08C3gjc\n",
"3dqqBouIj0bEtIh4GXA4cGNZm7ekyZKm1v95a9Jh6aXaMRURjwKrJL2i/tYbgJ8M9/lmrYEvBaYA\n",
"y+vbdz7fpOuOmKRDJa0i7Uq4RlIpYm4h3cgAjgG+S7rT/82I8p0VKunrpJjgV0haJemDra5pGPsB\n",
"7yft6ri7/lcZd8+8GLixvgZ+G3BVRHyvxTVtTpmX+7YHbhrw53l1RFzf4pqGshC4RNK9pF0onxru\n",
"g36Qx8ysolqxC8XMzArgBm5mVlFu4GZmFeUGbmZWUW7gZmYV5QZuZlZRbuBmZhXlBm5mVlH/DYXM\n",
"z2nC5qRuAAAAAElFTkSuQmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbcb01f62e8>"
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def plotSVM(X,t,wb):\n",
" plt.plot(X[t>0,0],X[t>0,1], 'ro')\n",
" plt.plot(X[t<0,0],X[t<0,1], 'bo')\n",
" plt.axis([-2, 6, -2, 7])\n",
" x = np.arange(-2,6,1)\n",
" y0 = -1*wb[0]/wb[1]*x-wb[2]/wb[1]\n",
" y1 = -1*wb[0]/wb[1]*x-(wb[2]+1)/wb[1]\n",
" y_1 = -1*wb[0]/wb[1]*x-(wb[2]-1)/wb[1]\n",
" plt.plot(x,y0)\n",
" plt.plot(x,y1)\n",
" plt.plot(x,y_1)\n",
" \n",
"plotSVM(X_,t_,wb_opt) ### PROVIDE THIS PLOT ###"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## New Data Set\n",
"\n",
"You are now given the following new data set."
]
},
{
"cell_type": "code",
<<<<<<< HEAD
"execution_count": 59,
=======
"execution_count": 8,
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Generating the data\n",
"N_half = 20\n",
"u1 = random.rand(N_half)\n",
"x1 = cos(2*pi*u1) + .3*random.rand(N_half)\n",
"y1 = sin(2*pi*u1) + .3*random.rand(N_half)\n",
"u2 = random.rand(N_half)\n",
"x2 = 2.*cos(2*pi*u2) + .3*random.rand(N_half)\n",
"y2 = 2.*sin(2*pi*u2) + .3*random.rand(N_half)\n",
"\n",
"# New Data\n",
"X_c = transpose(vstack((hstack((x1,x2)),hstack((y1,y2)))))\n",
"t_c = hstack((ones(N_half),-ones(N_half)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Remark that the data is distributed on two circles, centered on zero, with different radii."
]
},
{
"cell_type": "code",
<<<<<<< HEAD
"execution_count": 60,
=======
"execution_count": 11,
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[-3, 3, -3, 3]"
]
},
<<<<<<< HEAD
"execution_count": 60,
=======
"execution_count": 11,
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"iVBORw0KGgoAAAANSUhEUgAAAXAAAAEACAYAAACqOy3+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n",
<<<<<<< HEAD
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x106eb0950>"
=======
"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\n",
"AElFTkSuQmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x7f37ddd0c5f8>"
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot new data\n",
"plt.plot(X_c[t_c>0,0],X_c[t_c>0,1], 'ro')\n",
"plt.plot(X_c[t_c<0,0],X_c[t_c<0,1], 'bo')\n",
"plt.axis([-3, 3, -3, 3])"
]
},
{
"cell_type": "code",
<<<<<<< HEAD
"execution_count": 80,
=======
"execution_count": 11,
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 0.79320872 0.87751141]\n",
" [ 0.34859625 1.10144607]\n",
" [ 0.84730164 0.86600705]\n",
" [ 0.87178605 0.67973604]\n",
" [ 1.02320953 0.05223257]\n",
" [ 1.12153457 0.49210989]\n",
" [ 0.85257302 0.46268987]\n",
" [ 1.02866962 0.7313684 ]\n",
" [ 0.44710416 0.8148271 ]\n",
" [ 1.00715163 0.60103491]\n",
" [ 0.97326449 0.48955367]\n",
" [ 0.8782296 0.68866347]\n",
" [ 0.17089173 1.06423413]\n",
" [ 1.01157981 0.39264252]\n",
" [ 0.3417288 0.84054634]\n",
" [ 1.11146543 0.40394795]\n",
" [ 0.88481468 0.84173672]\n",
" [ 0.70515482 0.89868454]\n",
" [ 0.70562623 1.03892147]\n",
" [ 0.49678118 0.83054123]\n",
" [ 0.40706008 1.42381673]\n",
" [ 1.39657279 0.39009172]\n",
" [ 1.04451919 1.19192739]\n",
" [ 0.53297958 1.50011112]\n",
" [ 0.99420448 1.42983513]\n",
" [ 1.39050571 0.74889203]\n",
" [ 1.28308941 1.24967158]\n",
" [ 1.31448187 0.92596038]\n",
" [ 1.15165617 1.19119312]\n",
" [ 1.11444156 1.05553909]\n",
" [ 1.32773815 0.98155402]\n",
" [ 1.10494624 1.24527458]\n",
" [ 1.22212946 1.28531447]\n",
" [ 0.92884761 1.4680145 ]\n",
" [ 0.76518426 1.42363411]\n",
" [ 1.0229485 1.27350279]\n",
" [ 1.37170015 0.8541038 ]\n",
" [ 0.26667152 1.37509233]\n",
" [ 1.3817956 1.13790164]\n",
" [ 0.70795683 1.32292239]]\n"
]
},
{
"data": {
"text/plain": [
"[0, 6, 0, 6]"
]
},
<<<<<<< HEAD
"execution_count": 80,
=======
"execution_count": 11,
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
<<<<<<< HEAD
"iVBORw0KGgoAAAANSUhEUgAAAWgAAAEACAYAAACeQuziAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n",
"AAALEgAACxIB0t1+/AAAE8lJREFUeJzt3W2QnWV9x/HvnwQaQlKpYoVIGGyi0zYLI6gIVcO2lYds\n",
"qfVFoTpDnYLJq5owtWpFQePY1qnTjiU6dqaRMJgy9gUWR9sQUMtWmQIGJMUAKsnUYYEgKBUTkszw\n",
"8O+Lcw57sjkP9+6es+fKnu9n5syeh/tc9395+OXKdV/XdUdmIkkqzzGDLkCS1JoBLUmFMqAlqVAG\n",
"tCQVyoCWpEIZ0JJUqK4BHREnRsTNEfFwRDwUEefORWGSNOwWVjjmOmBbZv5xRCwETuhzTZIkIDot\n",
"VImIVwD3Z+ZvzF1JkiToPsTxOuDpiLghIr4fEZsjYvFcFCZJw65bQC8Ezga+mJlnA88BH+17VZKk\n",
"rmPQjwGPZeaO+uubmRLQEeFmHpI0A5kZnT7vGNCZ+WRETETEGzLzx8A7gQene5KjWURszMyNg66j\n",
"X/z9jm7z+febz78bVOvcVpnFsR64KSKOA/YAV8y2MElSd10DOjP/B3jLHNQiSWriSsLuxgddQJ+N\n",
"D7qAPhsfdAF9Nj7oAvpofNAFDFrHedCVGojI+TwGLUn9UCU77UFLUqEMaEkqlAEtSYUyoCWpUAa0\n",
"JBXKgJakQhnQklQoA1qSCmVAS1KhDGhJKpQBLUmFMqAlqVAGtCQVyoCWpEIZ0JJUKANakgplQEtS\n",
"oQxoSSqUAS1JhTKgJalQBrQkFcqAlqRCGdCSVCgDWpIKZUBLUqEMaEkq1MIqB0XET4BfAi8Cz2fm\n",
"Of0sSpJUMaCBBEYz85l+FiNJmjSdIY7oWxWSpCNUDegEvhUR90bEun4WJEmqqTrE8bbM3BsRrwa+\n",
"GRE/zMzv9rMwSRp2lQI6M/fWfz4dEbcA5wAvB3REbGw6fDwzx3tYoyQd9SJiFBid1ncys1uji4EF\n",
"mbkvIk4Abgc+lZm31z/PzHR8WpKmoUp2VulBvwa4JSIax9/UCGdJUv907UF3bcAetCRNW5XsdCWh\n",
"JBXKgJakQhnQklQoA1qSCmVAS1KhDGhJKpQBLUmFMqAlqVAGtCQVyoCWpEIZ0JJUKANakgplQEtS\n",
"oQxoSSqUAS1JhTKgJalQBrQkFcqAlqRCGdCSVCgDWpIKZUBLUqEMaEkqlAEtSYUyoCWpUAa0JBXK\n",
"gJakQhnQklQoA1qSCmVAS1KhKgV0RCyIiPsj4hv9LkiSVFO1B30V8BCQfaxFktSka0BHxKnAGPAl\n",
"IPpekSQJqNaD/hzwYeClPtciSWqysNOHEXEJ8FRm3h8Rox2O29j0cjwzx3tSnSTNE/UMHZ3WdzLb\n",
"DytHxN8Cfwq8ACwCfhX4ama+r+mYzEyHPiRpGqpkZ8eAntLY+cCHMvMPp3sSSdLhqmTndOdBO4tD\n",
"kuZI5R502wbsQUvStPWjBy1JmiMGtCQVyoCWpEIZ0JJUKANakgplQEtSoQxoSSqUAS1JhTKgJalQ\n",
"BrQkFcqAlqRCGdCSVCgDWpIKZUBLUqEMaEkqlAEtSYUyoCWpUAa0JBXKgJakQhnQklQoA1qSCmVA\n",
"S1KhDGhJKpQBLUmFMqAlqVAGtCQVyoCWpEIZ0JJUqK4BHRGLIuKeiNgZEQ9FxGfmojBJGnYLux2Q\n",
"mYci4ncz80BELATujIi3Z+adc1CfJA2tSkMcmXmg/vQ4YAHwTN8qkiQBFQM6Io6JiJ3AT4E7MvOh\n",
"/pYlSeo6xAGQmS8Bb4yIVwC3RcRoZo43Po+IjU2Hjzd/JkmCiBgFRqf1ncyc7kmuBQ5m5t/XX2dm\n",
"xrQakaQhVyU7q8ziOCkiTqw/Px64ALi/NyVKktqpMsRxCnBjRBxDLdC3Zua3+1uWJGnaQxxHNOAQ\n",
"hyRNW0+GOCRJg2FAS1KhDGhJKpQBLUmFMqAlqVAGtCQVyoCWpEIZ0JJUKANakgplQEtSoQxoSSqU\n",
"AS1JhTKgJalQBrQkFcqAlqRCGdCSVCgDWpIKZUBLUqEMaEkqlAEtSYUyoCWpUAa0JBXKgJakQhnQ\n",
"klQoA1qSCmVAS1KhDGhJKpQBLUmF6hrQEbE8Iu6IiAcjYldEbJiLwiRp2EVmdj4g4mTg5MzcGRFL\n",
"gPuAd2fmw/XPMzOj/6VK0vxRJTu79qAz88nM3Fl/vh94GFjWmxIlSe1Maww6Ik4HzgLu6UcxkqRJ\n",
"C6seWB/euBm4qt6Tbv5sY9PL8cwc70l1kjRPRMQoMDqt73Qbg643fCzw78CtmfmPUz5zDFqSpqlK\n",
"dla5SBjAjcDPM/MvZnISSdLhehXQbwe+AzwANA6+OjO3Vz2JJOlwPQnoXpxEknS4nkyzkyQNhgEt\n",
"SYUyoCWpUAa0JBXKgJakQhnQklQoA1qSCmVAS1KhDGhJKpQBLUmFMqAlqVCV94MuRcTIGCzfAEsX\n",
"wb5DMLEpc9e2QdclSb12VAV0LZzPuw42r5x8d92KiBFmG9IGv6TSHFUBXQvQ5nCG2uux9cCMw7Sf\n",
"wS9JM1VkQLfvzS5d1PobS46fWXsN7YJ/zY0Rlz1oj1rSIBQX0J16s7D8UOtv7T84k/YmA7dd8L/1\n",
"JNh4fuvvSFJ/DWQWR8TIWMSa7RGXjdd+joxNftquN3vaepjYBOt2H/7Z2j3w6Ofbn61Tew372gT/\n",
"ix2+I0n9Nec96O492vbDGJm7ttV60mPra8Ma+w/Co5/v3KutMiwysQnWrTi8po8BF3f4jiT11wCG\n",
"OLpd6GvXm60NY9TDuOsww+S48+Iz4RrgQmD1Ee012jw8+PetgqtPOvz4w78jSf02gIDu1qNt1Zvt\n",
"NoxxuNa99I/Xf65u2V5z8Ne+v/U6WL2ydr/c24Hdh+CFX48YGWvXY3eqnqRemvObxkas2Q63XnTk\n",
"J2PbM7etqR0zMlYb7606jFH1HJc8Ay99r0p7tRpe+Sl4/Sq4vmlo48q9sPsJOHl/cwi3/kPhygPw\n",
"2B5Y8IRhLalZpezMzFk9ak1M5/hVY7D2EcicfLx/N6wam20tk+e4dPzw9huPS8en187F21u3c03T\n",
"87WP1H6nbsfWjuvV7+jDh4+j+1ElO+d8iGNmF/qmq/M4dnXthmMWND3fvBIu2Qq/0uZPwgVNx81u\n",
"QY2k4TKQedBVL/TN3OzHsWuqTL8DePMr4YU2bTQf6ywQSdUVt1ClF3rXS5/YBFe+A7Ysnnyv1fS7\n",
"F6nNEvk48De0P3b/QS8kSqpqzi8SHm0iLnwA3npGbajiaeAQcH3TEY0QXk1txsdnn4HjHoeXVsAH\n",
"F09O1Vu7B+7eCuddPmUO+G646ypDWhouVbKzmIAeiRhbDhuWwqJ9cGgCNu3KHHhoHTkj5DvAN4EH\n",
"n4dVx8IFHD5fujYbpdVMlFrPufMMFknDoUp29n2Io0rwjkSMnQfXbYaXe5brYMVIBIMP6anj2auB\n",
"L++BH2+FV11emyvdMDnO3WqcPeKyj7Q+h2PTko7UNaAjYgvwB8BTmXnGdBqvGrzLYUPzMQCbYeUY\n",
"zHjWQ6965G3Gs++G5efBzw/Cmp/Bi3th4ePdx7l7NbtE0lCoMFfvHcBZwA+mO5fvYtjeYmJwroFb\n",
"m4+7FMZbHXcpjM9kfuEqGFsLjzS3tRYeWQWznofceh53tTnOczEH3IcPH0fHo1N2Nh5de9CZ+d2I\n",
"OH0m4b8UWs4jXgKH/ZV+X+3K2xH2w4x6lv3okTe1Pu2bBkzO3PjtRfCjZ+HC++DE/f2ZAy5pvujr\n",
"GHTV4J2ATetgRXOoroU9j8I05y3XVP2DYWamd9OANrv37Ya7PmEwS+qkrwFdNXh3ZW4biWAM1i+B\n",
"4/fDwUfh8zO9QNjrHvmU1qc5jrzs0/24TZek+a8nAR0RG5tejmfmOEwveOvv9SSwJmDTlXDmFjil\n",
"8d4VsHemPfIprVdepVjrPY/8Vut2nLkhDZOIGAVGp/OdngR0Zm5s91kvg3c6fgF5LbXlJS8Cz0IC\n",
"b1kTMauZHdNbpbh8A6xsE8TO3JCGSb3jOt54HRGf7PadrgtVIuIrwPnAq4CngE9k5g1Nn2cWtpJw\n",
"TcT2W+GIBSHvhgNfg8VQW27yD3DgOXjq2FrS7j0IT/RygUzEZePwgfPhNmpLwF/eW/oleGYnPHGt\n",
"49DScOrJQpXMfG/vSmqv1bxlqM3IWAqLnoQliyBOhH3der/tLhK+sSmcbwP+EhbfBqfXd884CTij\n",
"twtk9h1qWuoNHAv8E9TuBXk2rLvOG9FKaqeIzZJaLWi5Es78BeS/wbJGoDZvQ9QpSNtdJGzsK3d7\n",
"va1rprQJvZyOB4ePV98O/PXUs3mxUFJbA7mr91St5i1vgVNWwTKYDNRmm2HlabUgPUJ99shhd/++\n",
"Ag5cUH++cMrPqXozHa+x3Puuq2Bse23+c8uzebFQUktF9KDbDUk0trqfbpC2mT1y90K4fDWsbOzc\n",
"3G4H595Mx6tp7MlR23TpyHFx+MWSXp1L0vxSREB3G5KYSZC2mj0yErFjDNa/AK+9Elb8GSyeuoPz\n",
"1Hnavdtlb2ITXHkmbDll8r2PAUtO6XQjWknDq4jtRluNQV8Be5/tMAa9FvbcDRtmejFvJGLsNFj/\n",
"S/jNpbDsBHj+OTg4AV/YlfmpdnWtg913wVUzOW/E6nvh/DdNTv5rbFXqdqPSsCliu9Eq2i1oAV5+\n",
"70k44cLaLI79s11p2HTOt5wDq7fAcdQeJ6yDy0ciduzK3Nb7PT1O3g+fbvG+49CSjlREQEPHBS19\n",
"+av/SMTYCvjIlvrUu4bmAO79nh5uNyqpumICeq4thw1nTQnnhkYAPwlLrqH2D+kFancdXM1sLiL2\n",
"6ma2kobB0Ab0UljU6eLjSMTYObCseebyx4HPzWJPj97dzFbSMCjiIuEgrInYfjVcNPXi4xVwYAdc\n",
"uhw2tFoufiHcd3vmm+euUknzUZXsLGKhyiBMwKatsPsi4FpgI7W9OnbAZ3dlth1/PhH2z2WdkobX\n",
"0A5xNGaOPN5mK9ROe0qXegdySfPL0AY0tJ85MhIxtgxe/R44uBKOb1wcrC9iubvcO5BLmk+Gdgy6\n",
"XS+41eKU98PBR+DBZ+CT7camx2D7tkwXm0iq5KhZqDLX2qwQXDES0XLjpuvh+DH42Xcyt10W8ZFW\n",
"bfZqgyVJahjKgO60QnBJ08XBxvb6C4Fj4K31Xveh5vcb86Orzo2evMP30kW1hSsTm5xmJ6mVoQzo\n",
"TisEGxcHW+z/8Wvr4Lr/hnu2wvOba7vvA7AOnn8U7u523jZ3+F7hpv2SWhnKaXadZmg09pLusAf1\n",
"Rc3hXH//2NPg3O5nXr6h9R2+T2u5r7Wk4TaUAd1qQ//GNqO7MrfdBVc9DM+0+u6SKeHc9H6FMeil\n",
"LXvubpYkqZWhHOJot3teY5rcrsxtayJ20GK2xn54vlWb1cag3SxJUnVDGdDQcfc84OVe9ormi4lr\n",
"Yc8EbF0Hl099v9r+HG6WJKm6oZ0HXUVjU/+pvex271dps3ah8DQ3S5KGXJXsNKAlaQDcLEmSjmIG\n",
"tCQVyoCWpEIZ0JJUKANakgrVNaAj4uKI+GFEPBIRfzUXRZVkJGJsTcT2yyLG10RsH4kYG3RNkoZD\n",
"x4UqEbEA+ALwTuBxYEdEfD0zH56L4gZtJGLsVPjnW+G1jffm2+b8ETGameODrqNf/P2OXvP5d6uq\n",
"Ww/6HGB3Zv4kM58H/hX4o/6XVYblsOHcpnCGlzdMmk+bG40OuoA+Gx10AX02OugC+mh00AUMWreA\n",
"fi0w0fT6MaYE1nzWaVvSua5F0vDpFtCzW2Z4lOu0Lelc1yJp+HRc6h0R5wIbM/Pi+uurgZcy8++a\n",
"jhnqEJekmZrVXhwRsRD4EfD7wBPA94D3DstFQkkapI6zODLzhYj4ALW7Py0ArjecJWluzHo3O0lS\n",
"f8xqJeF8XsQSEVsi4qcR8YNB19IPEbE8Iu6IiAcjYldEbBh0Tb0UEYsi4p6I2BkRD0XEZwZdU69F\n",
"xIKIuD8ivjHoWnotIn4SEQ/Uf7/vDbqeXouIEyPi5oh4uP7fZ8t7ms64B11fxPIjmhaxMI/GpyPi\n",
"HcB+4MuZecag6+m1iDgZODkzd0bEEuA+4N3z5d8fQEQszswD9WspdwIfysw7B11Xr0TEB4E3AUsz\n",
"812DrqeXIuJ/gTdlZst7gx7tIuJG4L8yc0v9v88TMvPZqcfNpgc9rxexZOZ3gf8bdB39kplPZubO\n",
"+vP9wMPAssFW1VuZeaD+9Dhq11Dmzf/sEXEqMAZ8CZivN8yYl79XRLwCeEdmboHatb5W4QyzC+ih\n",
"XsQyn0TE6cBZwD2DraS3IuKYiNgJ/BS4IzMfGnRNPfQ54MPAS4MupE8S+FZE3BsR6wZdTI+9Dng6\n",
"Im6IiO9HxOaIWNzqwNkEtFcX54H68MbNwFX1nvS8kZkvZeYbgVOB1RExOuCSeiIiLgGeysz7mae9\n",
"TOBtmXkWsAb48/qQ43yxEDgb+GJmng08B3y01YGzCejHgeVNr5dT60XrKBERxwJfBf4lM7826Hr6\n",
"pf7Xx/8A3jzoWnrkd4B31cdpvwL8XkR8ecA19VRm7q3/fBq4hdqQ6nzxGPBYZu6ov76ZWmAfYTYB\n",
"fS/w+og4PSKOA/4E+Pos2tMciogArgceysx/HHQ9vRYRJ0XEifXnxwMXAPcPtqreyMyPZebyzHwd\n",
"8B7gPzPzfYOuq1ciYnFELK0/PwG4EJg3s6ky80lgIiLeUH/rncCDrY7tuFCly0nm9SKWiPgKcD7w\n",
"qoiYAD6RmTcMuKxeehtwOfBARDSC6+rM3D7AmnrpFODGiDiGWkdka2Z+e8A19ct8G258DXBLrQ/B\n",
"QuCmzLx9sCX13Hrgpnrndg9wRauDXKgiSYXylleSVCgDWpIKZUBLUqEMaEkqlAEtSYUyoCWpUAa0\n",
"JBXKgJakQv0/lfRzUKDZYtIAAAAASUVORK5CYII=\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x106a6b390>"
=======
"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\n",
"YII=\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbc8e3a6c50>"
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
<<<<<<< HEAD
"#X_transformed = 2.5*transpose(vstack((hstack((np.abs(x1),np.abs(x2))),hstack((np.abs(y1),np.abs(y2)))))) #radius ### CHANGE THIS LINE ####\n",
"#X_transformed = transpose(vstack((hstack((sqrt(x1**2+y1**2),sqrt(x2**2+y2**2))),map(lambda x: m.atan2(x[0],x[1]),X_c)))) # radius and angle\n",
"#X_transformed = transpose(vstack((hstack((x1**2,x2**2)),hstack((y1**2,y2**2))))) #radius ### CHANGE THIS LINE ####\n",
"X_transformed = transpose(vstack((hstack((abs(x1)**(0.5),abs(x2)**(0.5))),hstack((abs(y1)**(0.5),abs(y2)**(0.5))))))\n",
"print X_transformed\n",
=======
"#X_transformed = 2.5*transpose(vstack((hstack((np.abs(x1),np.abs(x2))),hstack((np.abs(y1),np.abs(y2)))))) ### CHANGE THIS LINE ####\n",
"#X_transformed = transpose(vstack((hstack((sqrt(x1**2+y1**2),sqrt(x2**2+y2**2))),np.zeros(2*N_half))))\n",
"X_transformed = transpose(vstack((hstack((x1**2,x2**2)),hstack((y1**2,y2**2)))))\n",
"\n",
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"### prbly other transormation\n",
"plt.plot(X_transformed[t_c>0,0],X_transformed[t_c>0,1], 'ro')\n",
"plt.plot(X_transformed[t_c<0,0],X_transformed[t_c<0,1], 'bo')\n",
"plt.axis([0, 6, 0, 6])"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(40, 2)"
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"shape(X_transformed)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##Plotting the result in the transformed space. \n",
"(Lines are commented, because code does not compile, until X has been correctly transformed.)"
]
},
{
"cell_type": "code",
<<<<<<< HEAD
"execution_count": 81,
=======
"execution_count": 12,
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
<<<<<<< HEAD
"ename": "ValueError",
"evalue": "all the input array dimensions except for the concatenation axis must match exactly",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-81-6c4875b82fa6>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mwb_opt_c\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0moptimizeSVM\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_transformed\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mt_c\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;31m#plotSVM(X_transformed,t_c,wb_opt_c) ### PROVIDE THIS PLOT ###s\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m#plotSVM(X_transformed,t_c,[-2,2,-1])\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m<ipython-input-57-49e7f2f9b2de>\u001b[0m in \u001b[0;36moptimizeSVM\u001b[0;34m(X_, t_)\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m opt_result = optimize.minimize(objective, wb0, jac=jac,constraints=cons, #the optimizer\n\u001b[0;32m---> 15\u001b[0;31m method='SLSQP', options=opt)\n\u001b[0m\u001b[1;32m 16\u001b[0m \u001b[0mwb_opt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopt_result\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"x\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;31m#result of the optimization\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/Users/Maximus/anaconda/lib/python2.7/site-packages/scipy/optimize/_minimize.pyc\u001b[0m in \u001b[0;36mminimize\u001b[0;34m(fun, x0, args, method, jac, hess, hessp, bounds, constraints, tol, callback, options)\u001b[0m\n\u001b[1;32m 433\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmeth\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'slsqp'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 434\u001b[0m return _minimize_slsqp(fun, x0, args, jac, bounds,\n\u001b[0;32m--> 435\u001b[0;31m constraints, callback=callback, **options)\n\u001b[0m\u001b[1;32m 436\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mmeth\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'dogleg'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 437\u001b[0m return _minimize_dogleg(fun, x0, args, jac, hess,\n",
"\u001b[0;32m/Users/Maximus/anaconda/lib/python2.7/site-packages/scipy/optimize/slsqp.pyc\u001b[0m in \u001b[0;36m_minimize_slsqp\u001b[0;34m(func, x0, args, jac, bounds, constraints, maxiter, ftol, iprint, disp, eps, callback, **unknown_options)\u001b[0m\n\u001b[1;32m 402\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 403\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma_eq\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma_ieq\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 404\u001b[0;31m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconcatenate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mzeros\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mla\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 405\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 406\u001b[0m \u001b[0;31m# Call SLSQP\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mValueError\u001b[0m: all the input array dimensions except for the concatenation axis must match exactly"
]
=======
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x7fbc8e3a6a58>"
]
},
"metadata": {},
"output_type": "display_data"
>>>>>>> 8798cde0004e7af3cdfdeca62953d13048cd89e8
}
],
"source": [
"wb_opt_c = optimizeSVM(X_transformed,t_c)\n",
"plotSVM(X_transformed,t_c,wb_opt_c) ### PROVIDE THIS PLOT ###"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Feel free (not mandatory!) to rewrite the function plotSVM to plot the data and the separation curve, not in the transformed space (as above), but in the original space."
]
}
],
"metadata": {
"annotations": {
"author": "",
"categories": [
"intelligent-systems-1-2015"
],
"date": "2015-04-23",
"location": "Beginning of next lecture",
"parent": "IS_SS2015",
"submission_date": "2015-04-30",
"subtitle": "Exercise Sheet 2, Support Vector Machines",
"tags": [
"IntelligenSystems",
"Course"
],
"title": "Intelligent Systems 1 - Summer Semester 2015"
},
"celltoolbar": "Edit Metadata",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}