{ "cells": [ { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "0MRC0e0KhQ0S" }, "source": [ "# Kernel SVM" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "LWd1UlMnhT2s" }, "source": [ "## Importing the libraries" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "YvGPUQaHhXfL" }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "K1VMqkGvhc3-" }, "source": [ "## Importing the dataset" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "M52QDmyzhh9s" }, "outputs": [], "source": [ "dataset = pd.read_csv('Social_Network_Ads.csv')\n", "X = dataset.iloc[:, :-1].values\n", "y = dataset.iloc[:, -1].values" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "YvxIPVyMhmKp" }, "source": [ "## Splitting the dataset into the Training set and Test set" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "AVzJWAXIhxoC" }, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "executionInfo": { "elapsed": 1501, "status": "ok", "timestamp": 1588268004246, "user": { "displayName": "Hadelin de Ponteves", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GhEuXdT7eQweUmRPW8_laJuPggSK6hfvpl5a6WBaA=s64", "userId": "15047218817161520419" }, "user_tz": -240 }, "id": "P3nS3-6r1i2B", "outputId": "000cce2c-0721-441e-d7b6-36a07ad0ed20" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 44 39000]\n", " [ 32 120000]\n", " [ 38 50000]\n", " [ 32 135000]\n", " [ 52 21000]\n", " [ 53 104000]\n", " [ 39 42000]\n", " [ 38 61000]\n", " [ 36 50000]\n", " [ 36 63000]\n", " [ 35 25000]\n", " [ 35 50000]\n", " [ 42 73000]\n", " [ 47 49000]\n", " [ 59 29000]\n", " [ 49 65000]\n", " [ 45 131000]\n", " [ 31 89000]\n", " [ 46 82000]\n", " [ 47 51000]\n", " [ 26 15000]\n", " [ 60 102000]\n", " [ 38 112000]\n", " [ 40 107000]\n", " [ 42 53000]\n", " [ 35 59000]\n", " [ 48 41000]\n", " [ 48 134000]\n", " [ 38 113000]\n", " [ 29 148000]\n", " [ 26 15000]\n", " [ 60 42000]\n", " [ 24 19000]\n", " [ 42 149000]\n", " [ 46 96000]\n", " [ 28 59000]\n", " [ 39 96000]\n", " [ 28 89000]\n", " [ 41 72000]\n", " [ 45 26000]\n", " [ 33 69000]\n", " [ 20 82000]\n", " [ 31 74000]\n", " [ 42 80000]\n", " [ 35 72000]\n", " [ 33 149000]\n", " [ 40 71000]\n", " [ 51 146000]\n", " [ 46 79000]\n", " [ 35 75000]\n", " [ 38 51000]\n", " [ 36 75000]\n", " [ 37 78000]\n", " [ 38 61000]\n", " [ 60 108000]\n", " [ 20 82000]\n", " [ 57 74000]\n", " [ 42 65000]\n", " [ 26 80000]\n", " [ 46 117000]\n", " [ 35 61000]\n", " [ 21 68000]\n", " [ 28 44000]\n", " [ 41 87000]\n", " [ 37 33000]\n", " [ 27 90000]\n", " [ 39 42000]\n", " [ 28 123000]\n", " [ 31 118000]\n", " [ 25 87000]\n", " [ 35 71000]\n", " [ 37 70000]\n", " [ 35 39000]\n", " [ 47 23000]\n", " [ 35 147000]\n", " [ 48 138000]\n", " [ 26 86000]\n", " [ 25 79000]\n", " [ 52 138000]\n", " [ 51 23000]\n", " [ 35 60000]\n", " [ 33 113000]\n", " [ 30 107000]\n", " [ 48 33000]\n", " [ 41 80000]\n", " [ 48 96000]\n", " [ 31 18000]\n", " [ 31 71000]\n", " [ 43 129000]\n", " [ 59 76000]\n", " [ 18 44000]\n", " [ 36 118000]\n", " [ 42 90000]\n", " [ 47 30000]\n", " [ 26 43000]\n", " [ 40 78000]\n", " [ 46 59000]\n", " [ 59 42000]\n", " [ 46 74000]\n", " [ 35 91000]\n", " [ 28 59000]\n", " [ 40 57000]\n", " [ 59 143000]\n", " [ 57 26000]\n", " [ 52 38000]\n", " [ 47 113000]\n", " [ 53 143000]\n", " [ 35 27000]\n", " [ 58 101000]\n", " [ 45 45000]\n", " [ 23 82000]\n", " [ 46 23000]\n", " [ 42 65000]\n", " [ 28 84000]\n", " [ 38 59000]\n", " [ 26 84000]\n", " [ 29 28000]\n", " [ 37 71000]\n", " [ 22 55000]\n", " [ 48 35000]\n", " [ 49 28000]\n", " [ 38 65000]\n", " [ 27 17000]\n", " [ 46 28000]\n", " [ 48 141000]\n", " [ 26 17000]\n", " [ 35 97000]\n", " [ 39 59000]\n", " [ 24 27000]\n", " [ 32 18000]\n", " [ 46 88000]\n", " [ 35 58000]\n", " [ 56 60000]\n", " [ 47 34000]\n", " [ 40 72000]\n", " [ 32 100000]\n", " [ 19 21000]\n", " [ 25 90000]\n", " [ 35 88000]\n", " [ 28 32000]\n", " [ 50 20000]\n", " [ 40 59000]\n", " [ 50 44000]\n", " [ 35 72000]\n", " [ 40 142000]\n", " [ 46 32000]\n", " [ 39 71000]\n", " [ 20 74000]\n", " [ 29 75000]\n", " [ 31 76000]\n", " [ 47 25000]\n", " [ 40 61000]\n", " [ 34 112000]\n", " [ 38 80000]\n", " [ 42 75000]\n", " [ 47 47000]\n", " [ 39 75000]\n", " [ 19 25000]\n", " [ 37 80000]\n", " [ 36 60000]\n", " [ 41 52000]\n", " [ 36 125000]\n", " [ 48 29000]\n", " [ 36 126000]\n", " [ 51 134000]\n", " [ 27 57000]\n", " [ 38 71000]\n", " [ 39 61000]\n", " [ 22 27000]\n", " [ 33 60000]\n", " [ 48 74000]\n", " [ 58 23000]\n", " [ 53 72000]\n", " [ 32 117000]\n", " [ 54 70000]\n", " [ 30 80000]\n", " [ 58 95000]\n", " [ 26 52000]\n", " [ 45 79000]\n", " [ 24 55000]\n", " [ 40 75000]\n", " [ 33 28000]\n", " [ 44 139000]\n", " [ 22 18000]\n", " [ 33 51000]\n", " [ 43 133000]\n", " [ 24 32000]\n", " [ 46 22000]\n", " [ 35 55000]\n", " [ 54 104000]\n", " [ 48 119000]\n", " [ 35 53000]\n", " [ 37 144000]\n", " [ 23 66000]\n", " [ 37 137000]\n", " [ 31 58000]\n", " [ 33 41000]\n", " [ 45 22000]\n", " [ 30 15000]\n", " [ 19 19000]\n", " [ 49 74000]\n", " [ 39 122000]\n", " [ 35 73000]\n", " [ 39 71000]\n", " [ 24 23000]\n", " [ 41 72000]\n", " [ 29 83000]\n", " [ 54 26000]\n", " [ 35 44000]\n", " [ 37 75000]\n", " [ 29 47000]\n", " [ 31 68000]\n", " [ 42 54000]\n", " [ 30 135000]\n", " [ 52 114000]\n", " [ 50 36000]\n", " [ 56 133000]\n", " [ 29 61000]\n", " [ 30 89000]\n", " [ 26 16000]\n", " [ 33 31000]\n", " [ 41 72000]\n", " [ 36 33000]\n", " [ 55 125000]\n", " [ 48 131000]\n", " [ 41 71000]\n", " [ 30 62000]\n", " [ 37 72000]\n", " [ 41 63000]\n", " [ 58 47000]\n", " [ 30 116000]\n", " [ 20 49000]\n", " [ 37 74000]\n", " [ 41 59000]\n", " [ 49 89000]\n", " [ 28 79000]\n", " [ 53 82000]\n", " [ 40 57000]\n", " [ 60 34000]\n", " [ 35 108000]\n", " [ 21 72000]\n", " [ 38 71000]\n", " [ 39 106000]\n", " [ 37 57000]\n", " [ 26 72000]\n", " [ 35 23000]\n", " [ 54 108000]\n", " [ 30 17000]\n", " [ 39 134000]\n", " [ 29 43000]\n", " [ 33 43000]\n", " [ 35 38000]\n", " [ 41 45000]\n", " [ 41 72000]\n", " [ 39 134000]\n", " [ 27 137000]\n", " [ 21 16000]\n", " [ 26 32000]\n", " [ 31 66000]\n", " [ 39 73000]\n", " [ 41 79000]\n", " [ 47 50000]\n", " [ 41 30000]\n", " [ 37 93000]\n", " [ 60 46000]\n", " [ 25 22000]\n", " [ 28 37000]\n", " [ 38 55000]\n", " [ 36 54000]\n", " [ 20 36000]\n", " [ 56 104000]\n", " [ 40 57000]\n", " [ 42 108000]\n", " [ 20 23000]\n", " [ 40 65000]\n", " [ 47 20000]\n", " [ 18 86000]\n", " [ 35 79000]\n", " [ 57 33000]\n", " [ 34 72000]\n", " [ 49 39000]\n", " [ 27 31000]\n", " [ 19 70000]\n", " [ 39 79000]\n", " [ 26 81000]\n", " [ 25 80000]\n", " [ 28 85000]\n", " [ 55 39000]\n", " [ 50 88000]\n", " [ 49 88000]\n", " [ 52 150000]\n", " [ 35 65000]\n", " [ 42 54000]\n", " [ 34 43000]\n", " [ 37 52000]\n", " [ 48 30000]\n", " [ 29 43000]\n", " [ 36 52000]\n", " [ 27 54000]\n", " [ 26 118000]]\n" ] } ], "source": [ "print(X_train)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 171 }, "colab_type": "code", "executionInfo": { "elapsed": 1496, "status": "ok", "timestamp": 1588268004246, "user": { "displayName": "Hadelin de Ponteves", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GhEuXdT7eQweUmRPW8_laJuPggSK6hfvpl5a6WBaA=s64", "userId": "15047218817161520419" }, "user_tz": -240 }, "id": "8dpDLojm1mVG", "outputId": "f889b621-535f-4bbf-f476-eda5e4221313" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 1\n", " 0 0 1 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 1\n", " 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0\n", " 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0\n", " 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 0 1 0 0\n", " 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0\n", " 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0\n", " 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1\n", " 0 0 0 0]\n" ] } ], "source": [ "print(y_train)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "executionInfo": { "elapsed": 1492, "status": "ok", "timestamp": 1588268004246, "user": { "displayName": "Hadelin de Ponteves", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GhEuXdT7eQweUmRPW8_laJuPggSK6hfvpl5a6WBaA=s64", "userId": "15047218817161520419" }, "user_tz": -240 }, "id": "qbb7i0DH1qui", "outputId": "a3f11154-8674-4902-ca81-e296d2a6fca9" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 30 87000]\n", " [ 38 50000]\n", " [ 35 75000]\n", " [ 30 79000]\n", " [ 35 50000]\n", " [ 27 20000]\n", " [ 31 15000]\n", " [ 36 144000]\n", " [ 18 68000]\n", " [ 47 43000]\n", " [ 30 49000]\n", " [ 28 55000]\n", " [ 37 55000]\n", " [ 39 77000]\n", " [ 20 86000]\n", " [ 32 117000]\n", " [ 37 77000]\n", " [ 19 85000]\n", " [ 55 130000]\n", " [ 35 22000]\n", " [ 35 47000]\n", " [ 47 144000]\n", " [ 41 51000]\n", " [ 47 105000]\n", " [ 23 28000]\n", " [ 49 141000]\n", " [ 28 87000]\n", " [ 29 80000]\n", " [ 37 62000]\n", " [ 32 86000]\n", " [ 21 88000]\n", " [ 37 79000]\n", " [ 57 60000]\n", " [ 37 53000]\n", " [ 24 58000]\n", " [ 18 52000]\n", " [ 22 81000]\n", " [ 34 43000]\n", " [ 31 34000]\n", " [ 49 36000]\n", " [ 27 88000]\n", " [ 41 52000]\n", " [ 27 84000]\n", " [ 35 20000]\n", " [ 43 112000]\n", " [ 27 58000]\n", " [ 37 80000]\n", " [ 52 90000]\n", " [ 26 30000]\n", " [ 49 86000]\n", " [ 57 122000]\n", " [ 34 25000]\n", " [ 35 57000]\n", " [ 34 115000]\n", " [ 59 88000]\n", " [ 45 32000]\n", " [ 29 83000]\n", " [ 26 80000]\n", " [ 49 28000]\n", " [ 23 20000]\n", " [ 32 18000]\n", " [ 60 42000]\n", " [ 19 76000]\n", " [ 36 99000]\n", " [ 19 26000]\n", " [ 60 83000]\n", " [ 24 89000]\n", " [ 27 58000]\n", " [ 40 47000]\n", " [ 42 70000]\n", " [ 32 150000]\n", " [ 35 77000]\n", " [ 22 63000]\n", " [ 45 22000]\n", " [ 27 89000]\n", " [ 18 82000]\n", " [ 42 79000]\n", " [ 40 60000]\n", " [ 53 34000]\n", " [ 47 107000]\n", " [ 58 144000]\n", " [ 59 83000]\n", " [ 24 55000]\n", " [ 26 35000]\n", " [ 58 38000]\n", " [ 42 80000]\n", " [ 40 75000]\n", " [ 59 130000]\n", " [ 46 41000]\n", " [ 41 60000]\n", " [ 42 64000]\n", " [ 37 146000]\n", " [ 23 48000]\n", " [ 25 33000]\n", " [ 24 84000]\n", " [ 27 96000]\n", " [ 23 63000]\n", " [ 48 33000]\n", " [ 48 90000]\n", " [ 42 104000]]\n" ] } ], "source": [ "print(X_test)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 68 }, "colab_type": "code", "executionInfo": { "elapsed": 1489, "status": "ok", "timestamp": 1588268004247, "user": { "displayName": "Hadelin de Ponteves", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GhEuXdT7eQweUmRPW8_laJuPggSK6hfvpl5a6WBaA=s64", "userId": "15047218817161520419" }, "user_tz": -240 }, "id": "kj1hnFAR1s5w", "outputId": "f636a0fb-dc1f-43b6-eda0-3e0b4d2f6053" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0\n", " 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 1\n", " 0 0 0 0 1 1 1 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 1 1]\n" ] } ], "source": [ "print(y_test)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "kW3c7UYih0hT" }, "source": [ "## Feature Scaling" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", "id": "9fQlDPKCh8sc" }, "outputs": [], "source": [ "from sklearn.preprocessing import StandardScaler\n", "sc = StandardScaler()\n", "X_train = sc.fit_transform(X_train)\n", "X_test = sc.transform(X_test)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "executionInfo": { "elapsed": 1875, "status": "ok", "timestamp": 1588268004638, "user": { "displayName": "Hadelin de Ponteves", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GhEuXdT7eQweUmRPW8_laJuPggSK6hfvpl5a6WBaA=s64", "userId": "15047218817161520419" }, "user_tz": -240 }, "id": "syrnD1Op2BSR", "outputId": "b7131b3c-5c78-43c3-cb0d-5bf76726b6fb" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0.58164944 -0.88670699]\n", " [-0.60673761 1.46173768]\n", " [-0.01254409 -0.5677824 ]\n", " [-0.60673761 1.89663484]\n", " [ 1.37390747 -1.40858358]\n", " [ 1.47293972 0.99784738]\n", " [ 0.08648817 -0.79972756]\n", " [-0.01254409 -0.24885782]\n", " [-0.21060859 -0.5677824 ]\n", " [-0.21060859 -0.19087153]\n", " [-0.30964085 -1.29261101]\n", " [-0.30964085 -0.5677824 ]\n", " [ 0.38358493 0.09905991]\n", " [ 0.8787462 -0.59677555]\n", " [ 2.06713324 -1.17663843]\n", " [ 1.07681071 -0.13288524]\n", " [ 0.68068169 1.78066227]\n", " [-0.70576986 0.56295021]\n", " [ 0.77971394 0.35999821]\n", " [ 0.8787462 -0.53878926]\n", " [-1.20093113 -1.58254245]\n", " [ 2.1661655 0.93986109]\n", " [-0.01254409 1.22979253]\n", " [ 0.18552042 1.08482681]\n", " [ 0.38358493 -0.48080297]\n", " [-0.30964085 -0.30684411]\n", " [ 0.97777845 -0.8287207 ]\n", " [ 0.97777845 1.8676417 ]\n", " [-0.01254409 1.25878567]\n", " [-0.90383437 2.27354572]\n", " [-1.20093113 -1.58254245]\n", " [ 2.1661655 -0.79972756]\n", " [-1.39899564 -1.46656987]\n", " [ 0.38358493 2.30253886]\n", " [ 0.77971394 0.76590222]\n", " [-1.00286662 -0.30684411]\n", " [ 0.08648817 0.76590222]\n", " [-1.00286662 0.56295021]\n", " [ 0.28455268 0.07006676]\n", " [ 0.68068169 -1.26361786]\n", " [-0.50770535 -0.01691267]\n", " [-1.79512465 0.35999821]\n", " [-0.70576986 0.12805305]\n", " [ 0.38358493 0.30201192]\n", " [-0.30964085 0.07006676]\n", " [-0.50770535 2.30253886]\n", " [ 0.18552042 0.04107362]\n", " [ 1.27487521 2.21555943]\n", " [ 0.77971394 0.27301877]\n", " [-0.30964085 0.1570462 ]\n", " [-0.01254409 -0.53878926]\n", " [-0.21060859 0.1570462 ]\n", " [-0.11157634 0.24402563]\n", " [-0.01254409 -0.24885782]\n", " [ 2.1661655 1.11381995]\n", " [-1.79512465 0.35999821]\n", " [ 1.86906873 0.12805305]\n", " [ 0.38358493 -0.13288524]\n", " [-1.20093113 0.30201192]\n", " [ 0.77971394 1.37475825]\n", " [-0.30964085 -0.24885782]\n", " [-1.6960924 -0.04590581]\n", " [-1.00286662 -0.74174127]\n", " [ 0.28455268 0.50496393]\n", " [-0.11157634 -1.06066585]\n", " [-1.10189888 0.59194336]\n", " [ 0.08648817 -0.79972756]\n", " [-1.00286662 1.54871711]\n", " [-0.70576986 1.40375139]\n", " [-1.29996338 0.50496393]\n", " [-0.30964085 0.04107362]\n", " [-0.11157634 0.01208048]\n", " [-0.30964085 -0.88670699]\n", " [ 0.8787462 -1.3505973 ]\n", " [-0.30964085 2.24455257]\n", " [ 0.97777845 1.98361427]\n", " [-1.20093113 0.47597078]\n", " [-1.29996338 0.27301877]\n", " [ 1.37390747 1.98361427]\n", " [ 1.27487521 -1.3505973 ]\n", " [-0.30964085 -0.27785096]\n", " [-0.50770535 1.25878567]\n", " [-0.80480212 1.08482681]\n", " [ 0.97777845 -1.06066585]\n", " [ 0.28455268 0.30201192]\n", " [ 0.97777845 0.76590222]\n", " [-0.70576986 -1.49556302]\n", " [-0.70576986 0.04107362]\n", " [ 0.48261718 1.72267598]\n", " [ 2.06713324 0.18603934]\n", " [-1.99318916 -0.74174127]\n", " [-0.21060859 1.40375139]\n", " [ 0.38358493 0.59194336]\n", " [ 0.8787462 -1.14764529]\n", " [-1.20093113 -0.77073441]\n", " [ 0.18552042 0.24402563]\n", " [ 0.77971394 -0.30684411]\n", " [ 2.06713324 -0.79972756]\n", " [ 0.77971394 0.12805305]\n", " [-0.30964085 0.6209365 ]\n", " [-1.00286662 -0.30684411]\n", " [ 0.18552042 -0.3648304 ]\n", " [ 2.06713324 2.12857999]\n", " [ 1.86906873 -1.26361786]\n", " [ 1.37390747 -0.91570013]\n", " [ 0.8787462 1.25878567]\n", " [ 1.47293972 2.12857999]\n", " [-0.30964085 -1.23462472]\n", " [ 1.96810099 0.91086794]\n", " [ 0.68068169 -0.71274813]\n", " [-1.49802789 0.35999821]\n", " [ 0.77971394 -1.3505973 ]\n", " [ 0.38358493 -0.13288524]\n", " [-1.00286662 0.41798449]\n", " [-0.01254409 -0.30684411]\n", " [-1.20093113 0.41798449]\n", " [-0.90383437 -1.20563157]\n", " [-0.11157634 0.04107362]\n", " [-1.59706014 -0.42281668]\n", " [ 0.97777845 -1.00267957]\n", " [ 1.07681071 -1.20563157]\n", " [-0.01254409 -0.13288524]\n", " [-1.10189888 -1.52455616]\n", " [ 0.77971394 -1.20563157]\n", " [ 0.97777845 2.07059371]\n", " [-1.20093113 -1.52455616]\n", " [-0.30964085 0.79489537]\n", " [ 0.08648817 -0.30684411]\n", " [-1.39899564 -1.23462472]\n", " [-0.60673761 -1.49556302]\n", " [ 0.77971394 0.53395707]\n", " [-0.30964085 -0.33583725]\n", " [ 1.77003648 -0.27785096]\n", " [ 0.8787462 -1.03167271]\n", " [ 0.18552042 0.07006676]\n", " [-0.60673761 0.8818748 ]\n", " [-1.89415691 -1.40858358]\n", " [-1.29996338 0.59194336]\n", " [-0.30964085 0.53395707]\n", " [-1.00286662 -1.089659 ]\n", " [ 1.17584296 -1.43757673]\n", " [ 0.18552042 -0.30684411]\n", " [ 1.17584296 -0.74174127]\n", " [-0.30964085 0.07006676]\n", " [ 0.18552042 2.09958685]\n", " [ 0.77971394 -1.089659 ]\n", " [ 0.08648817 0.04107362]\n", " [-1.79512465 0.12805305]\n", " [-0.90383437 0.1570462 ]\n", " [-0.70576986 0.18603934]\n", " [ 0.8787462 -1.29261101]\n", " [ 0.18552042 -0.24885782]\n", " [-0.4086731 1.22979253]\n", " [-0.01254409 0.30201192]\n", " [ 0.38358493 0.1570462 ]\n", " [ 0.8787462 -0.65476184]\n", " [ 0.08648817 0.1570462 ]\n", " [-1.89415691 -1.29261101]\n", " [-0.11157634 0.30201192]\n", " [-0.21060859 -0.27785096]\n", " [ 0.28455268 -0.50979612]\n", " [-0.21060859 1.6067034 ]\n", " [ 0.97777845 -1.17663843]\n", " [-0.21060859 1.63569655]\n", " [ 1.27487521 1.8676417 ]\n", " [-1.10189888 -0.3648304 ]\n", " [-0.01254409 0.04107362]\n", " [ 0.08648817 -0.24885782]\n", " [-1.59706014 -1.23462472]\n", " [-0.50770535 -0.27785096]\n", " [ 0.97777845 0.12805305]\n", " [ 1.96810099 -1.3505973 ]\n", " [ 1.47293972 0.07006676]\n", " [-0.60673761 1.37475825]\n", " [ 1.57197197 0.01208048]\n", " [-0.80480212 0.30201192]\n", " [ 1.96810099 0.73690908]\n", " [-1.20093113 -0.50979612]\n", " [ 0.68068169 0.27301877]\n", " [-1.39899564 -0.42281668]\n", " [ 0.18552042 0.1570462 ]\n", " [-0.50770535 -1.20563157]\n", " [ 0.58164944 2.01260742]\n", " [-1.59706014 -1.49556302]\n", " [-0.50770535 -0.53878926]\n", " [ 0.48261718 1.83864855]\n", " [-1.39899564 -1.089659 ]\n", " [ 0.77971394 -1.37959044]\n", " [-0.30964085 -0.42281668]\n", " [ 1.57197197 0.99784738]\n", " [ 0.97777845 1.43274454]\n", " [-0.30964085 -0.48080297]\n", " [-0.11157634 2.15757314]\n", " [-1.49802789 -0.1038921 ]\n", " [-0.11157634 1.95462113]\n", " [-0.70576986 -0.33583725]\n", " [-0.50770535 -0.8287207 ]\n", " [ 0.68068169 -1.37959044]\n", " [-0.80480212 -1.58254245]\n", " [-1.89415691 -1.46656987]\n", " [ 1.07681071 0.12805305]\n", " [ 0.08648817 1.51972397]\n", " [-0.30964085 0.09905991]\n", " [ 0.08648817 0.04107362]\n", " [-1.39899564 -1.3505973 ]\n", " [ 0.28455268 0.07006676]\n", " [-0.90383437 0.38899135]\n", " [ 1.57197197 -1.26361786]\n", " [-0.30964085 -0.74174127]\n", " [-0.11157634 0.1570462 ]\n", " [-0.90383437 -0.65476184]\n", " [-0.70576986 -0.04590581]\n", " [ 0.38358493 -0.45180983]\n", " [-0.80480212 1.89663484]\n", " [ 1.37390747 1.28777882]\n", " [ 1.17584296 -0.97368642]\n", " [ 1.77003648 1.83864855]\n", " [-0.90383437 -0.24885782]\n", " [-0.80480212 0.56295021]\n", " [-1.20093113 -1.5535493 ]\n", " [-0.50770535 -1.11865214]\n", " [ 0.28455268 0.07006676]\n", " [-0.21060859 -1.06066585]\n", " [ 1.67100423 1.6067034 ]\n", " [ 0.97777845 1.78066227]\n", " [ 0.28455268 0.04107362]\n", " [-0.80480212 -0.21986468]\n", " [-0.11157634 0.07006676]\n", " [ 0.28455268 -0.19087153]\n", " [ 1.96810099 -0.65476184]\n", " [-0.80480212 1.3457651 ]\n", " [-1.79512465 -0.59677555]\n", " [-0.11157634 0.12805305]\n", " [ 0.28455268 -0.30684411]\n", " [ 1.07681071 0.56295021]\n", " [-1.00286662 0.27301877]\n", " [ 1.47293972 0.35999821]\n", " [ 0.18552042 -0.3648304 ]\n", " [ 2.1661655 -1.03167271]\n", " [-0.30964085 1.11381995]\n", " [-1.6960924 0.07006676]\n", " [-0.01254409 0.04107362]\n", " [ 0.08648817 1.05583366]\n", " [-0.11157634 -0.3648304 ]\n", " [-1.20093113 0.07006676]\n", " [-0.30964085 -1.3505973 ]\n", " [ 1.57197197 1.11381995]\n", " [-0.80480212 -1.52455616]\n", " [ 0.08648817 1.8676417 ]\n", " [-0.90383437 -0.77073441]\n", " [-0.50770535 -0.77073441]\n", " [-0.30964085 -0.91570013]\n", " [ 0.28455268 -0.71274813]\n", " [ 0.28455268 0.07006676]\n", " [ 0.08648817 1.8676417 ]\n", " [-1.10189888 1.95462113]\n", " [-1.6960924 -1.5535493 ]\n", " [-1.20093113 -1.089659 ]\n", " [-0.70576986 -0.1038921 ]\n", " [ 0.08648817 0.09905991]\n", " [ 0.28455268 0.27301877]\n", " [ 0.8787462 -0.5677824 ]\n", " [ 0.28455268 -1.14764529]\n", " [-0.11157634 0.67892279]\n", " [ 2.1661655 -0.68375498]\n", " [-1.29996338 -1.37959044]\n", " [-1.00286662 -0.94469328]\n", " [-0.01254409 -0.42281668]\n", " [-0.21060859 -0.45180983]\n", " [-1.79512465 -0.97368642]\n", " [ 1.77003648 0.99784738]\n", " [ 0.18552042 -0.3648304 ]\n", " [ 0.38358493 1.11381995]\n", " [-1.79512465 -1.3505973 ]\n", " [ 0.18552042 -0.13288524]\n", " [ 0.8787462 -1.43757673]\n", " [-1.99318916 0.47597078]\n", " [-0.30964085 0.27301877]\n", " [ 1.86906873 -1.06066585]\n", " [-0.4086731 0.07006676]\n", " [ 1.07681071 -0.88670699]\n", " [-1.10189888 -1.11865214]\n", " [-1.89415691 0.01208048]\n", " [ 0.08648817 0.27301877]\n", " [-1.20093113 0.33100506]\n", " [-1.29996338 0.30201192]\n", " [-1.00286662 0.44697764]\n", " [ 1.67100423 -0.88670699]\n", " [ 1.17584296 0.53395707]\n", " [ 1.07681071 0.53395707]\n", " [ 1.37390747 2.331532 ]\n", " [-0.30964085 -0.13288524]\n", " [ 0.38358493 -0.45180983]\n", " [-0.4086731 -0.77073441]\n", " [-0.11157634 -0.50979612]\n", " [ 0.97777845 -1.14764529]\n", " [-0.90383437 -0.77073441]\n", " [-0.21060859 -0.50979612]\n", " [-1.10189888 -0.45180983]\n", " [-1.20093113 1.40375139]]\n" ] } ], "source": [ "print(X_train)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "executionInfo": { "elapsed": 1871, "status": "ok", "timestamp": 1588268004638, "user": { "displayName": "Hadelin de Ponteves", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GhEuXdT7eQweUmRPW8_laJuPggSK6hfvpl5a6WBaA=s64", "userId": "15047218817161520419" }, "user_tz": -240 }, "id": "JUd6iBRp2C3L", "outputId": "d5c1422d-0160-42ee-d242-7600b7897307" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[-0.80480212 0.50496393]\n", " [-0.01254409 -0.5677824 ]\n", " [-0.30964085 0.1570462 ]\n", " [-0.80480212 0.27301877]\n", " [-0.30964085 -0.5677824 ]\n", " [-1.10189888 -1.43757673]\n", " [-0.70576986 -1.58254245]\n", " [-0.21060859 2.15757314]\n", " [-1.99318916 -0.04590581]\n", " [ 0.8787462 -0.77073441]\n", " [-0.80480212 -0.59677555]\n", " [-1.00286662 -0.42281668]\n", " [-0.11157634 -0.42281668]\n", " [ 0.08648817 0.21503249]\n", " [-1.79512465 0.47597078]\n", " [-0.60673761 1.37475825]\n", " [-0.11157634 0.21503249]\n", " [-1.89415691 0.44697764]\n", " [ 1.67100423 1.75166912]\n", " [-0.30964085 -1.37959044]\n", " [-0.30964085 -0.65476184]\n", " [ 0.8787462 2.15757314]\n", " [ 0.28455268 -0.53878926]\n", " [ 0.8787462 1.02684052]\n", " [-1.49802789 -1.20563157]\n", " [ 1.07681071 2.07059371]\n", " [-1.00286662 0.50496393]\n", " [-0.90383437 0.30201192]\n", " [-0.11157634 -0.21986468]\n", " [-0.60673761 0.47597078]\n", " [-1.6960924 0.53395707]\n", " [-0.11157634 0.27301877]\n", " [ 1.86906873 -0.27785096]\n", " [-0.11157634 -0.48080297]\n", " [-1.39899564 -0.33583725]\n", " [-1.99318916 -0.50979612]\n", " [-1.59706014 0.33100506]\n", " [-0.4086731 -0.77073441]\n", " [-0.70576986 -1.03167271]\n", " [ 1.07681071 -0.97368642]\n", " [-1.10189888 0.53395707]\n", " [ 0.28455268 -0.50979612]\n", " [-1.10189888 0.41798449]\n", " [-0.30964085 -1.43757673]\n", " [ 0.48261718 1.22979253]\n", " [-1.10189888 -0.33583725]\n", " [-0.11157634 0.30201192]\n", " [ 1.37390747 0.59194336]\n", " [-1.20093113 -1.14764529]\n", " [ 1.07681071 0.47597078]\n", " [ 1.86906873 1.51972397]\n", " [-0.4086731 -1.29261101]\n", " [-0.30964085 -0.3648304 ]\n", " [-0.4086731 1.31677196]\n", " [ 2.06713324 0.53395707]\n", " [ 0.68068169 -1.089659 ]\n", " [-0.90383437 0.38899135]\n", " [-1.20093113 0.30201192]\n", " [ 1.07681071 -1.20563157]\n", " [-1.49802789 -1.43757673]\n", " [-0.60673761 -1.49556302]\n", " [ 2.1661655 -0.79972756]\n", " [-1.89415691 0.18603934]\n", " [-0.21060859 0.85288166]\n", " [-1.89415691 -1.26361786]\n", " [ 2.1661655 0.38899135]\n", " [-1.39899564 0.56295021]\n", " [-1.10189888 -0.33583725]\n", " [ 0.18552042 -0.65476184]\n", " [ 0.38358493 0.01208048]\n", " [-0.60673761 2.331532 ]\n", " [-0.30964085 0.21503249]\n", " [-1.59706014 -0.19087153]\n", " [ 0.68068169 -1.37959044]\n", " [-1.10189888 0.56295021]\n", " [-1.99318916 0.35999821]\n", " [ 0.38358493 0.27301877]\n", " [ 0.18552042 -0.27785096]\n", " [ 1.47293972 -1.03167271]\n", " [ 0.8787462 1.08482681]\n", " [ 1.96810099 2.15757314]\n", " [ 2.06713324 0.38899135]\n", " [-1.39899564 -0.42281668]\n", " [-1.20093113 -1.00267957]\n", " [ 1.96810099 -0.91570013]\n", " [ 0.38358493 0.30201192]\n", " [ 0.18552042 0.1570462 ]\n", " [ 2.06713324 1.75166912]\n", " [ 0.77971394 -0.8287207 ]\n", " [ 0.28455268 -0.27785096]\n", " [ 0.38358493 -0.16187839]\n", " [-0.11157634 2.21555943]\n", " [-1.49802789 -0.62576869]\n", " [-1.29996338 -1.06066585]\n", " [-1.39899564 0.41798449]\n", " [-1.10189888 0.76590222]\n", " [-1.49802789 -0.19087153]\n", " [ 0.97777845 -1.06066585]\n", " [ 0.97777845 0.59194336]\n", " [ 0.38358493 0.99784738]]\n" ] } ], "source": [ "print(X_test)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "bb6jCOCQiAmP" }, "source": [ "## Training the Kernel SVM model on the Training set" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 86 }, "colab_type": "code", "executionInfo": { "elapsed": 1868, "status": "ok", "timestamp": 1588268004639, "user": { "displayName": "Hadelin de Ponteves", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GhEuXdT7eQweUmRPW8_laJuPggSK6hfvpl5a6WBaA=s64", "userId": "15047218817161520419" }, "user_tz": -240 }, "id": "e0pFVAmciHQs", "outputId": "4dcb0795-fcfa-4753-c3a4-13c10d43015a" }, "outputs": [ { "data": { "text/plain": [ "SVC(C=1.0, break_ties=False, cache_size=200, class_weight=None, coef0=0.0,\n", " decision_function_shape='ovr', degree=3, gamma='scale', kernel='rbf',\n", " max_iter=-1, probability=False, random_state=0, shrinking=True, tol=0.001,\n", " verbose=False)" ] }, "execution_count": 11, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "from sklearn.svm import SVC\n", "classifier = SVC(kernel = 'rbf', random_state = 0)\n", "classifier.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "yyxW5b395mR2" }, "source": [ "## Predicting a new result" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 34 }, "colab_type": "code", "executionInfo": { "elapsed": 1864, "status": "ok", "timestamp": 1588268004639, "user": { "displayName": "Hadelin de Ponteves", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GhEuXdT7eQweUmRPW8_laJuPggSK6hfvpl5a6WBaA=s64", "userId": "15047218817161520419" }, "user_tz": -240 }, "id": "f8YOXsQy58rP", "outputId": "6525f27b-9adf-48a6-cea4-cb15972e928d" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0]\n" ] } ], "source": [ "print(classifier.predict(sc.transform([[30,87000]])))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "vKYVQH-l5NpE" }, "source": [ "## Predicting the Test set results" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "colab_type": "code", "executionInfo": { "elapsed": 1861, "status": "ok", "timestamp": 1588268004640, "user": { "displayName": "Hadelin de Ponteves", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GhEuXdT7eQweUmRPW8_laJuPggSK6hfvpl5a6WBaA=s64", "userId": "15047218817161520419" }, "user_tz": -240 }, "id": "p6VMTb2O4hwM", "outputId": "ec76af11-3625-4b2a-c1da-3bd7e77e8ade" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [1 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [1 0]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 1]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [1 1]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [1 0]\n", " [1 1]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [1 1]\n", " [1 1]\n", " [1 0]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [0 1]\n", " [0 0]\n", " [1 1]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [1 1]\n", " [0 0]\n", " [0 0]\n", " [0 0]\n", " [0 1]\n", " [0 0]\n", " [1 1]\n", " [1 1]\n", " [1 1]]\n" ] } ], "source": [ "y_pred = classifier.predict(X_test)\n", "print(np.concatenate((y_pred.reshape(len(y_pred),1), y_test.reshape(len(y_test),1)),1))" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "h4Hwj34ziWQW" }, "source": [ "## Making the Confusion Matrix" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 68 }, "colab_type": "code", "executionInfo": { "elapsed": 1858, "status": "ok", "timestamp": 1588268004640, "user": { "displayName": "Hadelin de Ponteves", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GhEuXdT7eQweUmRPW8_laJuPggSK6hfvpl5a6WBaA=s64", "userId": "15047218817161520419" }, "user_tz": -240 }, "id": "D6bpZwUiiXic", "outputId": "964dd5af-7158-455f-eba2-c205e1f05a19" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[64 4]\n", " [ 3 29]]\n" ] }, { "data": { "text/plain": [ "0.93" ] }, "execution_count": 14, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "from sklearn.metrics import confusion_matrix, accuracy_score\n", "cm = confusion_matrix(y_test, y_pred)\n", "print(cm)\n", "accuracy_score(y_test, y_pred)" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "6OMC_P0diaoD" }, "source": [ "## Visualising the Training set results" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 349 }, "colab_type": "code", "executionInfo": { "elapsed": 326556, "status": "ok", "timestamp": 1588268329342, "user": { "displayName": "Hadelin de Ponteves", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GhEuXdT7eQweUmRPW8_laJuPggSK6hfvpl5a6WBaA=s64", "userId": "15047218817161520419" }, "user_tz": -240 }, "id": "_NOjKvZRid5l", "outputId": "9c21c6b4-ac96-4683-972c-224c1a840993" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'. Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n", "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'. Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "from matplotlib.colors import ListedColormap\n", "X_set, y_set = sc.inverse_transform(X_train), y_train\n", "X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 10, stop = X_set[:, 0].max() + 10, step = 0.25),\n", " np.arange(start = X_set[:, 1].min() - 1000, stop = X_set[:, 1].max() + 1000, step = 0.25))\n", "plt.contourf(X1, X2, classifier.predict(sc.transform(np.array([X1.ravel(), X2.ravel()]).T)).reshape(X1.shape),\n", " alpha = 0.75, cmap = ListedColormap(('red', 'green')))\n", "plt.xlim(X1.min(), X1.max())\n", "plt.ylim(X2.min(), X2.max())\n", "for i, j in enumerate(np.unique(y_set)):\n", " plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1], c = ListedColormap(('red', 'green'))(i), label = j)\n", "plt.title('Kernel SVM (Training set)')\n", "plt.xlabel('Age')\n", "plt.ylabel('Estimated Salary')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "colab_type": "text", "id": "SZ-j28aPihZx" }, "source": [ "## Visualising the Test set results" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 349 }, "colab_type": "code", "executionInfo": { "elapsed": 647842, "status": "ok", "timestamp": 1588268650632, "user": { "displayName": "Hadelin de Ponteves", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GhEuXdT7eQweUmRPW8_laJuPggSK6hfvpl5a6WBaA=s64", "userId": "15047218817161520419" }, "user_tz": -240 }, "id": "qeTjz2vDilAC", "outputId": "ef991d23-2b7f-4046-88f2-dbfc639d73cc" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'. Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n", "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'. Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "from matplotlib.colors import ListedColormap\n", "X_set, y_set = sc.inverse_transform(X_test), y_test\n", "X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 10, stop = X_set[:, 0].max() + 10, step = 0.25),\n", " np.arange(start = X_set[:, 1].min() - 1000, stop = X_set[:, 1].max() + 1000, step = 0.25))\n", "plt.contourf(X1, X2, classifier.predict(sc.transform(np.array([X1.ravel(), X2.ravel()]).T)).reshape(X1.shape),\n", " alpha = 0.75, cmap = ListedColormap(('red', 'green')))\n", "plt.xlim(X1.min(), X1.max())\n", "plt.ylim(X2.min(), X2.max())\n", "for i, j in enumerate(np.unique(y_set)):\n", " plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1], c = ListedColormap(('red', 'green'))(i), label = j)\n", "plt.title('Kernel SVM (Test set)')\n", "plt.xlabel('Age')\n", "plt.ylabel('Estimated Salary')\n", "plt.legend()\n", "plt.show()" ] } ], "metadata": { "colab": { "authorship_tag": "ABX9TyMARUU4AeVdXSZH1V+VybNB", "collapsed_sections": [], "machine_shape": "hm", "name": "kernel_svm.ipynb", "provenance": [], "toc_visible": true }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.11.4" } }, "nbformat": 4, "nbformat_minor": 1 }