Cómo crear Clasificadores de Machine Learning ante Clases Desbalanceadas asignando Pesos con Python

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 ก.ค. 2024
  • Para citar este recurso educativo utiliza la siguiente referencia:
    Gutiérrez-García, J.O. [Código Máquina]. (2022, 24 de Enero). Cómo crear Clasificadores de Machine Learning ante Clases Desbalanceadas asignando Pesos con Python [Video]. TH-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.
    ********************************************
    Ante una distribución desbalanceada de clases, crea clasificadores robustos utilizando el mecanismo de asignación de pesos. Este video incluye una explicación del problema de clases desbalanceadas (o datos desbalanceados) y explica cómo crear clasificadores robustos pese a ello. Además, se presenta y programa un ejemplo utilizando datos de cáncer de mama y la librería de Scikit-Learn de Python.
    Índice del Video:
    0:00 Introducción al problema
    3:11 Librerías y código de soporte
    6:13 Datos de cáncer de mama
    11:32 Técnica de asignación de pesos
    Apoya a Código Máquina dando un Like, con un Super Gracias o visitando nuestra tienda en:
    / shop
    El código del video está disponible en GitHub github.com/CodigoMaquina/code
    #DataScience #AprendizajeAutomático #MachineLearning #AprendizajeDeMaquina #ScikitLearn #SkLearn #CienciaDeDatos

