{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "1. K-Nearest Neighbors (K-NN)\n", "==\n", "El algoritmo (k-NN) es una forma de aprendizaje automático supervisado que se utiliza para predecir categorías, sklearn.neighbors proporciona funcionalidad para los métodos de aprendizaje basados en vecinos supervisados y sin supervisión. El aprendizaje supervisado basado en vecinos se presenta en dos tipos: \n", "\n", ">Clasificación para datos con etiquetas discretas\n", "\n", ">Regresión para datos con etiquetas continúas.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Paso 1\n", "==\n", "Primero debemos importar las librerías a utilizar:\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from matplotlib.colors import ListedColormap\n", "from sklearn import neighbors, datasets" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Paso 2\n", "==\n", "De datasets importamos el conjunto de datos de iris() y establecemos el número de vecino más cercano en 15\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "iris = datasets.load_iris()\n", "n_neighbors = 15" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La librería Iris se encuentra separada en: \n", " \n", ">data que contiene todas las características.\n", "\n", ">target que contiene las clases asociadas a esas características. \n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[5.1 3.5]\n", " [4.9 3. ]\n", " [4.7 3.2]\n", " [4.6 3.1]\n", " [5. 3.6]\n", " [5.4 3.9]\n", " [4.6 3.4]\n", " [5. 3.4]\n", " [4.4 2.9]\n", " [4.9 3.1]\n", " [5.4 3.7]\n", " [4.8 3.4]\n", " [4.8 3. ]\n", " [4.3 3. ]\n", " [5.8 4. ]\n", " [5.7 4.4]\n", " [5.4 3.9]\n", " [5.1 3.5]\n", " [5.7 3.8]\n", " [5.1 3.8]\n", " [5.4 3.4]\n", " [5.1 3.7]\n", " [4.6 3.6]\n", " [5.1 3.3]\n", " [4.8 3.4]\n", " [5. 3. ]\n", " [5. 3.4]\n", " [5.2 3.5]\n", " [5.2 3.4]\n", " [4.7 3.2]\n", " [4.8 3.1]\n", " [5.4 3.4]\n", " [5.2 4.1]\n", " [5.5 4.2]\n", " [4.9 3.1]\n", " [5. 3.2]\n", " [5.5 3.5]\n", " [4.9 3.6]\n", " [4.4 3. ]\n", " [5.1 3.4]\n", " [5. 3.5]\n", " [4.5 2.3]\n", " [4.4 3.2]\n", " [5. 3.5]\n", " [5.1 3.8]\n", " [4.8 3. ]\n", " [5.1 3.8]\n", " [4.6 3.2]\n", " [5.3 3.7]\n", " [5. 3.3]\n", " [7. 3.2]\n", " [6.4 3.2]\n", " [6.9 3.1]\n", " [5.5 2.3]\n", " [6.5 2.8]\n", " [5.7 2.8]\n", " [6.3 3.3]\n", " [4.9 2.4]\n", " [6.6 2.9]\n", " [5.2 2.7]\n", " [5. 2. ]\n", " [5.9 3. ]\n", " [6. 2.2]\n", " [6.1 2.9]\n", " [5.6 2.9]\n", " [6.7 3.1]\n", " [5.6 3. ]\n", " [5.8 2.7]\n", " [6.2 2.2]\n", " [5.6 2.5]\n", " [5.9 3.2]\n", " [6.1 2.8]\n", " [6.3 2.5]\n", " [6.1 2.8]\n", " [6.4 2.9]\n", " [6.6 3. ]\n", " [6.8 2.8]\n", " [6.7 3. ]\n", " [6. 2.9]\n", " [5.7 2.6]\n", " [5.5 2.4]\n", " [5.5 2.4]\n", " [5.8 2.7]\n", " [6. 2.7]\n", " [5.4 3. ]\n", " [6. 3.4]\n", " [6.7 3.1]\n", " [6.3 2.3]\n", " [5.6 3. ]\n", " [5.5 2.5]\n", " [5.5 2.6]\n", " [6.1 3. ]\n", " [5.8 2.6]\n", " [5. 2.3]\n", " [5.6 2.7]\n", " [5.7 3. ]\n", " [5.7 2.9]\n", " [6.2 2.9]\n", " [5.1 2.5]\n", " [5.7 2.8]\n", " [6.3 3.3]\n", " [5.8 2.7]\n", " [7.1 3. ]\n", " [6.3 2.9]\n", " [6.5 3. ]\n", " [7.6 3. ]\n", " [4.9 2.5]\n", " [7.3 2.9]\n", " [6.7 2.5]\n", " [7.2 3.6]\n", " [6.5 3.2]\n", " [6.4 2.7]\n", " [6.8 3. ]\n", " [5.7 2.5]\n", " [5.8 2.8]\n", " [6.4 3.2]\n", " [6.5 3. ]\n", " [7.7 3.8]\n", " [7.7 2.6]\n", " [6. 2.2]\n", " [6.9 3.2]\n", " [5.6 2.8]\n", " [7.7 2.8]\n", " [6.3 2.7]\n", " [6.7 3.3]\n", " [7.2 3.2]\n", " [6.2 2.8]\n", " [6.1 3. ]\n", " [6.4 2.8]\n", " [7.2 3. ]\n", " [7.4 2.8]\n", " [7.9 3.8]\n", " [6.4 2.8]\n", " [6.3 2.8]\n", " [6.1 2.6]\n", " [7.7 3. ]\n", " [6.3 3.4]\n", " [6.4 3.1]\n", " [6. 3. ]\n", " [6.9 3.1]\n", " [6.7 3.1]\n", " [6.9 3.1]\n", " [5.8 2.7]\n", " [6.8 3.2]\n", " [6.7 3.3]\n", " [6.7 3. ]\n", " [6.3 2.5]\n", " [6.5 3. ]\n", " [6.2 3.4]\n", " [5.9 3. ]]\n", "[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n", " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2\n", " 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n", " 2 2]\n" ] } ], "source": [ "X = iris.data[:,:2] # solo tomaremos los primeros 2 features, para ejemplificar.\n", "print(X)\n", "y = iris.target\n", "print(y)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Paso 4\n", "==\n", "Para analizar los datos visualmente crearemos un mapa de colores mediante ListedColormap a partir de una lista de colores, y utilizaremos un mallado con un paso de 0.2 \n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "h = .02 \n", "cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF'])\n", "cmap_bold = ListedColormap(['#FF0000', '#00FF00', '#0000FF'])\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Paso 5\n", "==\n", "Ahora realizaremos dos clasificaciones, una para un peso uniforme y otra para un peso en función al inverso de la distancia.\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2 0 2]\n", "[2 0 1]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# n_neighbors = 5\n", "for weights in ['uniform', 'distance']:\n", " # Creamos una instancia del clasificador de vecinos más cercanos y le pasamos los datos mediante fit().\n", " # El primer párametro de KNeighborsClassifier es con cuantos vecinos quiero clasificar y el segundo el tipo de peso a utilizar.\n", " clf = neighbors.KNeighborsClassifier(n_neighbors, weights=weights)\n", " clf.fit(X, y)\n", "\n", " # Establecemos los límites del gráfico y asignamos un color a cada punto de malla.\n", " x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n", " y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n", " xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n", " Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n", "\n", " # Agregamos el resultado al gráfico\n", " Z = Z.reshape(xx.shape)\n", " plt.figure()\n", " plt.pcolormesh(xx, yy, Z, shading='auto', cmap=cmap_light)\n", "\n", " # Ploteo los datos de entrenamiento\n", " plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold, edgecolor='k', s=20)\n", " plt.xlim(xx.min(), xx.max())\n", " plt.ylim(yy.min(), yy.max())\n", " plt.title(\"3-Clasificación (k = %i, weights = '%s')\" % (n_neighbors, weights))\n", " \n", " #Ploteo un nuevo dato \n", " Xn = np.array([[7.3,3], [5.1,2.9], [6.4,3.2]])\n", " Yn = clf.predict(Xn)\n", " print(Yn)\n", "plt.show()\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2.- Arboles de decisiones\n", "==\n", "Un árbol de decisiones se asemeja a las raíces de un árbol, en donde partimos de un conjunto de datos con determinadas características, que llamaremos raíz principal y que iremos descomponiendo por atributos, en ramas a partir de una determinada clasificación. Cada descomposición lleva asociada una condición que puede resultar verdadera o falsa y que se encuentra relacionada a una caracterización específica. \n", "Podríamos tener por ejemplo el atributo “tipo de vehículo” con valores:\n", " \n", ">Camionetas \n", "\n", ">Autos\n", "\n", "Y el atributo “tracción”, con valores:\n", " \n", ">Cuatro ruedas\n", "\n", ">Dos ruedas\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "En base a estos atributos podríamos crear un árbol en el cual la primera división se realice por “tipo de vehículo” y luego por “tracción” o al revés. Esta división la realizaremos a partir de un algoritmo que optimice la forma en la cual se lleva a cabo la división en base a un análisis probabilístico.\n", "Cuanto más profundo es el árbol, más complejas son las reglas de decisión y más se ajusta el modelo\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.datasets import load_iris\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.tree import export_graphviz\n", "import graphviz\n", "import matplotlib.pyplot as plt\n", "from matplotlib.colors import ListedColormap" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "jupyter": { "source_hidden": true } }, "outputs": [], "source": [ "iris=load_iris()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "X = iris.data[:,:2] # solo tomaremos los primeros 2 features, para ejemplificar.\n", "Y = iris.target" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "X_entrenamiento, X_test, y_entrenamiento, y_test=train_test_split(X, Y)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "arbol=DecisionTreeClassifier(max_depth=3)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "DecisionTreeClassifier(max_depth=3)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "arbol.fit(X_entrenamiento, y_entrenamiento)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.6578947368421053" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "arbol.score(X_test, y_test)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.8571428571428571" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "arbol.score(X_entrenamiento, y_entrenamiento)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "# import os\n", "# Usuarios de Windows:\n", "# os.environ[\"PATH\"] += os.pathsep + 'C:\\Program Files (x86)\\Graphviz2.38\\bin'\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "export_graphviz(arbol, out_file='arbol1.dot', class_names=iris.target_names, feature_names=iris.feature_names[:2], impurity=False, filled=True)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "Tree\n", "\n", "\n", "\n", "0\n", "\n", "sepal length (cm) <= 5.45\n", "samples = 112\n", "value = [42, 37, 33]\n", "class = setosa\n", "\n", "\n", "\n", "1\n", "\n", "sepal width (cm) <= 2.7\n", "samples = 41\n", "value = [37, 3, 1]\n", "class = setosa\n", "\n", "\n", "\n", "0->1\n", "\n", "\n", "True\n", "\n", "\n", "\n", "6\n", "\n", "sepal length (cm) <= 6.25\n", "samples = 71\n", "value = [5, 34, 32]\n", "class = versicolor\n", "\n", "\n", "\n", "0->6\n", "\n", "\n", "False\n", "\n", "\n", "\n", "2\n", "\n", "sepal width (cm) <= 2.45\n", "samples = 4\n", "value = [0, 3, 1]\n", "class = versicolor\n", "\n", "\n", "\n", "1->2\n", "\n", "\n", "\n", "\n", "\n", "5\n", "\n", "samples = 37\n", "value = [37, 0, 0]\n", "class = setosa\n", "\n", "\n", "\n", "1->5\n", "\n", "\n", "\n", "\n", "\n", "3\n", "\n", "samples = 2\n", "value = [0, 2, 0]\n", "class = versicolor\n", "\n", "\n", "\n", "2->3\n", "\n", "\n", "\n", "\n", "\n", "4\n", "\n", "samples = 2\n", "value = [0, 1, 1]\n", "class = versicolor\n", "\n", "\n", "\n", "2->4\n", "\n", "\n", "\n", "\n", "\n", "7\n", "\n", "sepal width (cm) <= 3.45\n", "samples = 34\n", "value = [5, 24, 5]\n", "class = versicolor\n", "\n", "\n", "\n", "6->7\n", "\n", "\n", "\n", "\n", "\n", "10\n", "\n", "sepal length (cm) <= 7.05\n", "samples = 37\n", "value = [0, 10, 27]\n", "class = virginica\n", "\n", "\n", "\n", "6->10\n", "\n", "\n", "\n", "\n", "\n", "8\n", "\n", "samples = 29\n", "value = [0, 24, 5]\n", "class = versicolor\n", "\n", "\n", "\n", "7->8\n", "\n", "\n", "\n", "\n", "\n", "9\n", "\n", "samples = 5\n", "value = [5, 0, 0]\n", "class = setosa\n", "\n", "\n", "\n", "7->9\n", "\n", "\n", "\n", "\n", "\n", "11\n", "\n", "samples = 31\n", "value = [0, 10, 21]\n", "class = virginica\n", "\n", "\n", "\n", "10->11\n", "\n", "\n", "\n", "\n", "\n", "12\n", "\n", "samples = 6\n", "value = [0, 0, 6]\n", "class = virginica\n", "\n", "\n", "\n", "10->12\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "with open('arbol1.dot') as f:\n", " dot_graph=f.read()\n", "graphviz.Source(dot_graph)\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "from sklearn.tree import plot_tree" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Text(153.45000000000002, 190.26, 'X[0] <= 5.45\\ngini = 0.663\\nsamples = 112\\nvalue = [42, 37, 33]'),\n", " Text(83.7, 135.9, 'X[1] <= 2.7\\ngini = 0.18\\nsamples = 41\\nvalue = [37, 3, 1]'),\n", " Text(55.800000000000004, 81.53999999999999, 'X[1] <= 2.45\\ngini = 0.375\\nsamples = 4\\nvalue = [0, 3, 1]'),\n", " Text(27.900000000000002, 27.180000000000007, 'gini = 0.0\\nsamples = 2\\nvalue = [0, 2, 0]'),\n", " Text(83.7, 27.180000000000007, 'gini = 0.5\\nsamples = 2\\nvalue = [0, 1, 1]'),\n", " Text(111.60000000000001, 81.53999999999999, 'gini = 0.0\\nsamples = 37\\nvalue = [37, 0, 0]'),\n", " Text(223.20000000000002, 135.9, 'X[0] <= 6.25\\ngini = 0.563\\nsamples = 71\\nvalue = [5, 34, 32]'),\n", " Text(167.4, 81.53999999999999, 'X[1] <= 3.45\\ngini = 0.458\\nsamples = 34\\nvalue = [5, 24, 5]'),\n", " Text(139.5, 27.180000000000007, 'gini = 0.285\\nsamples = 29\\nvalue = [0, 24, 5]'),\n", " Text(195.3, 27.180000000000007, 'gini = 0.0\\nsamples = 5\\nvalue = [5, 0, 0]'),\n", " Text(279.0, 81.53999999999999, 'X[0] <= 7.05\\ngini = 0.394\\nsamples = 37\\nvalue = [0, 10, 27]'),\n", " Text(251.10000000000002, 27.180000000000007, 'gini = 0.437\\nsamples = 31\\nvalue = [0, 10, 21]'),\n", " Text(306.90000000000003, 27.180000000000007, 'gini = 0.0\\nsamples = 6\\nvalue = [0, 0, 6]')]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_tree(arbol)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "caracteristica=2\n", "\n", "plt.barh(range(caracteristica),arbol.feature_importances_)\n", "plt.yticks(np.arange(caracteristica),iris.feature_names[:2])\n", "plt.xlabel('Importancia')\n", "plt.ylabel('Característica')\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "h = .02 \n", "cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF'])\n", "cmap_bold = ListedColormap(['#FF0000', '#00FF00', '#0000FF'])" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[2 0 2]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Establecemos los límites del gráfico y asignamos un color a cada punto de malla.\n", "x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n", "y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n", "xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n", "Z = arbol.predict(np.c_[xx.ravel(), yy.ravel()])\n", "\n", "# Agregamos el resultado al gráfico\n", "Z = Z.reshape(xx.shape)\n", "plt.figure()\n", "plt.pcolormesh(xx, yy, Z, shading='auto', cmap=cmap_light)\n", "\n", "# Ploteo los datos de entrenamiento\n", "plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold, edgecolor='k', s=20)\n", "plt.xlim(xx.min(), xx.max())\n", "plt.ylim(yy.min(), yy.max())\n", "plt.title(\"Decision tree\")\n", " \n", "# #Ploteo un nuevo dato \n", "Xn = np.array([[7.3,3], [5.1,2.9], [6.4,3.2]])\n", "Yn = arbol.predict(Xn)\n", "print(Yn)\n", "plt.show()\n" ] } ], "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.9.5" } }, "nbformat": 4, "nbformat_minor": 4 }