{"id":382,"date":"2018-09-15T22:52:22","date_gmt":"2018-09-16T04:52:22","guid":{"rendered":"http:\/\/www.jacobsoft.com.mx\/?p=382"},"modified":"2020-03-27T22:48:50","modified_gmt":"2020-03-28T04:48:50","slug":"arboles-de-regresion-usando-python","status":"publish","type":"post","link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/arboles-de-regresion-usando-python\/","title":{"rendered":"\u00c1rboles de Regresi\u00f3n usando Python"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u00c1rboles de Regresi\u00f3n usando Python<\/h2>\n\n\n\n<p>En miner\u00eda de datos, <a rel=\"noreferrer noopener\" aria-label=\"En miner\u00eda de datos, machine learning y\/o ciencia de datos, en lo que se refiere al an\u00e1lisis con \u00e1rboles, existen dos enfoques principales: los \u00e1rboles de decisi\u00f3n y los \u00e1rboles de regresi\u00f3n. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.462&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\"><strong>machine learning<\/strong><\/a> y\/o ciencia de datos, en lo que se refiere al an\u00e1lisis con \u00e1rboles, existen dos enfoques principales: <strong><em>los \u00e1rboles de decisi\u00f3n<\/em><\/strong> y <strong><em>los \u00e1rboles de regresi\u00f3n<\/em><\/strong>.<\/p>\n\n\n\n<p>En ambos casos los \u00e1rboles constituyen <strong>m\u00e9todos predictivos de segmentaci\u00f3n<\/strong>, conocidos como <strong>\u00e1rboles de clasificaci\u00f3n<\/strong>. Son particiones secuenciales del conjunto de datos realizadas para maximizar las diferencias de la variable dependiente dado que se realiza una divisi\u00f3n de los casos en grupos.<\/p>\n\n\n\n<p>A trav\u00e9s de diferentes \u00edndices y <strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.370&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"A trav\u00e9s de diferentes \u00edndices y procedimientos estad\u00edsticos se determina la divisi\u00f3n m\u00e1s discriminante de entre los criterios seleccionados, aquella que permite diferenciar mejor a los distintos grupos del criterio base, con lo que se obtiene as\u00ed, una primera segmentaci\u00f3n. A partir de esa primera segmentaci\u00f3n, se realizan nuevas segmentaciones de cada uno los segmentos resultantes y as\u00ed sucesivamente hasta que el proceso finaliza con alguna norma estad\u00edstica. (opens in a new tab)\">procedimientos estad\u00edsticos<\/a><\/strong> se determina la divisi\u00f3n m\u00e1s discriminante de entre los criterios seleccionados, aquella que permite diferenciar mejor a los distintos grupos del criterio base, con lo que se obtiene as\u00ed, una primera segmentaci\u00f3n. A partir de esa primera segmentaci\u00f3n, se realizan nuevas segmentaciones de cada uno los segmentos resultantes y as\u00ed sucesivamente hasta que el proceso finaliza con alguna norma estad\u00edstica.<\/p>\n\n\n\n<p>Supongamos ahora que deseamos conocer que pasajeros del Titanic tuvieron m\u00e1s probabilidades de sobrevivir a su hundimiento y qu\u00e9 caracter\u00edsticas estuvieron asociadas a la supervivencia del naufragio. En este caso la variable de inter\u00e9s (GS) es el<strong> grado de supervivencia<\/strong>.<\/p>\n\n\n\n<p>Podr\u00edamos entonces dividir a los pasajeros en grupos por <strong>edad<\/strong>, <strong>sexo<\/strong>, <strong>clase<\/strong> en la que viajaban y observar la proporci\u00f3n de supervivientes de cada grupo.<\/p>\n\n\n\n<p>Un procedimiento basado en <strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.372&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Un procedimiento basado en \u00e1rboles, selecciona autom\u00e1ticamente los grupos homog\u00e9neos con la mayor diferencia en proporci\u00f3n de supervivientes entre ellos. En el primer caso, sexo (hombres y mujeres). (opens in a new tab)\">\u00e1rboles<\/a><\/strong>, selecciona autom\u00e1ticamente los grupos homog\u00e9neos con la mayor diferencia en proporci\u00f3n de supervivientes entre ellos. En el primer caso, sexo (hombres y mujeres).<\/p>\n\n\n\n<p>El siguiente paso consta en subdividir cada grupo de hombres y mujeres en funci\u00f3n de otra caracter\u00edsticas. Resultando que los hombres son divididos en adultos y ni\u00f1os, mientras que las mujeres se dividen en grupos basados en la clase en la que viajaban.<\/p>\n\n\n\n<p>Cuando se termina el proceso de subdivisi\u00f3n, el resultado es un conjunto de reglas que pueden visualizarse f\u00e1cilmente mediante un <strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.372&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Cuando se termina el proceso de subdivisi\u00f3n, el resultado es un conjunto de reglas que pueden visualizarse f\u00e1cilmente mediante un \u00e1rbol. (opens in a new tab)\">\u00e1rbol<\/a><\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"652\" height=\"265\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_1.png\" alt=\"\" class=\"wp-image-384\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_1.png 652w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_1-300x122.png 300w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><\/figure>\n\n\n\n<p>Con la representaci\u00f3n de la figura anterior podemos observar, por ejemplo, que si un pasajero es hombre y es adulto, entonces tiene una probabilidad de sobrevivir del 20%.<\/p>\n\n\n\n<p>La proporci\u00f3n de la supervivencia en cada una de las subdivisiones puede utilizarse con fines <strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.462&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"La proporci\u00f3n de la supervivencia en cada una de las subdivisiones puede utilizarse con fines predictivos para vaticinar el grado de supervivencia de los miembros de ese grupo. (opens in a new tab)\">predictivos<\/a><\/strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.462&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"La proporci\u00f3n de la supervivencia en cada una de las subdivisiones puede utilizarse con fines predictivos para vaticinar el grado de supervivencia de los miembros de ese grupo. (opens in a new tab)\"> <\/a>para vaticinar el grado de supervivencia de los miembros de ese grupo.<\/p>\n\n\n\n<p>Utilizando diferentes predictores (variables independientes) en cada nivel del proceso de divisi\u00f3n representa una forma sencilla y elegante de manejar iteraciones.<\/p>\n\n\n\n<p>El procedimiento crea un modelo de clasificaci\u00f3n basado en <a rel=\"noreferrer noopener\" aria-label=\"El procedimiento crea un modelo de clasificaci\u00f3n basado en \u00e1rboles, y clasifica casos en grupos o pronostica valores de una variable dependiente basada en los valores de las variables independientes. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.462&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\"><strong>\u00e1rboles<\/strong><\/a>, y clasifica casos en grupos o pronostica valores de una variable dependiente basada en los valores de las variables independientes.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Segmentaci\u00f3n<\/strong>. Identifica individuos que pueden ser miembros de un grupo espec\u00edfico.<strong><\/strong><\/li><li><strong>Estratificaci\u00f3n<\/strong>. Asigna los casos a una categor\u00eda de entre varias, por ejemplo grupos de alto riesgo, bajo riesgo o riesgo intermedio.<\/li><li><strong>Predicci\u00f3n<\/strong>. Crea reglas y las utiliza para predecir eventos futuros, como verosimilitud de que una persona cause mora en un cr\u00e9dito, o el valor de reventa de un veh\u00edculo o de un inmueble <\/li><\/ul>\n\n\n\n<p>Un <strong>an\u00e1lisis de datos basado en \u00e1rboles<\/strong> permite identificar grupos homog\u00e9neos con alto o bajo riesgo y facilita la construcci\u00f3n de reglas para realizar pron\u00f3sticos sobre casos individuales.<\/p>\n\n\n\n<p>Para los \u00e1rboles tanto las variables dependientes e independientes pueden ser nominales, ordinales y de escala.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Son <strong>nominales<\/strong> cuando sus valores presentan categor\u00edas que no obedecen a un orden intr\u00ednseco. Por ejemplo, el \u00e1rea donde trabaja un empleado<\/li><li>Son <strong>ordinales<\/strong> cuando sus valores presentan categor\u00edas con alg\u00fan orden intr\u00ednseco. Por ejemplo, los niveles de satisfacci\u00f3n de un servicio.<\/li><li>Son <strong>de escala<\/strong> cuando sus valores representan categor\u00edas ordenadas con una m\u00e9trica con significado, por que aqu\u00ed son adecuadas las comparaciones de distancia entre valores. Por ejemplo, la edad en a\u00f1os, los ingresos en moneda, etc.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Tipos de \u00e1rboles<\/h3>\n\n\n\n<p>Los tres tipos de \u00e1rboles m\u00e1s utilizados hoy en d\u00eda son: \u00e1rboles CHAID, \u00e1rboles CART y \u00e1rboles QUEST<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>\u00c1rboles CHAID<\/strong> (Chi-square Automatic Interaction Detector). Es la conclusi\u00f3n de una serie de m\u00e9todos basados en el detector autom\u00e1tico de interacciones (AID) de Morgan y Sonquist. Es un m\u00e9todo exploratorio \u00fatil para identificar variables importantes y sus interacciones enfocadas a la segmentaci\u00f3n y a los an\u00e1lisis descriptivos.<\/li><li><strong>\u00c1rboles CART<\/strong> (Classification and Regression Tree). Es una alternativa al CHAID exhaustivo para \u00e1rboles de clasificaci\u00f3n con variables dependientes categ\u00f3ricas. Por lo que se utiliza para clasificaci\u00f3n con variables dependiente cualitativa y para regresi\u00f3n con variable dependiente cuantitativa, generando \u00e1rboles binarios.<\/li><li><strong>\u00c1rboles QUEST<\/strong> (Quick, Unbiased, Efficient, Statistica Tree). Consiste en un algoritmo de clasificaci\u00f3n arborescente creado especialmente para solventar dos de los principales problemas que presentan los m\u00e9todos CART y CHAID exhaustivo a la hora de dividir un grupo de sujetos en funci\u00f3n de una variable independiente.<\/li><\/ul>\n\n\n\n<p>En este art\u00edculo nos enfocaremos en los \u00e1rboles CART para <strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.462&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"En este art\u00edculo nos enfocaremos en los \u00e1rboles CART para regresi\u00f3n y en el siguiente lo haremos para clasificaci\u00f3n. (opens in a new tab)\">regresi\u00f3n<\/a><\/strong> y en el siguiente lo haremos para clasificaci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Algoritmo para los \u00c1rboles CART de regresi\u00f3n<\/h3>\n\n\n\n<p>Supongamos que tenemos un conjunto de datos con dos variables dependientes X1 y X2 y Y siendo la variable dependiente a predecir.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"837\" height=\"474\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_2.png\" alt=\"\" class=\"wp-image-385\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_2.png 837w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_2-300x170.png 300w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_2-768x435.png 768w\" sizes=\"auto, (max-width: 837px) 100vw, 837px\" \/><\/a><\/figure>\n\n\n\n<p>De acuerdo con algunos criterios establecidos podr\u00edamos empezar a segmentar los datos en relaci\u00f3n a ciertos valores para X1 y X2. Por ejemplo si necesitamos crear grupos con datos donde X1 es menor a 20, tendr\u00edamos un grupo para X1 &lt; 20 y un grupo para X1 &gt;= 20, entonces para el algoritmo creamos una divisi\u00f3n en X1 = 20<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"747\" height=\"474\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_3.png\" alt=\"\" class=\"wp-image-387\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_3.png 747w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_3-300x190.png 300w\" sizes=\"auto, (max-width: 747px) 100vw, 747px\" \/><\/a><\/figure>\n\n\n\n<p>Despu\u00e9s, para los datos donde X1 &gt; 20 requerimos crear un grupo de valores con X2 &gt; 170 y X2 &lt;= 170, por lo que marcamos otra divisi\u00f3n como en la gr\u00e1fica siguiente.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"761\" height=\"474\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_4.png\" alt=\"\" class=\"wp-image-388\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_4.png 761w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_4-300x187.png 300w\" sizes=\"auto, (max-width: 761px) 100vw, 761px\" \/><\/a><\/figure>\n\n\n\n<p>y luego de esto, creamos dos divisiones m\u00e1s, una para los datos donde X1 &lt; 20, dividimos en dos grupos, los que tienen valores para X2 menor y mayor a 200. La divisi\u00f3n 4 para los datos donde X2 &gt; 20 y X1 &lt; 170, requerimos los que son mayores a 40 en X1<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"753\" height=\"474\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_5.png\" alt=\"\" class=\"wp-image-389\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_5.png 753w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_5-300x189.png 300w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/a><\/figure>\n\n\n\n<p>Conforme se van creando los segmentos, se va formando una estructura binaria, tipo \u00e1rbol de la siguiente manera, donde representamos los grupos en base a las l\u00edneas de divisi\u00f3n mostradas en las gr\u00e1ficas anteriores.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_6.png\"><img loading=\"lazy\" decoding=\"async\" width=\"739\" height=\"474\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_6.png\" alt=\"\" class=\"wp-image-390\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_6.png 739w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_6-300x192.png 300w\" sizes=\"auto, (max-width: 739px) 100vw, 739px\" \/><\/a><\/figure>\n\n\n\n<p>Los nodos azules representan las cuatro divisiones que se realizaron en las gr\u00e1ficas del conjuntos de datos y los nodos blancos, los datos que pertenecen a cada grupo. Si en cada uno de estos grupos el valor de la variable dependiente es el mismo dentro del mismo grupo y distinto entre grupos. Podemos ahora predecir el valor de Y (variable dependiente) para datos desconocidos o adicionales con valores para X1 y X2 que caen en un grupo espec\u00edfico.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_7.png\"><img loading=\"lazy\" decoding=\"async\" width=\"839\" height=\"474\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_7.png\" alt=\"\" class=\"wp-image-391\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_7.png 839w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_7-300x169.png 300w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_7-768x434.png 768w\" sizes=\"auto, (max-width: 839px) 100vw, 839px\" \/><\/a><\/figure>\n\n\n\n<p>Los recuadros verdes representan el valor de Y (la variable dependiente) y ahora representado en el gr\u00e1fico del \u00e1rbol, lo demos de la siguiente manera:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"474\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_8.png\" alt=\"\" class=\"wp-image-392\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_8.png 720w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_8-300x198.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/figure>\n\n\n\n<p>Con este diagrama podemos determinar que, por ejemplo, el valor de Y para un punto dado por (28, 115) donde X1 = 28 y X2 = 115, entonces Y ser\u00e1 igual a -64.10<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Arboles de Regresion Parte 1\" width=\"780\" height=\"439\" src=\"https:\/\/www.youtube.com\/embed\/WiP2B_WYtp8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u00c1rboles de Regresi\u00f3n con Python<\/h3>\n\n\n\n<p>Para el ejemplo con <strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.373&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Para el ejemplo con python, supongamos que tenemos el siguiente conjunto de datos que representa el salario de un empleado de acuerdo al nivel y puesto en el que se encuentra en la organizaci\u00f3n (opens in a new tab)\">python<\/a><\/strong>, supongamos que tenemos el siguiente conjunto de datos que representa el salario de un empleado de acuerdo al nivel y puesto en el que se encuentra en la organizaci\u00f3n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Posici\u00f3n<\/strong><\/td><td><strong>Nivel<\/strong><\/td><td><strong>Salario<\/strong><\/td><\/tr><tr><td>Business Analyst<\/td><td>1<\/td><td>45,000<\/td><\/tr><tr><td>Junior Consultant<\/td><td>2<\/td><td>50,000<\/td><\/tr><tr><td>Senior Consultant<\/td><td>3<\/td><td>60,000<\/td><\/tr><tr><td>Manager<\/td><td>4<\/td><td>80,000<\/td><\/tr><tr><td>Country Manager<\/td><td>5<\/td><td>110,000<\/td><\/tr><tr><td>Region Manager<\/td><td>6<\/td><td>150,000<\/td><\/tr><tr><td>Partner<\/td><td>7<\/td><td>200,000<\/td><\/tr><tr><td>Senior Partner<\/td><td>8<\/td><td>300,000<\/td><\/tr><tr><td>C-level<\/td><td>9<\/td><td>500,000<\/td><\/tr><tr><td>CEO<\/td><td>10<\/td><td>1,000,000<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Cargamos las librer\u00edas y el archivo de datos que contiene la tabla anterior, donde utilizaremos el nivel como la variable independiente y el salario como la variable dependiente.<\/p>\n\n\n<div id=\"code\">\n\n\n\n<pre class=\"wp-block-preformatted\">#\u00c1rboles de Regresi\u00f3n\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\ndataset = pd.read_csv('Salario_por_Posicion.csv')\nX = dataset.iloc[:, 1:2].values\ny = dataset.iloc[:, 2].values\n<\/pre>\n\n\n<\/div>\n\n\n\n<p>Una vez ejecutado el fragmento de c\u00f3digo anterior obtenemos el dataset y las variables X y Y<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_9.png\"><img loading=\"lazy\" decoding=\"async\" width=\"470\" height=\"428\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_9.png\" alt=\"\" class=\"wp-image-394\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_9.png 470w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_9-300x273.png 300w\" sizes=\"auto, (max-width: 470px) 100vw, 470px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"594\" height=\"421\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_10.png\" alt=\"\" class=\"wp-image-395\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_10.png 594w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_10-300x213.png 300w\" sizes=\"auto, (max-width: 594px) 100vw, 594px\" \/><\/a><\/figure>\n\n\n\n<p>El siguiente paso es importar la clase DecisionTreeRegressor del paquete tree de la librer\u00eda sklearn para crear un objeto regressor y ajustar los datos X y Y y posteriormente hacer la predicci\u00f3n con un valor de Nivel 6.5, es decir un puesto en la organizaci\u00f3n que tenga el nivel 6.5<\/p>\n\n\n<div id=\"code\">\n\n\n\n<pre class=\"wp-block-preformatted\">#Regresion Lineal Simple\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\ndataset = pd.read_csv('Salario_por_Posicion.csv')\nX = dataset.iloc[:, 1:2].values\ny = dataset.iloc[:, 2].values\n\n# Ajuste del arbol de decision al dataset\nfrom sklearn.tree import DecisionTreeRegressor\nregressor = DecisionTreeRegressor(random_state = 0)\nregressor.fit(X, y)\n\n# Prediccion del salario para el nivel 6.5\ny_pred = regressor.predict(6.5)\n<\/pre>\n\n\n<\/div>\n\n\n\n<p>Despu\u00e9s de ejecutar los \u00faltimos fragmentos del c\u00f3digo, y_pred que es la variable donde guarda el resultado de predecir a que grupo pertenece el valor de 6.5 para el nivel salarial tenemos los siguiente:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_11.png\"><img loading=\"lazy\" decoding=\"async\" width=\"416\" height=\"338\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_11.png\" alt=\"\" class=\"wp-image-396\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_11.png 416w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_11-300x244.png 300w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><\/a><\/figure>\n\n\n\n<p>Observamos que el resultado es 150,000, el cual corresponde al salario del nivel 6, es decir el nodo del nivel 6 corresponde para valores de X desde 5.6 a 6.5, para observarlo de esa forma creamos la siguiente gr\u00e1fica:<\/p>\n\n\n<div id=\"code\">\n\n\n\n<pre class=\"wp-block-preformatted\"># Visualizacion de los resultados del arbol de decision\nX_grid = np.arange(min(X), max(X), 0.01)\nX_grid = X_grid.reshape((len(X_grid), 1))\nplt.scatter(X, y, color = 'red')\nplt.plot(X_grid, regressor.predict(X_grid), color = 'blue')\nplt.title('Decision Tree Regression')\nplt.xlabel('Nivel Posicion')\nplt.ylabel('Salario')\nplt.show()\n<\/pre>\n\n\n<\/div>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_12.png\"><img loading=\"lazy\" decoding=\"async\" width=\"656\" height=\"584\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_12.png\" alt=\"\" class=\"wp-image-397\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_12.png 656w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Arboles_12-300x267.png 300w\" sizes=\"auto, (max-width: 656px) 100vw, 656px\" \/><\/a><\/figure>\n\n\n\n<p>Como se observa en la gr\u00e1fica escalonada, el valor de 150,000 para el salario se mantiene desde el nivel 5.6 al nivel 6.5. Un nivel 6.6 ya nos dar\u00eda un salario de 200,000 que corresponde al nivel 7.<\/p>\n\n\n\n<p>Los \u00e1rboles de regresi\u00f3n permiten predecir un valor para la variable dependiente que pertenezca a un grupo creado por el \u00e1rbol.<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"\u00c1rboles de Regresi\u00f3n Parte 2 ejemplo con Python\" width=\"780\" height=\"439\" src=\"https:\/\/www.youtube.com\/embed\/OzQfeYiblKc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Recursos y comentarios adicionales<\/h3>\n\n\n\n<p>Ejecutar los modelos de <strong><a rel=\"noreferrer noopener\" aria-label=\"Ejecutar los modelos de machine learning en la nube puede (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.462&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\">machine learning<\/a><\/strong> en la nube puede ser una ventaja dependiendo de la cantidad de datos que tenemos dado que podr\u00edamos requerir de mayor poder de procesamiento para el entrenamiento del modelo.<\/p>\n\n\n\n<p>En este sentido, conocer las ventajas de los servicios en la nube se convierte en una necesidad importante, por lo que en el siguiente enlace podr\u00edas aprender, de manera muy econ\u00f3mica, AWS (Amazon Web Service) con la certificaci\u00f3n ya sea de <strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.373&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"En este sentido, conocer las ventajas de los servicios en la nube se convierte en una necesidad importante, por lo que en el siguiente enlace podr\u00edas aprender, de manera muy econ\u00f3mica, AWS (Amazon Web Service) con la certificaci\u00f3n ya sea de asociado o profesional: AWS Professional Certification (opens in a new tab)\">asociado <\/a><\/strong>o profesional: <strong><a rel=\"noreferrer noopener\" aria-label=\"En este sentido, conocer las ventajas de los servicios en la nube se convierte en una necesidad importante, por lo que en el siguiente enlace podr\u00edas aprender, de manera muy econ\u00f3mica, AWS (Amazon Web Service) con la certificaci\u00f3n ya sea de asociado o profesional: AWS Professional Certification (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.372&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\">AWS Professional Certification<\/a><\/strong><\/p>\n\n\n\n<p>Si por el contrario te interesa Azure, aqu\u00ed puedes ver de forma gratuita un webinar que te presenta todas las ventajas y como iniciar con <strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.462&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Si por el contrario te interesa Azure, aqu\u00ed puedes ver de forma gratuita un webinar que te presenta todas las ventajas y como iniciar con Azure (opens in a new tab)\">Azure<\/a><\/strong><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En miner\u00eda de datos, machine learning y\/o ciencia de datos, en lo que se refiere al an\u00e1lisis con \u00e1rboles, existen dos enfoques principales: los \u00e1rboles de decisi\u00f3n y los \u00e1rboles de regresi\u00f3n. En ambos casos los \u00e1rboles constituyen m\u00e9todos predictivos de segmentaci\u00f3n, conocidos como \u00e1rboles de clasificaci\u00f3n. Son particiones secuenciales del conjunto de datos realizadas para maximizar las diferencias de la variable dependiente dado que se realiza una divisi\u00f3n de los casos en grupos. A trav\u00e9s de diferentes \u00edndices y procedimientos estad\u00edsticos se determina la divisi\u00f3n m\u00e1s discriminante de entre los criterios seleccionados, aquella que permite diferenciar mejor a los distintos grupos del criterio base, con lo que se obtiene as\u00ed, una primera segmentaci\u00f3n. A partir de esa primera segmentaci\u00f3n, se realizan nuevas segmentaciones de cada uno los segmentos resultantes y as\u00ed sucesivamente hasta que el proceso finaliza con alguna norma estad\u00edstica. <\/p>\n","protected":false},"author":2,"featured_media":402,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[25,35,46],"tags":[66,67,68,69,57,58,56,50,70,59,51],"class_list":["post-382","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algoritmos","category-inteligencia-artificial","category-machine-learning","tag-analisis-de-datos","tag-arboles-de-clasificacion","tag-arboles-de-decision","tag-arboles-de-regresion","tag-ciencia-de-datos","tag-data-mining","tag-data-science","tag-machine-learning","tag-metodos-predictivos","tag-mineria-de-datos","tag-regresion"],"aioseo_notices":[],"author_meta":{"display_name":"Jacob Avila Camacho","author_link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/author\/jacob-avila\/"},"featured_img":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/destacada_arboles_regresion-300x165.png","featured_image_src":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/destacada_arboles_regresion.png","featured_image_src_square":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/destacada_arboles_regresion.png","author_info":{"display_name":"Jacob Avila Camacho","author_link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/author\/jacob-avila\/"},"coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/algoritmos\/\" class=\"advgb-post-tax-term\">Algoritmos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/\" class=\"advgb-post-tax-term\">Inteligencia Artificial<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Machine Learning<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Algoritmos<\/span>","<span class=\"advgb-post-tax-term\">Inteligencia Artificial<\/span>","<span class=\"advgb-post-tax-term\">Machine Learning<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">an\u00e1lisis de datos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">\u00e1rboles de clasificaci\u00f3n<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">\u00e1rboles de decisi\u00f3n<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">\u00e1rboles de regresi\u00f3n<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Ciencia de Datos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Data Mining<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Data Science<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">machine learning<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">m\u00e9todos predictivos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Miner\u00eda de Datos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">regresi\u00f3n<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">an\u00e1lisis de datos<\/span>","<span class=\"advgb-post-tax-term\">\u00e1rboles de clasificaci\u00f3n<\/span>","<span class=\"advgb-post-tax-term\">\u00e1rboles de decisi\u00f3n<\/span>","<span class=\"advgb-post-tax-term\">\u00e1rboles de regresi\u00f3n<\/span>","<span class=\"advgb-post-tax-term\">Ciencia de Datos<\/span>","<span class=\"advgb-post-tax-term\">Data Mining<\/span>","<span class=\"advgb-post-tax-term\">Data Science<\/span>","<span class=\"advgb-post-tax-term\">machine learning<\/span>","<span class=\"advgb-post-tax-term\">m\u00e9todos predictivos<\/span>","<span class=\"advgb-post-tax-term\">Miner\u00eda de Datos<\/span>","<span class=\"advgb-post-tax-term\">regresi\u00f3n<\/span>"]}},"comment_count":"4","relative_dates":{"created":"Publicado 8 a\u00f1os hace","modified":"Actualizado 6 a\u00f1os hace"},"absolute_dates":{"created":"Publicado el septiembre 15, 2018","modified":"Actualizado el marzo 27, 2020"},"absolute_dates_time":{"created":"Publicado el septiembre 15, 2018 10:52 pm","modified":"Actualizado el marzo 27, 2020 10:48 pm"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/comments?post=382"}],"version-history":[{"count":12,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/382\/revisions"}],"predecessor-version":[{"id":1446,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/382\/revisions\/1446"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/media\/402"}],"wp:attachment":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/media?parent=382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/categories?post=382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/tags?post=382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}