[MÚSICA] [MÚSICA] [MÚSICA] Hola, en esa sección vamos a trabajar el concepto de bosque aleatorio o más conocido como random forest. Este método, este nuevo método que vamos a explicar consiste en otra metología para modelar, para seguir en el patrón que estamos trabajando de basándonos en un objetivo, construir un modelo y medir la incertidumbre del modelo, a fin de dar una respuesta en este mismo enmarco, pues random forest sería otro candidato a modelo. Del mismo modo que lo han sido hasta ahora los modelos Niager, los árboles de regresión, clasificación, etcétera. Bueno, así que como introducción más interesante cómo habíamos dicho anteriormente, pues un poco enmarcar a nivel histórico, como, en qué momento aparecieron los bosques aleatorios, esta técnica. Pues bueno, esta técnica como modelo aparece alrededor de 2001, es una de la más novedosas de las que vamos a ver. A pesar de eso es muy importante remarcar que los bosques aleatorios, este método de modelaje you se basa en conceptos que son Bagging y Bootstrap que eran muy anteriores, que no es realmente de conceptos clásicos, pero si que es una combinación acertada de estos métodos clásicos que han sido muy usados. Como modelo podemos pensar en el concepto de bosque como lo tenemos, como lo conocemos, que es un conjunto de árboles. Pensar en un bosque o un conjunto de árboles y el hecho de que sea aleatorio pues vamos a pensar, vamos a intentar en que va a consistir un árbol aleatorio, a fin de tener realmente un conjunto de árboles que sea realmente una representación aleatoria. El concepto, este modelo de bosques aleatorios, se puede aplicar tanto a problemas de clasificación, como a problemas de regresión. No obstante you no vamos a entrar en detalles, vamos a hablar en general y no vamos a quejarnos, no vamos a estar parando atención en el concepto si es de clasificación o de regresión, puesto que es un concepto o una metologia bastante compleja, así lo que vamos a intentar es que entendáis en que se fundamenta, más allá de entrar en los detalles de qué cálculos estamos haciendo exactamente en cada uno de los pasos del modelaje. Estos cálculos van a venir siempre basados en los mismos conceptos hechos hasta ahora. En base a un objetivo, tenemos una manera de cuantificar el error de una respuesta, de un modelo y esta medida de incertidumbre que asociemos o medida de error que utilicemos para optimizar o calibrar el modelo, pues va a seguir las mismas indicaciones que hemos utilizado hasta ahora, así que no vamos a entrar en detalles y del mismo modo como he dicho, tanto con los problemas de clasificación cómo los de regresión, requerirán perfilar el método de un modo u otro, pero la metología general será la misma que hemos visto hasta ahora. Fijémonos que si queremos hacer un bosque, si queremos realmente construir un bosque aleatorio, si queremos construir varios árboles, no podríamos utilizar la idea de árbol que hemos utilizado hasta ahora. Un árbol hasta ahora, resumiéndolo mucho, sería recordemos, muy importante tener en mente para entender bien este video, el concepto de árbol cómo lo hemos visto, un modelo con un árbol. Un conjunto de datos, con unas variables explicativas y una variable respuesta. Esto se mantiene, vamos a fijar por eso para entrar en detalles en que tenemos P, número de variables explicativas. Y, una variable respuesta y no vamos a entrar en detalles de si es tipo cualitativo o cuantitativo. También tendremos un tamaño de muestra, es decir la dimensión de nuestro conjunto de datos. Bueno en base a esto, recordando en que consiste hacer un árbol, era esencialmente tomar cada una de las variables explicativas, para cada una de ellas, mirábamos cada uno de los valores que tomaba y para cada selección de variables y de puntos de corte, proponíamos una partición de conjunto de datos. En base a esa partición, modelábamos la respuesta, medíamos el error y eso nos permitía hacer un listado de todas las posibles particiones, tengan en cuenta todas las variables y todos los valores que toman cada una de ellas y tomábamos como elección en cada paso recursivo del árbol, aquella partición que minimizaba el error. Este sería el esquema que habíamos utilizado con los árboles. Esto lo hacíamos en forma recursiva, cada vez que íbamos haciendo particiones binarias. Bueno pues esto es lo que tenemos que tener en mente de en cara a construir un bosque aleatorio. Pero ahora tenemos que pensar si yo repito este proceso, si volvemos a producir exactamente lo que acabamos de explicar como árbol, pues no va a hacer aleatorio, en el sentido de que no va a dar exactamente el mismo árbol, es decir yo cada vez que hago un árbol, el resultado es el mismo, siempre la mejor partición va a ser la misma. Entonces, ¿cómo podemos introducir aleatoriedad a este proceso? Pues esencialmente hay tres maneras de introducir aleatoriedad. Y en anteriores propuestas trabajando en random forest, exploraban cada una de estas por separado. La virtud de los random forest es que la vamos a aplicar las tres maneras que recomiendan simultaneamente. Entonces pensemos, ¿cómo podríamos añadir aleatoriedad? Es decir, ¿cómo podríamos obtener un árbol diferente de los anteriores pero proviniendo del mismo data set? Pues de tres maneras, la primera va a ser considerar en lugar de todos los casos, de los N casos solo un conjunto de ellos. Podríamos, es esa la manera de producir aleatoriedad. Si yo cada vez que hago un árbol, el punto de partida es un data set que es diferente al data set original, si es más pequeño o obtenido por Bootstrap. en el caso de obtenerlo por Bootstrap tendría exactamente el mismo tamaño pero representaría una fuente de variación respecto al data set original, pues el árbol que voy a producir será diferente. Así que esta you sería una manera de producir árboles aleatorios. Otra manera de producir los árboles aleatorios sería en cada paso de recursivo, cuando hacíamos cada paso recursivo del árbol, cuando hacíamos esa selección de la mejor variable con la mejor partición, cuando escogíamos cuál era la variable que tenía una mejor punto de corte para que la partición propuesta tuviera un error menor, pues podríamos hacer ese mismo paso pero ahora en lugar de tener en cuenta las P variables, pues podríamos tomar una selección aleatoria de estas variables en cada paso recursivo. Fijaros que solo con esto, you podría tener otra vez un árbol diferente cada vez. Cada vez que escoja un número de aleatorio de variables a tener en cuenta, cada vez que haga una partición, el resultado va a ser diferente, por tanto el árbol va a ser ligeramente diferente a los anteriores. Y por último ora manera de añadir aleatoriedad, sería añadir incertidumbre hasta medir el error. La manera de hacerlo es la que you hemos visto habitualmente. Una idea que hemos introducido con training text. Si el error que yo le otorgo a cada partición antes de tomar la mejor, teníamos varias variables para cada una de ellas y para cada uno de los valores, proponía una partición y le hacía corresponder un error. Si este error en lugar de medirlo en base al conjunto de datos de entrenamiento, lo hago en base a un conjunto de datos text, esto me produce una medida de error mejor y además aleatoria. Bueno pues estas tres variaciones son las que nos van a producir un bosque. Si queréis lo repasamos muy rápidamente en base al contexto de un árbol aleatorio y vemos cómo se construye. Pues repasemos. En un árbol aleatorio teníamos un data set. Ahora vamos a tener un data set aleatorio, puesto que lo vamos a obtener como un subconjunto de los datos originales o bien por Bootstrap o cualquier otro método que nos permita separar y producir aleatoriedad en cuanto a los casos observados. Por otro lado el tamaño de la muestra, tener en cuenta que en caso de utilizar Bootstrap, estaremos utilizando el mismo tamaño de muestra pero habrá habido reemplazamiento en la elección de estos casos. Esta manipulación del dato de entrenamiento de los datos que me va a producir el árbol, me produce un subset, un subconjunto de datos que me voy a guardar, que va a ser los datos tipo text. Me van a permitir calcular los errores con mayor precisión. Esto si fuera con el método Bootstrap lo llamaríamos auto fac. Por otro lado el tema de analizar el conjunto de variables, pues otro punto de aleatoriedad, una vez que tenemos el data set fijado aleatorio, entramos a fijar el número de variables que voy a seleccionar. Pues en lugar de las P, un conjunto menor de variables al azar. Para cada una ella ejecutaría la partición y para escoger cuál da el menor error, lo haré midiendo el error en el conjunto text, ese que me había reservado de datos que no estaba considerando para hacer las particiones. Y pero el resto es lo mismo, volveríamos escogeríamos la mejor partición y haríamos este algoritmo de forma repetitiva, hasta que decidamos parar el árbol. De este modo you hemos visto así en general en que consiste un bosque aleatorio. Cuál es la manera en que producimos realmente diferentes árboles que representan la misma información pero de un modo más aleatorio. Esta aleatoriedad tenemos que pensar que de algún modo nos está permitiendo que todas las variables tengan algún momento en un algún árbol en que puedan aparecer y por tanto tomar cierta importancia o al menos poder describir que rol podrían llegar a jugar dentro del data set con o sin presencia de las otras variables. En cuanto al diseño, fijémonos que antes empezar algo que debemos tener en cuenta, es cuántos árboles vamos a hacer en el bosque. Esto va a ser un meta parámetro, que es el número de bosque, perdón el número de árboles que tiene el bosque. Esto lo vamos a escoger de forma previa y del mismo modo también tenemos que escoger cuál s el número de variables que voy a escoger de forma aleatoria en cada paso, también va a ser un valor que será menor que P, pero debemos fijarlo de antemano. Así que. Bueno en función de si el modelo es de regresión o de clasificación, pues podemos pensar que el modelo random forest va a consistir en resumir la información de cada uno de los árboles. Por ejemplo en el caso de regresión como hemos visto hasta ahora, con ejemplos que atentaban al objetivo de modelar el promedio o el valor que esperamos observar, pues promediaríamos el valor que especifica cada una de los árboles y ese correspondería al valor que predice el modelo random forest. En cuanto a la incertidumbre con la misma idea, si estamos trabajando sobre errores que valoran cada árbol para el ejemplo que acabamos de ver que es el tema de regresión, pormediamos los errores. Así que es la idea un poco general para que tengamos un poco la visión general de que estamos haciendo cuando hacemos un bosque aleatorio. En cuanto a los meta parámetros entremos un poco más, fijémonos que en general hay que fijar el número de árboles que este número de árboles puede ser 100, 200, 500, pero eso lo que va a repercutir en un problema computacional en muchos casos, como la mayoría de metodologías que aparecen en este campo, tarde o temprano requieren complejidad computacional y suele ser ese exactamente cuál es el problema o dónde está la evolución de estos métodos. Otro meta parámetro es lo que hemos dicho el número de variables que escogemos en cada iteración, el número de estas variables explicativas, que bueno que por ejemplo en el caso de clasificación, pues raíz de P puede ser una buena aproximación y por último el criterio de parada. El criterio de parada cuando hacíamos un árbol podía ser un poco más sofisticado, podíamos entrar en más detalles o pensar incluso en hacer un poda del árbol, en el random forest no nos replanteamos sino que hacemos un criterio más general para todos los árboles. Bueno you para acabar una idea que tenemos con random forest, es uno de los primeros modelos que se empieza a hablar de caja negra. En general los métodos de aprendizaje se entienden como cajas negras porque no entendemos muy bien que están haciendo exactamente, con un árbol era muy evidente, no podíamos exigir a fin de entender porque otorgaba cierta predicción a cierto conjunto de variables proyectoras, pero con random forest seguir este defecto es muy difícil. O mejor dicho imposible, de esto normalmente decimos que son black box, cajas negras. Pues bueno random forest es uno de estos métodos, pero en contra partida también es cierto que la complejidad de este método, permite introducir dos conceptos que son muy relevantes en el mundo del aprendizaje. uno es la importancia, el concepto de importancia y el otro el concepto de proximidad. El concepto de importancia radica en el concepto de poder ver cuál es la importancia marginal de algún modo de cada una de las variables explicativas. Es decir del mismo que intentábamos que una variable explicativa entender cuál era el efecto en la variable respuesta, eso con los modelos más sencillos se pueden entender o tratar mejor, con una caja negra es muy difícil. Pero sí que el random forest nos permite, nos devuelve una medida que corresponde esencialmente a dada una variable explicativa entender o promediar en la mayoría de los casos, cuál es descenso del error en el árbol, cada vez que aparecen es decir en el bosque, en cada uno de los árboles, cuando aparece cierta variable aleatoria, ver que efecto produce en la medida del error. Pues si resumimos esto para cada uno de los árboles que hay en el bosque, nos permite medir de algún modo cuál es la importancia de esa variable. Y otro concepto importante que hemos introducido es la proximidad. Lo que nos mide el concepto de proximidad que mos mide random forest nos viene a decir algo así, nos viene a promediar o nos viene a representar cuando dos casos están realmente cercanos en el sentido de que aparecen en el mismo nodo terminal un elevado número de veces. Esencialmente esa es una proporción, cuando dos casos aparecen en el mismo nodo terminal, en una proporción muy elevadas de los árboles del bosque, entonces es que están más próximos y esto se traslada en una medida de similitud, y se puede tratar contécnicas habituales en este contexto. Bueno pues eso es todo, eta es la primera caja negra que hemos trabajado y a continuación la próxima semana veremos algunas técnicas que nos permitirán avanzar más en este contexto. [MÚSICA] [MÚSICA] [AUDIO_EN_BLANCO]