Created
March 5, 2025 22:24
-
-
Save PandoraRiot/1276050c5a68c45223a87f835b7f3c3f to your computer and use it in GitHub Desktop.
kernels_svm.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "view-in-github", | |
| "colab_type": "text" | |
| }, | |
| "source": [ | |
| "<a href=\"https://colab.research.google.com/gist/PandoraRiot/1276050c5a68c45223a87f835b7f3c3f/kernels_svm.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "E7QcZy7O5Yi5" | |
| }, | |
| "source": [ | |
| "# **SVM - Kernel comparison**" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "SpzR-xplH9kw" | |
| }, | |
| "source": [ | |
| "## Kernel interpretation" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "id": "2DYFVqSPIDWB" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import numpy as np\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "from mpl_toolkits import mplot3d\n", | |
| "from PIL import Image\n", | |
| "from sklearn import svm\n", | |
| "from sklearn.datasets import make_gaussian_quantiles" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "id": "yj8-kgrq82FI", | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 389 | |
| }, | |
| "outputId": "9f41af98-46f2-4bfc-ee2a-79c55adf892c" | |
| }, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.collections.PathCollection at 0x7d8663255990>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "execution_count": 17 | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<Figure size 500x400 with 1 Axes>" | |
| ], | |
| "image/png": "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\n" | |
| }, | |
| "metadata": {} | |
| } | |
| ], | |
| "source": [ | |
| "X, y = make_gaussian_quantiles(cov=2,\n", | |
| " n_samples=300,\n", | |
| " n_features=2,\n", | |
| " n_classes=2,\n", | |
| " random_state=1)\n", | |
| "\n", | |
| "\n", | |
| "\n", | |
| "X [y == 0, :] = X[y == 0, :] * 0.5\n", | |
| "_, ax = plt.subplots(figsize=(5, 4)) # Ajuste del tamaño del gráfico\n", | |
| "\n", | |
| "\n", | |
| "ax.scatter(X[:, 0], X[:, 1], c=Y, cmap='Paired')\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "k = X[:, 0] ** 2 + X[:, 1] ** 2\n", | |
| "X = np.c_[X, k]\n", | |
| "print (X.shape)" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "pbEse167nNgd", | |
| "outputId": "69c6487b-beb1-4ed2-abf5-e36c44d40200" | |
| }, | |
| "execution_count": null, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "(300, 3)\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "id": "Mr7g30_KenCq" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "ax.view_init(90, 0)\n", | |
| "ax.scatter3D( _ , _ , _ , c = _ , s=10, cmap=plt.cm.Paired)\n", | |
| "plt.tight_layout()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "id": "j-jFNjR6-PK1" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Sve all figs" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "id": "B9Z-xyoJg2Ni" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import os\n", | |
| "from PIL import Image\n", | |
| "\n", | |
| "# Save a gif\n", | |
| "_\n", | |
| "\n", | |
| "image.save(\"kernel_.gif\", save_all=True, append_images=all_images, duration=200, loop=0)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "Um2ZubAfIA_w" | |
| }, | |
| "source": [ | |
| "## SVM" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "id": "yxbe6nohdZcX" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import numpy as np\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "from sklearn import svm\n", | |
| "from sklearn.datasets import make_classification" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "id": "ZF0TohyIdVRl" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# we create 100 separable points\n", | |
| "X, Y = make_classification(n_samples = _ , n_features=2, n_redundant=0, n_informative=2, n_clusters_per_class=2, random_state=2)\n", | |
| "plt.scatter( _ , _ , c = _ , s = _, cmap=plt.cm.Paired)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "id": "_52tN2cddeQ8" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "\n", | |
| "kernels = ['linear', 'poly', 'rbf']\n", | |
| "\n", | |
| "_, axes = plt.subplots(1,3, figsize = (20,5))\n", | |
| "\n", | |
| "# fit the model\n", | |
| "for _ :\n", | |
| " #\n", | |
| " clf = svm.SVC(kernel = _ , gamma = 1)\n", | |
| " clf.fit( _ , _ )\n", | |
| "\n", | |
| " x_min, x_max = _ , _\n", | |
| " y_min, y_max = _ , _\n", | |
| "\n", | |
| " x_dim, y_dim = np.meshgrid(np.arange( _ , _ , 0.01), np.arange( _ , _ , 0.01))\n", | |
| " predictions = clf.predict(np.c_[x_dim.ravel(), y_dim.ravel()])\n", | |
| "\n", | |
| " predictions = predictions.reshape( _ )\n", | |
| " axes[i].pcolormesh( _ , _ , predictions, cmap = plt.cm.Paired)\n", | |
| " axes[i].contour( _ , _ , predictions, colors=['k', 'k'], linestyles=['-', '-'], levels=[0, 1])\n", | |
| "\n", | |
| " axes[i].scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1], s = 90, facecolors = 'none', edgecolors = 'k')\n", | |
| "\n", | |
| " axes[i].scatter( _ , _ , c = _ , cmap=plt.cm.Paired, edgecolors='k')\n", | |
| " axes[i].set_axis_off()\n", | |
| "\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "id": "KtFB0xKopFkM" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "\n", | |
| "kernels = ['linear', 'poly', 'rbf']\n", | |
| "\n", | |
| "_, axes = plt.subplots(1,3, figsize = (20,5))\n", | |
| "\n", | |
| "# fit the model\n", | |
| "for i, kernel in enumerate(kernels):\n", | |
| " #\n", | |
| " clf = svm.SVC(kernel = _ , gamma = 1)\n", | |
| " clf.fit( _ , _ )\n", | |
| "\n", | |
| " x_min, x_max = _ , _\n", | |
| " y_min, y_max = _ , _\n", | |
| "\n", | |
| " x_dim, y_dim = np.meshgrid(np.arange( _ , _ , 0.01), np.arange( _ , _ , 0.01))\n", | |
| " predictions = clf.decision_function(np.c_[x_dim.ravel(), y_dim.ravel()])\n", | |
| "\n", | |
| " predictions = predictions.reshape(x_dim.shape)\n", | |
| " axes[i].pcolormesh( _ , _ , predictions, cmap = plt.cm.coolwarm)\n", | |
| " axes[i].contourf( _ , _ , predictions, alpha = 0.75, cmap = plt.cm.coolwarm)\n", | |
| "\n", | |
| " axes[i].scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1], s = 90, facecolors = 'none', edgecolors = 'k')\n", | |
| "\n", | |
| " axes[i].scatter( _ , _ , c=Y, cmap=plt.cm.coolwarm, edgecolors='k')\n", | |
| " axes[i].set_axis_off()\n", | |
| "\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "DM1DiBXiqBrS" | |
| }, | |
| "source": [ | |
| "Create a function that plots the decision boundaries of a given SVM" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "r30tTEZGdVq5" | |
| }, | |
| "source": [ | |
| "## In real data" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "-RMDEFd-qY2P" | |
| }, | |
| "source": [ | |
| "Evaluate the different SVM kernels in the Iris and Fruits datasets" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "id": "Hthc_vorQEy2" | |
| }, | |
| "outputs": [], | |
| "source": [] | |
| } | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "collapsed_sections": [ | |
| "Um2ZubAfIA_w", | |
| "r30tTEZGdVq5" | |
| ], | |
| "provenance": [], | |
| "include_colab_link": true | |
| }, | |
| "kernelspec": { | |
| "display_name": "Python 3", | |
| "name": "python3" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 0 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment