CursosEmpresasBlogLiveConfPrecios

Problemas a resolver: performance de modelo

Clase 5 de 8 • Laboratorio de Machine Learning: Optimización de Modelos

Clase anteriorSiguiente clase

Contenido del curso

Bienvenida al laboratorio
  • 1
    Instrucciones generales

    Instrucciones generales

    01:04
  • 2

    Laboratorios de ML: practica tus habilidades en proyectos profesionales

    00:55
Exploración de modelo de machine learning desde API
  • 3
    Problemas a resolver: documentación, carga y prueba de modelo

    Problemas a resolver: documentación, carga y prueba de modelo

    02:50
  • 4
    Troubleshooting: carga y prueba del modelo

    Troubleshooting: carga y prueba del modelo

    02:47
Mejora de performance de modelo de machine learning
  • 5
    Problemas a resolver: performance de modelo

    Problemas a resolver: performance de modelo

    01:06
  • 6
    Troubleshooting: performance de modelo

    Troubleshooting: performance de modelo

    01:42
  • 7
    Revisión de resultados

    Revisión de resultados

    00:42
Cierre del laboratorio
  • 8
    ¿Cómo continuar tu proyecto de machine learning?

    ¿Cómo continuar tu proyecto de machine learning?

    01:01
    Fernando Chavez Caracas

    Fernando Chavez Caracas

    student•
    hace 3 años

    Lo mejor que pude optimizar el modelo fue con los siguientes parametros:

    logreg_model = LogisticRegression(penalty='l1', solver='liblinear', random_state=42, C=0.01)

    Me dio las siguientes métricas:

    Accuracy: 0.8105 Precision: 0.7692307692307693 Recall: 0.05089058524173028 ROC AUC: 0.5235784600135223

    Yo creo que la regresión logística no es el modelo más eficiente en este caso en específico.

      Ricardo Alanis

      Ricardo Alanis

      teacher•
      hace 3 años

      Gracias por compartir!

    Felipe Sebastián Zepeda González

    Felipe Sebastián Zepeda González

    student•
    hace 2 años

    Recomiendo hacer un OneHot Encoding y un MinMax Scaling.

    # Importamos las librerías necesarias from sklearn.preprocessing import OneHotEncoder from sklearn.compose import make_column_transformer from sklearn.preprocessing import MinMaxScaler # Copiamos el dataset original data_df=data.copy() # Separamos la variable de respuesta de los datos que tenemos disponibles y = data_df.pop(data_df.columns[-1]) # Realizamos edl OneHotEncoder sobre las variables categóricas categorical_columns = data_df.select_dtypes(object).columns categorical_transformer = make_column_transformer( (OneHotEncoder(), categorical_columns), remainder="passthrough" ) transformed_df = ( pd.DataFrame( categorical_transformer.fit_transform(data_df), columns = categorical_transformer.get_feature_names_out(), index = data_df.index ) .rename_columns( function = lambda x: x.removeprefix("ordinalencoder__") ) .rename_columns( function = lambda x: x.removeprefix("onehotencoder__") ) .rename_columns( function = lambda x: x.removeprefix("remainder__") ) ) # Realizamos el MinMaxScaler para normalizar los datos scaler=MinMaxScaler() df_scaled=scaler.fit_transform(transformed_df) df_scaled=pd.DataFrame(df_scaled,columns=transformed_df.columns) df_scaled.head()

    Una vez resuelto aquello, implementé una red neuronal sobre el modelo original. Usé esta arquitectura:

    arch.png

    Y los resultados fueron los siguientes: 'accuracy': 0.858, 'precision': 0.6981818181818182, 'recall': 0.48854961832061067, 'f1score': 0.5748502994011976.

    conf_matrix.png

    Creo que podría encontrarse una mejor arquitectura y/o enriquecer más los datos. Cualquier comentario se agradece.

      Ricardo Alanis

      Ricardo Alanis

      teacher•
      hace 2 años

      Gracias por compartir!

      Julián Cárdenas

      Julián Cárdenas

      student•
      hace 2 años

      Wow que bueen aporte!

    Angelo Augusto Gallici Aquino

    Angelo Augusto Gallici Aquino

    student•
    hace 9 meses

    Bueno el primer cambio que implemente es crear una nueva columna de tipo binaria con 1 o 0 para saber si una persona tenia balance cero o no, esto debido que al graficar dichos datos previamente, habia una gran cantidad de personas con balance cero.# Eliminar las filas que contienen valores nulosdata_cleaned = data.dropna()# Aplicar One Hot Encodingdata_encoded = pd.get_dummies(data, drop_first=True)# Vamos a crear un modelo de regresion logisticafrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LogisticRegression # Convertir las columnas booleanas a 1 y 0data_encoded = data_encoded.astype(int) # Verificar cuántas filas y columnas quedan después de la limpiezaprint(data_cleaned.shape)

    # Crear una nueva columna que indica si el cliente tiene saldo o no data['HasBalance'] = (data['Balance'] > 0).astype(int) # Mostrar la nueva columna para verificar print(data[['Balance', 'HasBalance']].head()) ```Luego elimine filas con valores nulos ```js # Eliminar las filas que contienen valores nulos data_cleaned = data.dropna() # Verificar cuántas filas y columnas quedan después de la limpieza print(data_cleaned.shape)

    Siguiente a esto hice un One hot encoding

    # Aplicar One Hot Encoding data_encoded = pd.get_dummies(data, drop_first=True) # Convertir las columnas booleanas a 1 y 0 data_encoded = data_encoded.astype(int) ```Viene la parte de crear el modelo y aca utilize XgeBoost como variante de arboles de decision ```js # Vamos a crear un modelo de regresion logistica from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression # Generar los datos para poder separar la variable de respuesta de los datos que tenemos disponibles X = data_encoded.copy() # Usamos los datos procesados (con One Hot Encoding) y = X.pop('Exited') # Extraemos la columna 'Exited' como variable objetivo # Separar los datos en datos de entrenamiento y testing X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33, random_state=42) import xgboost as xgb from sklearn.metrics import confusion_matrix, classification_report # Crear el modelo de XGBoost clf_xgb = xgb.XGBClassifier(random_state=0, n_estimators=100, learning_rate=0.05, scale_pos_weight=2) # Entrenar el modelo clf_xgb.fit(X_train, y_train) # Predecir y_pred = clf_xgb.predict(X_test) # Evaluar print(confusion_matrix(y_test, y_pred)) print(classification_report(y_test, y_pred)) ```El resultado obtenido es el siguiente ![](https://static.platzi.com/media/user_upload/image-1ac3c506-befc-4122-b253-7858ec327863.jpg)
      Angelo Augusto Gallici Aquino

      Angelo Augusto Gallici Aquino

      student•
      hace 9 meses

      [[2436 221] [ 248 395]] precision recall f1-score support

      0 0.91 0.92 0.91 2657 1 0.64 0.61 0.63 643

      accuracy 0.86 3300 macro avg 0.77 0.77 0.77 3300 weighted avg 0.86 0.86 0.86 3300

    Antonio Demarco Bonino

    Antonio Demarco Bonino

    student•
    hace un año

    Estos son mis números del modelo:

    Rodrigo Martinez

    Rodrigo Martinez

    student•
    hace un año

    Hice un poco de trampa y ocupe autosklearn para tener un clasificador base y poder seguir mejorandolo o con mas datos porque estan desbalanceados o cambiarlo por una arquitectura de red neuronal. Ahora obtuve los siguientes metricas con mi ensamble de metodos:

    Diego Alexander Chero Olazabal

    Diego Alexander Chero Olazabal

    student•
    hace 8 meses

    Teniendo en cuenta que la variable target se encuentra desbalanceada, procedi a una SMOTEEN de imblearm para balancear los datos submuestreando la clase dominante y sobremuestreando la clase minoritaria. Luego procedi a realizar una validacion de estos nuevos datos para verificar que los datos sobremuestreados sean representativos de mi data original. Para ello use graficas de distribucion en todas mis variables. Una veza comprobado esto procedi a probar con algunos modelos como RandomForestClassifeer, XGBoost y ExtreTree. Realice varios entrenamientos usando la data original y la data balanceada para los modelos que usea, y ya que no se pueden contrastar usando la metrica de acuracy como referencia pues algunos modelos presentan una cantidad de datos de testeo diferentes por el sobremuestreo, opte por una la metria de AUC_ROC y AUC_PR para medir la adpatbilidad de mis modelos a nuevos datos. Teniendo los siguientes resultados:

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads