UniTO/anno3/altro_muovi/marco/svm.ipynb
2024-10-29 09:11:05 +01:00

617 lines
145 KiB
Text
Executable file

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Support Vector Machines"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.svm import SVC"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"X = np.array([[ 0.46613554, 0.92048757],\n",
" [-0.92129195, 0.06723639],\n",
" [-0.15836636, 0.00430243],\n",
" [-0.24055905, -0.87032292],\n",
" [ 0.06245105, -0.53698416],\n",
" [-0.2265037 , -0.43835751],\n",
" [-0.00480479, -0.17372081],\n",
" [-0.1525277 , -0.34399658],\n",
" [-0.27360329, 0.35339202],\n",
" [-0.77464508, -0.48715511],\n",
" [-0.58724291, 0.74419972],\n",
" [-0.97596949, -0.72172963],\n",
" [ 0.42376225, -0.72655597],\n",
" [ 0.96383922, -0.23371331],\n",
" [ 0.16264643, -0.46949742],\n",
" [-0.74294705, -0.42576417],\n",
" [ 0.05089437, -0.20522071],\n",
" [-0.19442744, 0.09617478],\n",
" [-0.97102743, 0.79663992],\n",
" [ 0.0596995 , -0.70129219],\n",
" [-0.83934851, -0.95616033],\n",
" [-0.38249705, 0.4973605 ],\n",
" [ 0.3474666 , 0.70664397],\n",
" [ 0.35871444, 0.88679345],\n",
" [-0.05914582, 0.23124686],\n",
" [-0.52156643, 0.32986941],\n",
" [-0.53579646, 0.67530208],\n",
" [ 0.13683914, -0.96158184],\n",
" [ 0.65904541, -0.12015303],\n",
" [-0.69078363, 0.5615536 ],\n",
" [ 0.47738323, -0.70919275],\n",
" [ 0.93069669, 0.44019132],\n",
" [ 0.19750088, -0.68869404],\n",
" [-0.75048675, -0.18170522],\n",
" [-0.45288395, -0.25894991],\n",
" [-0.74644547, 0.87781953],\n",
" [ 0.14620452, 0.56864508],\n",
" [ 0.25719272, -0.58405476],\n",
" [ 0.87149524, 0.01384224],\n",
" [-0.71473576, 0.31568314],\n",
" [-0.252637 , -0.67418371],\n",
" [ 0.24718308, 0.95191416],\n",
" [-0.38149953, -0.64066291],\n",
" [-0.23112698, 0.04678807],\n",
" [ 0.72631766, 0.7390158 ],\n",
" [-0.91748062, -0.15131021],\n",
" [ 0.74957917, 0.66966866],\n",
" [ 0.76771849, 0.06662777],\n",
" [-0.04233756, -0.91320835],\n",
" [ 0.63840333, 0.06277738],\n",
" [-0.78887281, -0.90311183],\n",
" [-0.73099834, -0.69587363],\n",
" [-0.50947652, -0.99144951],\n",
" [ 0.14294609, 0.5474932 ],\n",
" [ 0.4367906 , 0.31953258],\n",
" [-0.13970851, 0.81817884],\n",
" [ 0.6440873 , 0.79118775],\n",
" [ 0.41714043, -0.66672029],\n",
" [ 0.59283022, -0.71836746],\n",
" [ 0.55379696, 0.98846202],\n",
" [-0.91819517, 0.34203895],\n",
" [ 0.02020188, 0.83696694],\n",
" [ 0.6182918 , 0.04254014],\n",
" [-0.09354765, -0.30050483],\n",
" [-0.08489545, 0.06431463],\n",
" [-0.11886358, -0.68738895],\n",
" [ 0.44428375, 0.18273761],\n",
" [ 0.26486362, -0.98398013],\n",
" [ 0.13222452, 0.91495035],\n",
" [-0.11101656, 0.00541343],\n",
" [-0.07696178, -0.92720555],\n",
" [ 0.22602214, 0.56040092],\n",
" [ 0.74227542, 0.32930104],\n",
" [ 0.43524657, 0.35332933],\n",
" [-0.89277607, -0.59996171],\n",
" [-0.94836212, 0.78777302],\n",
" [ 0.1783319 , -0.2142071 ],\n",
" [-0.07832238, -0.25046584],\n",
" [ 0.17611799, -0.96927832],\n",
" [-0.95938454, -0.26504646],\n",
" [ 0.58666766, -0.94620881],\n",
" [-0.77336565, 0.46735057],\n",
" [-0.94414054, 0.39044333],\n",
" [ 0.61524645, 0.15907662],\n",
" [-0.09855302, 0.9816656 ],\n",
" [ 0.53937097, 0.34487634]])"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"y = [\"red\" if x + y > 0.3 else \"green\" for [x,y] in X]\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x1f2117ed748>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(X[:,0], X[:,1], c=y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise\n",
"\n",
"- import the support vector machine classifier from scikit-learn (the SVC class) and train a classifier for the examples above using a linear kernel;\n",
"- read the documentation to find out how to obtain the support vectors and the associated (dual) weights; use this information to analyze the learnt model: \n",
" - how many support vectors have been learnt? \n",
" - are them in the position you would have expected [[1](#note1)]? \n",
" - is there any margin error?\n",
" - is there any classification error (check it using the classifier predictions)?\n",
"- learn a new SVC model using custom C values:\n",
" - how the answers to the questions above change when you use a very high C value (e.g., 1000)?\n",
" - how the answers to the questions above change when you use a very low C value (e.g., 0.3)?\n",
"- learn a new SVC model using a rbf kernel:\n",
" - is the new kernel able to capture the linear model?\n",
" - are you surprised by the above answer? Regarless to whether you are surprised or not: why?\n",
" \n",
"<a name=\"note1\">[1]</a> If you make two plots one after the other (in the same cell), the plots will be merged into a single one. You may want to use this feature to plot the support vectors on top of the scatter plot for the dataset."
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
" decision_function_shape='ovr', degree=3, gamma='auto_deprecated',\n",
" kernel='linear', max_iter=-1, probability=False, random_state=None,\n",
" shrinking=True, tol=0.001, verbose=False)"
]
},
"execution_count": 110,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Creazione SVC\n",
"svc = SVC(kernel = 'linear')\n",
"svc.fit(X, y)"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of support vectors learnt: 17\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x1f213591408>"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"print(\"Number of support vectors learnt:\", sum(svc.n_support_))\n",
"plt.scatter(X[:,0], X[:,1], c=y)\n",
"plt.scatter(svc.support_vectors_[:,0], svc.support_vectors_[:,1], c='b')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sono nelle posizioni che mi aspettavo ma sono un numero più elevato di quello atteso"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"C'è margin error perchè i support vector sono a distanze diverse dal margine geometrico"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Classification errors: 0\n"
]
}
],
"source": [
"predicted = svc.predict(X)\n",
"errors = sum([y[i] != predicted[i] for i in range(len(y))])\n",
"print(\"Classification errors:\", errors)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# C = 1000"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"SVC(C=1000, cache_size=200, class_weight=None, coef0=0.0,\n",
" decision_function_shape='ovr', degree=3, gamma='auto_deprecated',\n",
" kernel='linear', max_iter=-1, probability=False, random_state=None,\n",
" shrinking=True, tol=0.001, verbose=False)"
]
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"svc = SVC(kernel = 'linear', C = 1000)\n",
"svc.fit(X, y)"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of support vectors learnt: 3\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x1f213384908>"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"print(\"Number of support vectors learnt:\", sum(svc.n_support_))\n",
"plt.scatter(X[:,0], X[:,1], c=y)\n",
"plt.scatter(svc.support_vectors_[:,0], svc.support_vectors_[:,1], c='b')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sono i support vector che mi aspettavo"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Non c'è margin error"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Classification errors: 0\n"
]
}
],
"source": [
"predicted = svc.predict(X)\n",
"errors = sum([y[i] != predicted[i] for i in range(len(y))])\n",
"print(\"Classification errors:\", errors)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# C = 0.3"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"SVC(C=0.3, cache_size=200, class_weight=None, coef0=0.0,\n",
" decision_function_shape='ovr', degree=3, gamma='auto_deprecated',\n",
" kernel='linear', max_iter=-1, probability=False, random_state=None,\n",
" shrinking=True, tol=0.001, verbose=False)"
]
},
"execution_count": 100,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"svc = SVC(kernel = 'linear', C = 0.3)\n",
"svc.fit(X, y)"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of support vectors learnt: 33\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x1f213543a88>"
]
},
"execution_count": 101,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"print(\"Number of support vectors learnt:\", sum(svc.n_support_))\n",
"plt.scatter(X[:,0], X[:,1], c=y)\n",
"plt.scatter(svc.support_vectors_[:,0], svc.support_vectors_[:,1], c='b')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sono molti più support vector di quelli che mi aspettavo"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"C'è un margin error molto elevato"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Classification errors: 0\n"
]
}
],
"source": [
"predicted = svc.predict(X)\n",
"errors = sum([y[i] != predicted[i] for i in range(len(y))])\n",
"print(\"Classification errors:\", errors)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Kernel = RBF"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:193: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n",
" \"avoid this warning.\", FutureWarning)\n"
]
},
{
"data": {
"text/plain": [
"SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
" decision_function_shape='ovr', degree=3, gamma='auto_deprecated',\n",
" kernel='rbf', max_iter=-1, probability=False, random_state=None,\n",
" shrinking=True, tol=0.001, verbose=False)"
]
},
"execution_count": 107,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"svc = SVC(kernel = 'rbf')\n",
"svc.fit(X, y)"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of support vectors learnt: 22\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x1f21313c508>"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"print(\"Number of support vectors learnt:\", sum(svc.n_support_))\n",
"plt.scatter(X[:,0], X[:,1], c=y)\n",
"plt.scatter(svc.support_vectors_[:,0], svc.support_vectors_[:,1], c='b')"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Classification errors: 0\n"
]
}
],
"source": [
"predicted = svc.predict(X)\n",
"errors = sum([y[i] != predicted[i] for i in range(len(y))])\n",
"print(\"Classification errors:\", errors)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Me lo aspettavo perchè le classi possono continuare ad essere separabili anche se proiettate in uno spazio vettoriale diverso"
]
}
],
"metadata": {
"anaconda-cloud": {},
"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.7.5"
}
},
"nbformat": 4,
"nbformat_minor": 1
}