{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Ejemplo Decision Tree" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### El objetivo es clasificar con un Decision Tree los datos obtenidos a partir de una simulación no lineal que se encuentran en el fichero \"ejemplo_dataset\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Cargamos las librerías necesarias" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Tratamiento de datos\n", "# ==============================================================================\n", "import pandas as pd\n", "import numpy as np\n", "\n", "# Gráficos\n", "# ==============================================================================\n", "import matplotlib.pyplot as plt\n", "from matplotlib import style\n", "import seaborn as sns\n", "\n", "# Preprocesado y modelado\n", "# ==============================================================================\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.model_selection import train_test_split\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Creamos y visualizamos el set de datos" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
X1X2y
02.5260930.3210500
10.3669540.0314620
20.7682190.7174860
30.6934360.7771940
4-0.0198370.8672540
\n", "
" ], "text/plain": [ " X1 X2 y\n", "0 2.526093 0.321050 0\n", "1 0.366954 0.031462 0\n", "2 0.768219 0.717486 0\n", "3 0.693436 0.777194 0\n", "4 -0.019837 0.867254 0" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Datos\n", "# ==============================================================================\n", "df = pd.read_csv(\"ejemplo_dataset.csv\")\n", "df.head()\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(6,4))\n", "ax.scatter(df.X1, df.X2, c=df.y);\n", "ax.set_title(\"Datos ESL.mixture\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Dividimos los datos en el set de entrenamiento y de test." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "X = df.drop(columns = 'y')\n", "y = df['y']\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(\n", " X,\n", " y.values.reshape(-1,1),\n", " train_size = 0.8,\n", " random_state = 1234,\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Creamos y entrenamos el modelo SVC lineal." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "DecisionTreeClassifier(criterion='entropy', max_depth=3, random_state=0)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rf = DecisionTreeClassifier(criterion='entropy', max_depth=3, random_state=0)\n", "rf.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Clasificamos con el algoritmo entrenado los datos de test." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1,\n", " 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1], dtype=int64)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predicciones = rf.predict(X_test)\n", "predicciones" ] } ], "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.8.3" } }, "nbformat": 4, "nbformat_minor": 4 }