CursosEmpresasBlogLiveConfPrecios

Mejorando el modelo

Clase 15 de 18 • Curso de Regresión Lineal con Python y scikit-learn

Clase anteriorSiguiente clase

Contenido del curso

Introducción al curso
  • 1
    Tu primera regresión lineal con scikit-learn

    Tu primera regresión lineal con scikit-learn

    09:00
  • 2
    Análisis de datos para tu primera regresión lineal

    Análisis de datos para tu primera regresión lineal

    09:49
  • 3
    Entrenando un modelo de regresión lineal con scikit-learn

    Entrenando un modelo de regresión lineal con scikit-learn

    14:01
Cómo funciona la regresión lineal
  • 4
    ¿Qué es la regresión lineal?

    ¿Qué es la regresión lineal?

    04:26
  • 5
    Cuándo utilizar un modelo de regresión lineal

    Cuándo utilizar un modelo de regresión lineal

    03:53
  • 6
    Función de pérdida y optimización: mínimos cuadrados

    Función de pérdida y optimización: mínimos cuadrados

    06:10
  • 7
    Evaluando el modelo: R^2 y MSE

    Evaluando el modelo: R^2 y MSE

    04:49
  • quiz de Cómo funciona la regresión lineal

Regresión lineal multivariable
  • 8
    Regresión lineal multivariable

    Regresión lineal multivariable

    03:45
  • 9
    Análisis de regresión multivariable

    Análisis de regresión multivariable

    14:20
Proyecto práctico
  • 10
    Regresión lineal para predecir los gastos médicos de pacientes

    Regresión lineal para predecir los gastos médicos de pacientes

    04:15
  • 11
    Exploración y preparación de datos

    Exploración y preparación de datos

    07:49
  • 12
    Análisis de correlación de los datos

    Análisis de correlación de los datos

    09:57
  • 13
    Entrenamiento del modelo

    Entrenamiento del modelo

    10:40
  • 14
    Evaluando el modelo

    Evaluando el modelo

    13:20
  • 15
    Mejorando el modelo

    Mejorando el modelo

    13:59
  • quiz de Proyecto práctico

