Це відео не доступне.
Перепрошуємо.

Random Forest (Bosque Aleatorio) para Clasificación con Python

Поділитися
Вставка
  • Опубліковано 14 сер 2024
  • Para citar este recurso educativo utiliza la siguiente referencia:
    Gutiérrez-García, J.O. [Código Máquina]. (2021, 22 de Noviembre). Random Forest (Bosque Aleatorio) para Clasificación con Python [Video]. UA-cam. [Incluye aquí la URL del video].
    ********************************************
    Para guiar tu aprendizaje, en este vínculo ( • Curso de Inteligencia ... ) se encuentra una guía secuencial para aprender:
    1. Programación Básica con Python;
    2. Manejo de Datos;
    3. Visualización de Datos;
    4. Análisis de Datos; y
    5. Aprendizaje de Máquina y Ciencia de Datos.
    ********************************************
    En este video se explica qué es y cómo crear un bosque aleatorio para clasificación utilizando Scikit-Learn de Python. Además, se incluye un mecanismo para visualizar el bosque aleatorio.
    Índice del Video:
    0:00 Introducción
    0:36 Bosque de árboles de decisión
    1:05 Contexto: Ingreso alto o bajo
    6:37 Bosque aleatorio
    12:08 Muestreo con reemplazo
    16:55 Selección aleatoria de características
    23:15 Creación del modelo
    38:12 Visualización del bosque aleatorio
    ⭐ Apoya a Código Máquina dando un Like, Comentando, Compartiendo o con un Super Gracias.
    ⭐ De la co-fundadora de Código Máquina, productos de cosmética natural SINHAKI:
    www.amazon.com...
    El código y datos del video están disponibles en GitHub github.com/Cod...
    #MachineLearning #AprendizajeAutomático #ScikitLearn #Python #AprendizajeDeMaquina #SkLearn

КОМЕНТАРІ • 68

  • @CodigoMaquina
    @CodigoMaquina  2 роки тому +5

    ⭐ Apoya a Código Máquina dando un Like, Comentando, Compartiendo o con un Super Gracias.
    ⭐ De la co-fundadora de Código Máquina, productos de cosmética natural SINHAKI:
    www.amazon.com.mx/stores/sinHaki/page/1BD34FBC-C0F9-44F5-AC69-520634334C61?ref_=ast_bln

  • @gabrielcornejo2206
    @gabrielcornejo2206 2 роки тому +5

    Estimado Octavio, siempre es un gusto ver tus videos. Eres muy claro para explicar los conceptos y eso lo agradezco enormemente. Otra cosa que se agradece es poder tener acceso a los códigos y datos usados en el video. Sigue con tu canal, muchas gracias.

    • @CodigoMaquina
      @CodigoMaquina  2 роки тому

      Se agradecen de corazón tus comentarios ¡Muchas Gracias!

  • @brendalopez8925
    @brendalopez8925 Рік тому +2

    te daria 1000000 de like y no seria suficiente porque la manera como expones los temas son claras y concisas... gracias por este gran aporte

    • @CodigoMaquina
      @CodigoMaquina  Рік тому

      Brenda muchas gracias por tus palabras. Es muy satisfactorio leer comentarios así :)

  • @luisadolfolopezvelasquez3376
    @luisadolfolopezvelasquez3376 10 місяців тому +2

    Excelente video, con explicaciones así, queda muy claro todo.

    • @CodigoMaquina
      @CodigoMaquina  7 місяців тому

      @luisadolfolopezvelasquez3376 feliz año!!!

  • @alberthpinco3543
    @alberthpinco3543 6 місяців тому

    Muchas gracias por tomarse el tiempo de crear este contenido de tan excelente calidad!!!!

  • @patotlax1
    @patotlax1 9 місяців тому +1

    Agradecimientos y mis respetos para usted Maestro!!

    • @CodigoMaquina
      @CodigoMaquina  7 місяців тому

      @patotlax1 mis respetos para ti que de forma autodidacta buscas ser mejor cada día.

  • @brunogianini4011
    @brunogianini4011 Рік тому +1

    Hola Octavio
    Tengo algunos comentarios
    1. Gracias por compartir tus conocimientos, haces de internet una herramienta muy poderosa.
    2. Tienen que hacer una estudio de neurociencia-pedagogia sobre tu forma de explicar, hay muchos videos con el mismo formato, pero tu tono de voz, gestos, y forma de explicar hacen que no pierda el foco en temas complejos. Sin dudas tenes un patrón que sería util comprender.
    3. Cuando consiga mis primeros trabajos en datos serán en gran parte a tus contenidos.
    Saludos desde Argentina.

    • @CodigoMaquina
      @CodigoMaquina  Рік тому

      Bruno sinceramente agradezco tus comentarios. Tus palabras nos hacen sentir que lo que hacemos tiene verdadero impacto. Muchas gracias!!!

  • @JorgeRodriguez-mp1mt
    @JorgeRodriguez-mp1mt 2 роки тому +2

    Gracias por compartir conocimiento.

    • @CodigoMaquina
      @CodigoMaquina  2 роки тому

      Muchas gracias por tu comentario. Para nosotros es una gran satisfacción :)

  • @MrGragito
    @MrGragito 8 місяців тому +1

    Muchas gracias

    • @CodigoMaquina
      @CodigoMaquina  7 місяців тому

      @MrGragito es un placer. Feliz año!!!

  • @javierderivero9299
    @javierderivero9299 2 роки тому +3

    Te felicito muy buen video....especialmente lo democratico que eres ya que bosques aleatorios es el voto de las masas

    • @CodigoMaquina
      @CodigoMaquina  2 роки тому

      Muchas gracias por tus comentarios y por seguir el contenido del canal :)

  • @franciscojavierimbachiriva3224

    Mi hermano excelente explicación. Eres un crack por más videos así !!!!!

    • @CodigoMaquina
      @CodigoMaquina  Рік тому

      Gracias por tomarte el tiempo de comentar. Saludos Francisco!!

  • @ceciliahidalgo2039
    @ceciliahidalgo2039 2 роки тому +2

    Excelente video. Muchas gracias!

    • @CodigoMaquina
      @CodigoMaquina  2 роки тому

      Gracias por interactuar y seguir el contenido del canal :)

  • @luckygons
    @luckygons 2 місяці тому

    Gracias buen hombre! Me han servido mucho!

  • @ehcr100
    @ehcr100 2 роки тому +10

    Hola Octavio. Primero que todo quiero mencionar que tienes una pedagogía que es muy escasa en estos días, y eso es importantísimo y que bueno que hay videos como los tuyos. Sobre todo en temas que tienen cierta complejidad. Soy relativamente nuevo creando modelos de clasificación en random forest, y aunque creo entender los puntos mas básicos, tengo aun dudas con respecto al muestreo. Si entiendo bien, el algoritmo de RF usa el bootstrapping para crear cada arbol. Con las muestras OOB se puede calcular el error de clasificación en cada arbol, si comprendo bien. Ahora, si yo decido usar como control la validación cruzada para mi modelo ¿que ocurre en el bootstrapping? ¿el algoritmo sigue aplicando este método en cada arbol? El asunto es que he leído que el error OOB puede estar sesgado para evaluar el modelo. Bueno, espero no molestar tanto. Mil gracias de antemano.

    • @CodigoMaquina
      @CodigoMaquina  2 роки тому +4

      Muchas gracias por tus comentarios y por la pregunta tan interesante. Sobre todo en foros he llegado a leer lo que comentas sobre OOB vs cross-validation para el caso de Random Forest. Podría dar mi punto de vista al respecto, pero en estos casos no hay nada mejor que citar a un experto de nivel mundial Leo Breiman:
      "In random forests, there is no need for cross-validation or a separate test set to get an unbiased estimate of the test set error. It is estimated internally, during the run, as follows:
      Each tree is constructed using a different bootstrap sample from the original data. About one-third of the cases are left out of the bootstrap sample and not used in the construction of the kth tree.
      Put each case left out in the construction of the kth tree down the kth tree to get a classification. In this way, a test set classification is obtained for each case in about one-third of the trees. At the end of the run, take j to be the class that got most of the votes every time case n was oob. The proportion of times that j is not equal to the true class of n averaged over all cases is the oob error estimate. This has proven to be unbiased in many tests."
      La información la extraje del siguiente vínculo: www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm

    • @ehcr100
      @ehcr100 2 роки тому +1

      @@CodigoMaquina Mil gracias Octavio!!! Ciertamente esta referencia es bastante solida y responde mi pregunta. Saludos

  • @danielapaza8364
    @danielapaza8364 2 роки тому +4

    Excelente !!!

  • @alvarorodriguezlasso
    @alvarorodriguezlasso 2 місяці тому

    Like, saludos desde Cali-Colombia

  • @edwardbrandt4868
    @edwardbrandt4868 Місяць тому

    Excelente video Octavio, ahora a tunear el modelo con CV y la definición de una matriz de confusión. ¿Es posible que puedas generar un caso considerando lo anterior mencionado, sobre todo con la inclusión con las métricas de la matriz de confusión?, muchas gracias.

  • @2u15A
    @2u15A 3 місяці тому

    excelente!

  • @brunogianini4011
    @brunogianini4011 Рік тому +1

    ¡Gracias!

    • @CodigoMaquina
      @CodigoMaquina  Рік тому

      Estimado Bruno: Muchas gracias por tus comentarios y por creer en este proyecto a la par de apoyarnos con un Super Gracias. Con este apoyo eres parte de este proyecto que busca un impacto social ¡MUCHAS GRACIAS!

  • @yadhfer
    @yadhfer 2 роки тому +2

    Excelente video, nuevo suscriptor, muy bien explicado más bien una duda, si tuviera una data que se trata de una encuesta osea un ejemplo:
    Pregunta 1
    Come carne: si o no
    Pregunta 2
    Se lava las manos: después de cada comida, 1 vez al día, 2 veces
    Pregunta 3
    Como sería en este caso por random forest, saludos desde Perú.

    • @CodigoMaquina
      @CodigoMaquina  2 роки тому +1

      Gracias por tus comentarios y por la pregunta. En teoría los árboles de decisión que componen al random forest, sí aceptan variables categóricas (como la encuesta que mencionas). Sin embargo, la implementación de sklearn no maneja directamente ese tipo de variables. No obstante, es muy fácil pre-procesar los datos para convertirlos en numéricos y poder crear un random forest o árboles de decisión. Te recomiendo echarle un ojo a dos videos que ya tenemos en el canal donde justo platico sobre manejo de variables categóricas para machine learning:
      ua-cam.com/video/cp7Uo5MSFSE/v-deo.html
      ua-cam.com/video/KUEsLv8EaVY/v-deo.html
      ¡Gracias por ver el canal!

    • @yadhfer
      @yadhfer 2 роки тому +1

      @@CodigoMaquina muchas gracias, lo miro

  • @julianwaksmann185
    @julianwaksmann185 2 роки тому +4

    Gran video!
    Cuando uno de pipelines?

    • @CodigoMaquina
      @CodigoMaquina  2 роки тому +2

      Gracias por la sugerencia y por tu comentario. Te comento que ya tenemos ese tema en la lista de espera. Primero meteremos unos cuantos videos más sobre fundamentos, y justo después, uno de pipelines :)

  • @ignaciomonetto6246
    @ignaciomonetto6246 Місяць тому

    Hola! Saludos desde Argentina. Muchas gracias por el video y muy bien explicado. Tengo una pregunta respecto a un caso que estoy analizando. No tengo en claro como encarar el problema ni con qué algoritmo. Tengo un data set de 200 chicos de la escuela que en cierto punto de su adolesencia se inclinan por practicar un determinado deporte (futbol, tenis, basket, etc). Dado este data set, quisiera predecir a qué deporte se inclinaría una nueva persona, teniendo en cuenta ciertas caracteristicas (edad, zona donde vive, estatura, peso, etc, etc.) y con qué probabilidad. Me ayudas? Saludos.

  • @gustavoboadalugo9880
    @gustavoboadalugo9880 Рік тому +1

    Me encanta como explicas Tengo una duda este modelo se puede usar para clasificar si un equipo de béisbol le gana al otro o no? Tomando en consideración las estadísticas importantes?

    • @CodigoMaquina
      @CodigoMaquina  Рік тому

      Gracias por tus comentarios. Con respecto a tu pregunta, efectivamente sí se podría y suena a un proyecto muy interesante. ¡Mucha suerte!

  • @Edu8a10
    @Edu8a10 6 місяців тому

    Excelente video. Una pregunta, cuál es el video que mencionas en donde se valida el modelo? Muchas gracias

  • @julianarturomejiaespitia4479
    @julianarturomejiaespitia4479 Рік тому +1

    Buenos dias, quisiera saber si yo pudiera usar el metodo predict, para usar el modelo bosque con una data de diferentes dimensiones en cuanto a cantidad de registros (pero igual numero de columnas), y al querer visualizar esto en una matriz de confusion como podria hacerlo, muchas gracias, excelente explicación.

    • @CodigoMaquina
      @CodigoMaquina  Рік тому +1

      Julian Arturo gracias por la pregunta. Al respecto, efectivamente es posible realizar el proceso que describes, de hecho, prácticamente lo único que se tendrían que incorporar es la matriz de confusión. Te dejo aquí un video que podría ayudarte a combinar ambas temáticas: ua-cam.com/video/uaGMk43XTOw/v-deo.html

  • @PedroChavez
    @PedroChavez Рік тому +1

    Me dejaste en el aire.... Despues de generar los arboles, que cosa sigue? Cual seria el modelo final de predicción? Es este entonces:
    bosque0RandomForrestClassifier(n_estimators=100,criterion='gini',max_features='sqrt',bootstrap=True,max_samples=2/3,oob_score=True).... gracias por la explicacion

    • @CodigoMaquina
      @CodigoMaquina  Рік тому

      Pedro muchas gracias por interactuar en el canal. Con respecto a tu pregunta, el modelo efectivamente está almacenado en la variable "bosque" y para utilizarlo se utiliza el método predict. Si quisieras ver el detalle de todos los árboles que conforma al bosque, se puede hacer, de hecho todos los árboles se encuentran en bosque.estimators_ (favor de ver el minuto 38:15)

  • @SR_M0L1NA
    @SR_M0L1NA 20 днів тому

    Maestro, tengo una duda. ¿Qué hay que hacer para que haya una o varias características fijas en la selección aleatoria de ellas?

  • @joanagil358
    @joanagil358 2 роки тому +2

    Gran vídeo y explicación! ¿Cómo podría posteriormente introducir nuevos datos sin saber el ingreso para que el lo clasifique usando los datos de entrenamiento?

    • @CodigoMaquina
      @CodigoMaquina  2 роки тому

      Muchas gracias por tus comentarios :) Con respecto a tu pregunta, para clasificar nuevas instancias se utiliza el método predict. En el caso del código presentado en el video sería bosque.predict([[50, 16, 1, 1, 40]]). Lo que recibe de entrada el método es la nueva instancia a clasificar correspondiente a ['edad', 'estudio', 'genero', 'tipo_trabajo', 'horas']

  • @RoronoaZoro-ux7qg
    @RoronoaZoro-ux7qg 2 роки тому +2

    Pregunta, donde o porque solo clasifica en ingreso alto o bajo, y en donde se puede cambiar para que sean mas categorías?

    • @CodigoMaquina
      @CodigoMaquina  2 роки тому +1

      Utilizó solo dos clases para simplificar la explicación. Sin embargo, utilizar más clases, por ejemplo, ingreso bajo, ingreso medio, e ingreso alto, es enteramente transparente. Prácticamente lo único que se necesitaría hacer para clasificar n clases, sería tener instancias etiquetadas con cada una de las clases que desees clasificar independientemente de cuántas sean. Gracias por interactuar en el canal :)

  • @wsxdre1
    @wsxdre1 Рік тому +1

    Excelente Canal, tengo una pregunta, un modelo de random forest se podria utilizar para por ejemplo saber cual sera el proximo entrenamiento que un estudiante va a tomar basandose en su historial de entrenamientos_

    • @CodigoMaquina
      @CodigoMaquina  Рік тому

      Osvaldo muchas gracias por la pregunta. Sin conocer a detalle el contexto, me da la impresión que hay un componente temporal en tus datos y de que se estaría utilizando el modelo de random forest para series de tiempo. Comúnmente random forest se utiliza para regresión y/o clasificación, sin embargo, sí hay trabajos que llegan a utilizar random forest con datos con características de series de tiempo. Tal vez te interesaría echarle un ojo al siguiente artículo:
      Moore, P. J., Lyons, T. J., Gallacher, J., & Alzheimer’s Disease Neuroimaging Initiative. (2019). Random forest prediction of Alzheimer’s disease using pairwise selection from time series data. PloS one, 14(2), e0211558.

  • @sebastiancastano7357
    @sebastiancastano7357 2 роки тому +2

    Gracias por la explicación, ¿hay alguna manera en python de extraer las reglas mas representativas del bosque?

    • @CodigoMaquina
      @CodigoMaquina  2 роки тому +1

      Gracias por esta pregunta tan interesante. De hecho, la respuesta a esa pregunta es un tema de investigación abierto. Algunos miden la relevancia de las reglas utilizando la frecuencia con la que aparece la regla en el bosque, sin embargo, como comento esto es un tema abierto. Aquí te paso una referencia en dado caso de que desees entrar en detalles: proceedings.mlr.press/v130/benard21a/benard21a.pdf

    • @sebastiancastano7357
      @sebastiancastano7357 2 роки тому

      @@CodigoMaquina muchas graciass, en r usé un paquete llamado intrees que utiliza dicha frecuencia para extraer las reglas más relevantes. En pyhton si he visto métodos pero no funciones como tal que lo hagan.

  • @digitalpartner3735
    @digitalpartner3735 2 роки тому +2

    Buenísimo video, pero yo tengo una duda si es aplicable a este caso: Un fenómeno es observado en 10 equipos diferentes, todos los días durante 2 años. Con las mismas condiciones se registran frecuencias diferentes, las mismas son registradas en una base excel diariamente. Distribución: Fecha, Eq1,......Eq8 y su freq correspondiente abajo. Es posible montar ese algoritmo para predecir las posibles frecuencias para cada 1 de los equipamentos, teniendo 732 registros anteriores? Si no es aplicable, podrías recomendar el algoritmo más indicado?. Muchas gracias.

    • @CodigoMaquina
      @CodigoMaquina  2 роки тому +1

      Muchas gracias por esta pregunta tan interesante. Al parecer tienes un caso muy especial. Sin conocer el tema a detalle pareciera que te convendría hacer uso de técnicas de series de tiempo "tradicionales" aunque hay muchísimas otras opciones y seguro se requerirá de mucho esfuerzo antes de encontrar la mejor técnica y modelo. Te recomiendo un libro gratuito de Hyndman & Athanasopoulos: otexts.com/fpp3/

    • @digitalpartner3735
      @digitalpartner3735 2 роки тому +1

      @@CodigoMaquina Muchísimas gracias por la recomendación, lo leeré. Muchos éxitos.

  • @HernanOtta
    @HernanOtta Рік тому +1

    hola necesito ayuda para hacer un codigo alguien me ayuda?

    • @CodigoMaquina
      @CodigoMaquina  11 місяців тому

      @HernanOtta gracias por ver nuestro canal y espero hayas obtenido el apoyo

    • @HernanOtta
      @HernanOtta 11 місяців тому

      @@CodigoMaquina no tuve apoyo

  • @jhojansolano4249
    @jhojansolano4249 Рік тому +1

    Muchas gracias

  • @mauriciosantiago4051
    @mauriciosantiago4051 2 роки тому +2

    Excelente !!!

    • @CodigoMaquina
      @CodigoMaquina  2 роки тому

      Muchas gracias por tu comentario y feliz año :)