ความคิดเห็น • 31

  • @CodigoMaquina
    @CodigoMaquina  2 ปีที่แล้ว

    Apoya a Código Máquina dando un Like, con un Super Gracias o visitando nuestra tienda en:
    facebook.com/C0d1g0Maqu1na/shop

  • @NewOrden12
    @NewOrden12 9 หลายเดือนก่อน +3

    Probablemente el mejor canal en español para ML, gracias!!!

    • @CodigoMaquina
      @CodigoMaquina  9 หลายเดือนก่อน +2

      @NewOrden12 te agradezco mucho tus palabras.
      Dando like, comentando y/o compartiendo el video, ayudas a que este contenido llegue a más personas ¡¡¡GRACIAS!!!

  • @pythonbrothersandfamily
    @pythonbrothersandfamily ปีที่แล้ว +1

    Bien explicado, muchas gracias

    • @CodigoMaquina
      @CodigoMaquina  ปีที่แล้ว

      ¡Muchas gracias a los Python Brothers! ¡Feliz Año!

  • @guillermosilva1527
    @guillermosilva1527 2 ปีที่แล้ว +2

    Geniaal! Espectacular contenido.

    • @CodigoMaquina
      @CodigoMaquina  2 ปีที่แล้ว

      ¡Muchas gracias por tus comentarios! :)

  • @victord8866
    @victord8866 2 ปีที่แล้ว +4

    Buen detalle lo de explicar cómo funciona class_weight='balanced'.
    Lo he usado varias veces como una black box, pero nunca me pregunté qué peso exactamente tenían las clases.

    • @CodigoMaquina
      @CodigoMaquina  2 ปีที่แล้ว

      Nos da gusto saber que nuestros videos aportan aunque sea un poquito. Muchas gracias por comentar y por ver el canal :)

  • @nancynardelli5466
    @nancynardelli5466 หลายเดือนก่อน

    Gracias!

  • @victordeltoro1495
    @victordeltoro1495 ปีที่แล้ว +2

    Simplemente espectacular el vídeo, felcitaciones. Me aportó un montón. Pensaba que en los casos de clases desbalanceadas solo se podia usar la métrica Kappa de Cohen.

    • @CodigoMaquina
      @CodigoMaquina  ปีที่แล้ว +1

      Muchas gracias por tus comentarios. Por cierto, todavía tengo pendiente sacar otro video para crear modelos con clases desbalanceadas. Ahora sí que próximamente :) Gracias por seguir el contenido del canal.

  • @mejia414
    @mejia414 2 ปีที่แล้ว +2

    Gracias excelente material señor

    • @CodigoMaquina
      @CodigoMaquina  2 ปีที่แล้ว

      Muchas gracias por su comentario :)

  • @juliojaimesrivera5540
    @juliojaimesrivera5540 4 หลายเดือนก่อน

    Muy buena la enseñanza Mr. Octavio. Por favor si podrías facilitar la página de dónde se extrae la data original de Wisconsin, gracias.

  • @juanpablocruz6225
    @juanpablocruz6225 2 ปีที่แล้ว +2

    La explicación es bastante clara, sin embargo tal vez se podría analizar casos con un mayor desbalance, por decir 2% de los casos en la clase de interés, saludos.

    • @CodigoMaquina
      @CodigoMaquina  2 ปีที่แล้ว +1

      Gracias por la sugerencia. Todavía vamos a hacer otro video sobre datos desbalanceados pero ahora utilizando muestreo. Intentaré encontrar un data set interesante con datos reales que presente el desbalance pero de forma más grave. Gracias por comentar y por ver el canal :)

  • @VictorHugoAngel
    @VictorHugoAngel 2 ปีที่แล้ว +2

    Muy buen video, muchas gracias. Tienes algun video sobre el metodo Smote?

    • @CodigoMaquina
      @CodigoMaquina  2 ปีที่แล้ว +1

      Lamentablemente no, pero ya lo anoté en la lista de temas por incluir al canal. Gracias por la sugerencia.

  • @tomasscopelliti9362
    @tomasscopelliti9362 ปีที่แล้ว +1

    Muchas gracias Octavio! Excelente material, como siempre. Una consulta, esto entraría dentro de la limpieza de datos o seria parte de la preparación? Muchas gracias por todo!!! Un abzo grande.

    • @CodigoMaquina
      @CodigoMaquina  ปีที่แล้ว

      Tomas gracias por tus comentarios. Con respecto a tu pregunta, el tema tratado en el video sería posterior a la limpieza de los datos. Comúnmente, primero se limpian los datos y de ahí se crean modelos o se realiza algún tipo de análisis. Gracias por seguir el contenido del canal :)

  • @cristianlikez
    @cristianlikez 2 ปีที่แล้ว +2

    De nuevo muchas gracias por tan valiosa información, tengo una duda. Para utilizar Machine learning de manera profesional es recomendable utilizar jupyter o existe algún IDE más recomendable, de antemano muchas gracias..

    • @CodigoMaquina
      @CodigoMaquina  2 ปีที่แล้ว +1

      Muchas gracias por tus comentarios. Con respecto a tu pregunta: hay varias herramientas profesionales. Una es efectivamente las libretas de jupyter, también están las Colab Notebooks de Google (estas tienen la ventaja de que puedes entrenar tus modelos en la nube de Google bajo ciertas restricciones). Otras opciones populares son PyCharm y VSCode. Muchas veces se utilizan todas a la par, por ejemplo se utiliza jupyter notebooks para exploración y análisis de datos e inclusive creación preliminar de modelos y posteriormente migras el código a módulos que trabajas en otras IDEs, por ejemplo PyCharm. Yo te recomendaría familiarizarte con Colab Notebooks (muy similares a Jupyter Notebooks) y después con VSCode (por simple cuestión de gustos, prefiero VSCode sobre PyCharm pero ambas son buenas). Posteriormente subiremos un video sobre Colab Notebooks, justo antes de entrar a los videos de redes neuronales. Gracias por ver el canal :)

  • @nachokabrera5442
    @nachokabrera5442 ปีที่แล้ว +1

    Buenas, excelente video, siempre bien explicado, pero me gustaría saber si es aplicable para KNN o árbol de decisión (Para clasificación) y si no lo es, que podría hacer para trabajar el desbalance de clases.

    • @CodigoMaquina
      @CodigoMaquina  ปีที่แล้ว

      Estimado Nacho muchas gracias por tu comentario y por la pregunta. Este tipo de técnicas se puede utilizar para cualquier tipo de clasificador incluyendo los árboles de decisión.

  • @wolfanrodriguez4928
    @wolfanrodriguez4928 2 ปีที่แล้ว +2

    hola, que buenos videos, soy un aprendiz de ciencia de datos, y quisiera aprender todo lo que pueda de esto, siempre veo que la herramienta principal es python, pero en algunas ocasiones veo que usan otras herramientas, por ejemplo hace poco vi la herramienta tableau, y tambien el sas studio, tambien conozco el rapidminer, ; entonces no termina uno de conocer bien una herramienta cuando de pronto nos muestran y aconsejan otra, como debe uno sobrellevar todo esto, depronto es una pregunta como de opinión, pero qué herramientas debería conocer uno como para que a la hora de buscar un trabajo tenga mas opciones.

    • @CodigoMaquina
      @CodigoMaquina  2 ปีที่แล้ว

      Muchas gracias por tus comentarios y por la confianza con la pregunta. Ciertamente, en general, en el área de TI, hay muchas herramientas y constantemente las tendencias de uso cambian. Esto en algunas ocasiones podría ser abrumador, aunque también es parte de la belleza del área. Mi recomendación es que te enfoques en los fundamentos, por ejemplo, los fundamentos de estadística. Las herramientas, lenguajes y tendencias van y vienen, pero ese conocimiento permanece. Así tendrás un núcleo sólido sobre el cuál podrás agregar el uso de ciertas herramientas dependiendo del contexto laboral donde te desenvuelvas. Mucha suerte en tu camino.

  • @andresbetancur3469
    @andresbetancur3469 9 หลายเดือนก่อน +1

    Hola Código Máquina, tengo una duda aunque no exactamente del video pero sí me surgió a raiz de este. Supongamos que quiero hacer un clasificador y una de mis features son categorías que también presentan un sesgo como el que vimos aquí para la clase. Yo siempre las descarto porque no me aportan información, pero si quisiera usarlas para el modelo se puede hacer algo como un balanceo de este estilo o definitivamente no se toman. Es decir, quiero saber qué hacer cuando hay un desbalance en mis features y no en mi target. Te agradezco mucho¡!

    • @CodigoMaquina
      @CodigoMaquina  6 หลายเดือนก่อน

      @andresbetancur3469 gracias por la pregunta. Ciertamente, en ocasiones se descartan atributos categóricos donde predomina considerablemente un valor dado que ciertamente en ocasiones no aportan información. Sin embargo, antes de eliminarlas, por ejemplo, podría valer la pena explorar su "información mutua" (favor de ver el siguiente video th-cam.com/video/37b9eyl4Q1c/w-d-xo.html) o evaluar la utilidad del atributo creando un clasificador con y sin el atributo categórico.

  • @matiashernandez3913
    @matiashernandez3913 ปีที่แล้ว +1

    Hola Octavio! excelente video!!
    Sabes que me esta dando error la parte de:
    # 30 características: radio, textura, area, entre otros
    datos = info[:-1].T
    # 0 : SANO, 1 : CÁNCER
    clase = info[-1]
    Segun parece ya no se llama de esa forma a la ultima columna para asignarselo al dataframe de la clase...
    KeyError: -1
    Saludos!!

    • @CodigoMaquina
      @CodigoMaquina  ปีที่แล้ว +1

      Hola @matiashernandez3913 gracias por seguir el contenido del canal y por la pregunta. Le eche un ojo al código y lo re-ejecuté con la última versión de python y creo que no es cuestión de algún problema derivado de depreciación. Creo que podría ser un problema de "encoding" del archivo que se está utilizando. Esto aún podría pasar si se está utilizando el mismo archivo de nuestro repositorio. De hecho, pasa seguido cuando se abre el archivo en Mac OS que utiliza otros encondings diferentes a Windows. En realidad podría ser eso y/o otras 100 cosas, lamento no poder brindar más ayuda con el contexto provisto.