Pasos siguientes
  • 16
    ¿Qué hay más allá de la linealidad?

    ¿Qué hay más allá de la linealidad?

    04:26
  • 17
    Siguientes pasos en modelos de inteligencia artificial

    Siguientes pasos en modelos de inteligencia artificial

    02:11
  • 18

    Comparte tu proyecto de regresión lineal y certifícate

    00:00
    FELIX  DAVID CORDOVA GARCIA

    FELIX DAVID CORDOVA GARCIA

    student•
    hace 4 años

    Bueno, como estoy obsesionado con las redes neuronales, a este proyecto le metí tensorflow usando todas las columnas, sin eliminar ni crear ninguna nueva( además de las que se crearon con get_dummies) y me salió esto:

    1.PNG

    2.PNG
    3.PNG

    Nótese que este modelo predice mejor que el primer modelo creado, casi igual que el tercero pero no tan bien como el segundo

      Luis Fernando Laris Pardo

      Luis Fernando Laris Pardo

      student•
      hace 4 años

      :O quedó interesante tu gráfico de los residuales ¡gracias por compartir! Yo siendo curioso, me pregunto si beneficiaría al modelo que usaras dropout entre las capas :thinking:

      Tomas Dale

      Tomas Dale

      student•
      hace 4 años

      MUCHISIMAS GRACIAS, MUY BUEN APORTE, PREGUNTA, COMO SE PODRIA HACER UNA PREDICCION? NO LOGRO HACER EL COMANDO PARA QUE DEVUELVA UN 'Y' CON PREDICCION

    César Isaac González Naranjo

    César Isaac González Naranjo

    student•
    hace 4 años

    por qué edad al cuadrado ? para qué sirve ? , darle más peso a la edad ?

      Jose  Manuel Rivas Márquez

      Jose Manuel Rivas Márquez

      student•
      hace 4 años

      tengo la misma duda

      Sebastian Alejandro Gómez Ardila

      Sebastian Alejandro Gómez Ardila

      student•
      hace 4 años

      Pensé algo similar, pero cuando realizamos

      sc_y = StandardScaler().fit(y) y_train = sc_y.transform(y_train)

      los valores se normalizan, tengo la misma duda, si alguien puede ayudar a resolverla, genial

    Maria Linares

    Maria Linares

    student•
    hace 3 años

    Es una buena práctica crear una copia de tu data frame con .copy() para poder trabajar con modelos alternativos sin arruinar tus datos originales.

    César Isaac González Naranjo

    César Isaac González Naranjo

    student•
    hace 4 años

    Me pueden explicar un poco sobre la gráfica de residuales ? no entiendo para que es o como interpretarla :D

      Patricia Carolina Perez Felibert

      Patricia Carolina Perez Felibert

      student•
      hace 4 años

      tambien me quedo esa duda

      Saúl Regalado

      Saúl Regalado

      student•
      hace 4 años

      El modelo toma el valor 0.0 y cada punto es el valor real del dataset. Por lo que la "distancia" entre cada punto y la línea del 0 representa que tanto le faltó/sobró al modelo para predecir el valor real, en otras palabras el residuo

    Jhon Freddy Tavera Blandon

    Jhon Freddy Tavera Blandon

    student•
    hace 2 años

    Para mejorar el modelo de regresión lineal, puedes considerar las siguientes estrategias:

    Feature Engineering:

    • Analiza las variables existentes y busca formas de crear nuevas variables que puedan tener una mejor relación con la variable objetivo. Esto puede incluir transformaciones, combinación de variables o creación de variables dummy.

    Selección de características:

    • Evalúa la importancia y relevancia de cada variable en el modelo. Puedes utilizar técnicas como la correlación, la importancia de características o la eliminación recursiva de características para seleccionar las variables más significativas.

    Regularización:

    • Considera el uso de técnicas de regularización como la regresión ridge o la regresión lasso para reducir la complejidad del modelo y evitar el sobreajuste. Estas técnicas penalizan los coeficientes de las variables menos relevantes.

    Manejo de valores atípicos:

    • Identifica y maneja los valores atípicos en tus datos. Los valores atípicos pueden afectar negativamente el rendimiento del modelo y distorsionar los resultados. Puedes eliminarlos, imputarlos o utilizar técnicas robustas para minimizar su impacto.

    Validación cruzada:

    • Utiliza la validación cruzada para evaluar el rendimiento del modelo de manera más robusta. Esto te permite obtener estimaciones más precisas del rendimiento y asegurarte de que el modelo generaliza bien a nuevos datos.

    Regularización de hiperparámetros:

    • Ajusta los hiperparámetros del modelo, como la tasa de aprendizaje o el parámetro de regularización, utilizando técnicas como la búsqueda en cuadrícula o la optimización bayesiana. Esto te permite encontrar la configuración óptima que maximice el rendimiento del modelo.
    Ignacio Milesi

    Ignacio Milesi

    student•
    hace 2 años

    Se puede verificar la relacion bien marca entre un pasiente con sobrepeso y fumador con los costos:

    La grafica se puede obtener con:

    sns.scatterplot(data = df_second[['age', 'charges', 'sobrepeso*fumador' ]],

    x = "age",

    y = "charges",

    hue= 'sobrepeso*fumador')

    Yonatan Efraín Jara Boza

    Yonatan Efraín Jara Boza

    student•
    hace 3 años

    Buenas, sobre la tabla resumen, a partir de que se muestra en columnas el estadìstico t y el valor p, entiendo que esto esta relacionado con la parte inferencial de la estadìstica, en la que el 0.05 es por el nivel de significancia 5% y que cuando el p-value era menor que este 0.05 se rechazaba una hipótesis nula. La pregunta es: Cómo entender intuitivamente que al ver estos valores-p algunos me servirán y otros no sabiendo esta base estadística? Cuál es la hipótesis nula aquí si es que la hay? Qué quiere decir que una variable es igual a 0 (se menciona en 9:05)?

    Juan Jose Sepulveda Calderon

    Juan Jose Sepulveda Calderon

    student•
    hace 3 años

    ¿Con qué criterio se debe crear nuevas variables?

    Javier Arrieta

    Javier Arrieta

    student•
    hace 3 años

    Vale pero como puedo pasarle datos para que realice una prediccion? porque a mi pensar falta explicar eso, nose como pasarle los datos necesarios para que el modelo haga su trabajo y me haga una preccion, por ejemplo un paciente con 60 años, que fuma pero no es obeso, y ademas tiene 2 hijos

      Gerardo Mayel Fernández Alamilla

      Gerardo Mayel Fernández Alamilla

      student•
      hace 2 años

      muy buena pregunta, lo que mencionas sería poner a tu modelo en producción hay varias maneras, una es un batch, es decir podrías tener los nuevos datos que quieres predecir en un archivo cdv, cargarlos y hacer la predicción, el modelo puede exportarse como archivo .pkl , es decir el modelo entrenado, y después cargarlo com la librería job lib, una vez cargado puedes empezar a hacer predicciones en nuevos datos, es importante que esos nuevos datos tengan la misma estructura que los datos con los que entrenaste el modelo, te dejo un ejemplo de una nueva predicción considerando los datos que mencionaste en el.ejemplo y complete los otros datos que no mencionaste , este código puedes incorporarlo a tu notebook ara empezar a hacer nuevas predicciones en mi caso el segundo modelo entrenado lo llamé model_2

      model_2.predict([[60, 30.64, 2, 3600, 0, 1, 1, 0, 1, 0, 0]])

      se obtiene el resultado:

      array([[254.14142089]])

    Cristian Enrique Cuevas Mercado

    Cristian Enrique Cuevas Mercado

    student•
    hace 4 años

    aun así existe presencia de heterocedasticidad en los residuos

    Alejandro Collado Valverde

    Alejandro Collado Valverde

    student•
    hace 2 años

    Como es posible que con los mismos datos y el mismo codigo me esten dando valores distintos en los coeficientes?

    Andrés Fernández

    Andrés Fernández

    student•
    hace 4 años

    La mejor clase del curso!

    Ángel Samuel Suesca Ríos

    Ángel Samuel Suesca Ríos

    student•
    hace 3 años

    Es fundamental entender estadística inferencial para poder saber qué tan aceptable es cada uno de los coeficientes, y qué tan buena es su estimación.

    sebastián Giraldo Vargas

    sebastián Giraldo Vargas

    student•
    hace 3 años

    Por qué al utilizar metrics el r2 me da negativo, pero en el summary me lo muestra positivo?. afecta en algo?

      José Fernando Aguilar Arredondo

      José Fernando Aguilar Arredondo

      student•
      hace 3 años

      Hola Sebastián, podrías mostrarme tu código, por favor :) Y ver que es lo que paso.

    Andres Sanchez

    Andres Sanchez

    student•
    hace 2 años

    ¿Con qué criterio sé cuáles variables elevar al cuadrado y cuáles no?

    Yonatan Efraín Jara Boza

    Yonatan Efraín Jara Boza

    student•
    hace 3 años

    Otra cuestión, el contexto es que yo he estandarizado X_train y X_test ambos a partir de ajustar el modelo de estandarización a solo X_train (no a todo X), y no he estandarizado ni Y_train ni Y_test, esto por los aportes de mis compañeros y lecturas por foros sobre que practicas usa la comunidad. . Entonces he seguido los pasos explicados del video para mejorar el modelo y me resulta todo muy similar incluyendo que elijo las mismas variables para el modelo final, la diferencia es en el p-value del intercepto pues me da 0.000000 (no 0.85 o 0.66 como en el video). . Esto qué significado tiene? Cuál es el análisis que se le puede dar? . Por si acaso, también he probado con la ruta de estandarizaciones de variables del docente y me dió valores similares a los del video para todos los p-value, o sea parece que las estandarizaciones fueron las determinantes.

    Francisco Alberto Cervantes Rodríguez

    Francisco Alberto Cervantes Rodríguez

    student•
    hace 3 años

    Una vez hecho el segundo modelo (antes de eliminar las variables) decidí graficar la relación entre la Edad y el Cargo:

    output3.png
    Para esto usé el siguiente código:

    plt.scatter(X_test[:,5], y_test, label='test') plt.scatter(X_test[:,5], y_predict, label='predict') plt.xlabel('Edad normalizada') plt.ylabel('Cargo normalizado') plt.legend(loc=(1.02,0.5)) plt.show()

    Me sorprendió lo parecido que son los datos predecidos con los del test! Ver este tipo de cosas sólo me hacen querer continuar más en esto. Muchas gracias profesor!!

      Alberto Gonzalez

      Alberto Gonzalez

      student•
      hace 3 años

      Voy a probar el código que muestras en tu aporte, me ha interesado bastante! Esta área del análisis de lbig data con machine learning es bien interesante.

    Gerardo Mayel Fernández Alamilla

    Gerardo Mayel Fernández Alamilla

    student•
    hace 2 años

    por qué la edad al cuadrado podría ayudar al modelo:

    Podría haber una relación cuadrática entre la edad y la variable de respuesta. Por ejemplo, si se trata de un conjunto de datos de seguros, los costos podrían aumentar a un ritmo acelerado a medida que las personas envejecen debido a un mayor riesgo de problemas de salud

      Jeinfferson Bernal G

      Jeinfferson Bernal G

      student•
      hace 2 años

      Interesante conclusion!

    Daniel Felipe Niño Sanabria

    Daniel Felipe Niño Sanabria

    student•
    hace 2 años

    Me quedo la duda de como utilizar el modelo 2 ya en la practica con valores "x" que necesitemos utilizar, lo probé de la siguiente forma, aunque me sale un mensaje de advertencia, si alguno me puede corroborar que esa es la forma adecuada de hacerlo le agradezco:

    # Paso 1: Preparar los nuevos datos new_data = pd.DataFrame({ 'feature1': [1,1,0], # Reemplaza con los valores reales 'feature2': [1,0,1], 'feature3': [900,400,500], 'feature4': [2,0,1], # Agrega aquí las demás características }) # Paso 2: Aplicar el escalado utilizando el StandardScaler entrenado previamente new_data_scaled = sc_x.transform(new_data) # Paso 3: Realizar la predicción con el modelo entrenado predicted_scaled = model.predict(new_data_scaled).reshape(-1, 1) # Paso 4: Invertir la transformación de escalado para obtener las predicciones en su escala original predicted = sc_y.inverse_transform(predicted_scaled) # Las predicciones se encuentran ahora en la variable 'predicted' print(predicted)

    El mensaje de adverttencia que me genera es el siguiente: X has feature names, but StandardScaler was fitted without feature names.

    Marcos Ireneo Barbas

    Marcos Ireneo Barbas

    student•
    hace 3 años

    Les dejo algunos algunos features nuevos que realmente dan un buen aporte al modelo

    second_df['bmi2'] = second_df['bmi'] **2 second_df['age2'] = second_df['age'] **2 second_df['sobrepeso'] = (second_df['bmi'] >= 30).astype(int) second_df['sobrepeso_region_sudeste'] = second_df['sobrepeso'] * second_df['region_southeast'] second_df['sobrepeso_fumador'] = second_df['sobrepeso'] * second_df['smoker_yes'] second_df['fumador_con_riesgo'] = second_df['smoker_yes'] * (second_df['age'] > 34).astype(int)

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