CursosEmpresasBlogLiveConfPrecios

Análisis de correlación de los datos

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

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 min
  • 2
    Análisis de datos para tu primera regresión lineal

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

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

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

    14:01 min

Cómo funciona la regresión lineal

  • 4
    ¿Qué es la regresión lineal?

    ¿Qué es la regresión lineal?

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

    Cuándo utilizar un modelo de regresión lineal

    03:53 min
  • 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 min
  • 7
    Evaluando el modelo: R^2 y MSE

    Evaluando el modelo: R^2 y MSE

    04:49 min

Regresión lineal multivariable

  • 8
    Regresión lineal multivariable

    Regresión lineal multivariable

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

    Análisis de regresión multivariable

    14:20 min

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 min
  • 11
    Exploración y preparación de datos

    Exploración y preparación de datos

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

    Análisis de correlación de los datos

    Viendo ahora
  • 13
    Entrenamiento del modelo

    Entrenamiento del modelo

    10:40 min
  • 14
    Evaluando el modelo

    Evaluando el modelo

    13:20 min
  • 15
    Mejorando el modelo

    Mejorando el modelo

    13:59 min

Pasos siguientes

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

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

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

    Siguientes pasos en modelos de inteligencia artificial

    02:11 min
  • 18
    Comparte tu proyecto de regresión lineal y certifícate

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

Tomar examen

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

      Comentarios

      Sandy Paola Atencio Hernández

      Sandy Paola Atencio Hernández

      student•
      hace 4 años
        Abisai Antonio Madera

        Abisai Antonio Madera

        student•
        hace 4 años
        Ángel Samuel Suesca Ríos

        Ángel Samuel Suesca Ríos

        student•
        hace 4 años
      Alfonso Andres Zapata Guzman

      Alfonso Andres Zapata Guzman

      student•
      hace 3 años
        Alfonso Andres Zapata Guzman

        Alfonso Andres Zapata Guzman

        student•
        hace 3 años
        Alfonso Andres Zapata Guzman

        Alfonso Andres Zapata Guzman

        student•
        hace 3 años
      Christopher Brian Guzmán Martínez

      Christopher Brian Guzmán Martínez

      student•
      hace 2 años
        Jeison Andres Arias Camayo

        Jeison Andres Arias Camayo

        student•
        hace un año
        Olga Lisethe Castellanos Galeano

        Olga Lisethe Castellanos Galeano

        student•
        hace 8 meses
      Tomas Dale

      Tomas Dale

      student•
      hace 4 años
        Anuar Manuel Monterrosa Bedoya

        Anuar Manuel Monterrosa Bedoya

        student•
        hace 2 años
      Gustavo Adolfo Marquez Prieto

      Gustavo Adolfo Marquez Prieto

      student•
      hace 4 años
      FELIX  DAVID CORDOVA GARCIA

      FELIX DAVID CORDOVA GARCIA

      student•
      hace 4 años
        Luis Fernando Laris Pardo

        Luis Fernando Laris Pardo

        student•
        hace 4 años
      Juan R Rossano

      Juan R Rossano

      student•
      hace 4 años
        Luis Fernando Laris Pardo

        Luis Fernando Laris Pardo

        student•
        hace 4 años
      Tomas Dale

      Tomas Dale

      student•
      hace 4 años
      Brayam Esparza

      Brayam Esparza

      student•
      hace 3 años
      Mauricio Escobar

      Mauricio Escobar

      student•
      hace 4 años
      Bernardo Tamayo

      Bernardo Tamayo

      student•
      hace 4 años
        Bernardo Tamayo

        Bernardo Tamayo

        student•
        hace 4 años
        Fabian Villada

        Fabian Villada

        student•
        hace 3 años
      Jhon Freddy Tavera Blandon

      Jhon Freddy Tavera Blandon

      student•
      hace 3 años
      Antonio Demarco Bonino

      Antonio Demarco Bonino

      student•
      hace 2 años
      Enrique Jiménez Téllez

      Enrique Jiménez Téllez

      student•
      hace 2 años
      Jordan Anderson Huayhua Morales

      Jordan Anderson Huayhua Morales

      student•
      hace 2 años
      Thomas Gonzalez Rodrigues

      Thomas Gonzalez Rodrigues

      student•
      hace 4 años
        Diego Jurado

        Diego Jurado

        student•
        hace 3 años
      Romel Manrique

      Romel Manrique

      student•
      hace 4 años
      Alex Xiomar Rubio Lopez

      Alex Xiomar Rubio Lopez

      student•
      hace 13 días
      Andres Martin

      Andres Martin

      student•
      hace 7 meses
      Mario Alexander Vargas Celis

      Mario Alexander Vargas Celis

      student•
      hace 8 meses

      Hago un aporte, utilice estas dos lineas de código para poder sacar nuestras variables numéricas y categoricas por separado pensado en el futuro cuando nos encontremos con dataset que tengas muchas variables, espero que les sirva a todos:

      • creo una variable ++cols_numerica++ y en ella almaceno una lista comprimida que evaluara si mi columna es numerica o flotante

      • creo una variable ++cols_categorica++ y en ella almaceno una lista comprimida que evaluara si mi columna es de tipo object

      cols_numericas = [colname for colname in df.columns if df[colname].dtype in ['int64', 'float64']] cols_categoricas = [colname for colname in df.columns if df[colname].dtype in ['object']]

      Esta genial tu aporte. Aunque se podría mejorar al definir también la cantidad máxima de diferentes valores en las categorías que se desea encontrar. Por ejemplo hay casos en que una columna, es de tipo "Object" y que casi todo los valores son diferentes. Para este caso, podría mejorarse a:

      cols_categoricas = [colname for colname in df.columns if df[colname].nunique() < 10 and df[colname].dtype == 'object']

      Éste código analiza las columnas que son "Object" y que su categoría no exceda de valores únicos en 10. Puse el diez (10) solo por mencionar un ejemplo, pero uno puede definir la cantidad deseada.

      Saludos 😎😌

      Que bonito, thx

      Pobres fumadores, pagan mas.

      newplot (23).png

      Otra cosa es que si hay una correlacion ascendente entre la edad y pagar mas, entre fumadores y pagar mas hay aun mas correlacion, con el sexo de la persona no sucede casi, a nivel de aseguradora segun la grafica, se cobra lo mismo.

      newplot (24).png

      df.corr().style.background_gradient(cmap="coolwarm", axis=None)
      fig = px.imshow( df.corr(), color_continuous_scale=px.colors.diverging.RdBu[::-1], text_auto=True, zmin=-1, zmax=1, ) fig.show()

      Problemas con las variables dommies? puede que ésto te pueda ayudar:

      pd.get_dummies(df, columns=['sex', 'smoker', 'region'], drop_first=True, dtype='int64')

      Solo me aparecía True and False, gracias por el aporte.

      excelente aporte

      Luego de pasar a dummies encontre una alta correlacion entre fumar y cargos 0.79

      Por otra parte, no encontre correlacion entre region y fumador.

      Concuerdo, entre más fumas más caro le sales al sistema de salud T.T

      Otra forma de obtener la correlación:

      numeric_cols = ['age', 'bmi', 'children', 'charges'] sns.set(font_scale=1.5) # Configuracion del heatmap sns.heatmap(df[numeric_cols].corr(), cbar=True, annot=True, yticklabels=numeric_cols, xticklabels=numeric_cols) plt.show()

      Cuando se quiere llevar un modelo creado a producción en forma de APP por ejemplo, es necesario tener una columna de cada una de las variables categóricas, ya que por ejemplo si un usuario desea seleccionar un dato en específico para hacer una predicción .este debe en encontrarse dentro de los datos del modelos

      Ciertamente, si uno quisiera ser muy permisivo con el usuario tendría que darle la oportunidad de seleccionar las variables. Lo importante a notar es lo que mencionas, hay que tener bien en claro qué variables tiene tu modelo y que sea consistente con los datos que vas a entrenar.

      ¿Se puede codificar las valores categorias como numericas? Supongamos como region que tuvieramos 10 valores distintos, seria asignar un numero a cada valor (ejemplo northwest = 1, southeast = 2, southwest = 3) para crear una sola columna y no varias. ¿Que ventajas tendria un modo sobre otro?

      El problema con esta codificación es que la mayoría de los algoritmos tratan estos como valores numéricos y entonces puedes sesgar los resultados, imagina que el 49% de los datos son 1 y el 49% son 3 y el 1% es 2, entonces cuando el algoritmo haga las cuentas podría decir que la media es 2, pero esto no es así (además que no tiene mucho sentido hacer promedios con valores categóricos) En cambio lo que haces al crear columnas de 1s y 0s es Que los resultados se pueden ver como probabilidades, es decir, en la columna de southwest si el promedio es 0.6, quiere decir que southwest aparece en el 60% de todos los resultados. Yo es por esto y que he visto muchas veces en el primer método que mencionas, que ya no lo uso para mis algoritmos 😄 ¿Te queda alguna duda o comentario de este tema?

      La data age - charges presenta 3 posibles grupos, lo que haria es utilizar otro modelo de ML para estos dos valores y evaluar si se puede crear 3 grupos o si surgen mas grupos. Igual con age-bmi podria surgir agrupaciones que no se pueden apreciar

      los que pagan mas son fumadores

      FireShot Capture 017 - Proyecto_Final_RL_ML.ipynb - Colaboratory - colab.research.google.com.png

      viejitos

      FireShot Capture 016 - Proyecto_Final_RL_ML.ipynb - Colaboratory - colab.research.google.com.png
      gorditos
      FireShot Capture 018 - Proyecto_Final_RL_ML.ipynb - Colaboratory - colab.research.google.com.png

      Qué tal, en mi análisis he comparado:

      • Primero con un scatterplot la influencia que tiene bmi con charges

        • dividiéndolos entre fumadores y no fumadores
      • Despúes con un stripplot y un boxplot la influencia que podría tener sex entre la variable charges

        • también dividiéndolos entre fumadores y no fumadores

      En las líneas [magenta y cyan] de ambas gráficas están los valores promedio y mediana

      Captura de Pantalla 2022-09-01 a la(s) 19.09.49.png

      Hola,

      Para las variables categóricas, scikitlearn tiene un modulo que nos ayuda a volverlas numéricas, les dejo el link para q lo puedan revisar, al hacer esto nos permite usar la regresión con mayor facilidad

      no se porque no me dejó poner el link, lo dejo abajo

      https://www.geeksforgeeks.org/how-to-convert-categorical-string-data-into-numeric-in-python/

      gracias

      La codificación one-hot de las variables categóricas 'sex', 'smoker' y 'region'. Esto creará nuevas columnas numéricas en el DataFrame df_encoded correspondientes a las categorías de cada variable.

      4.png

      Me puse a experimentar con scatterplot e hice este experimento:

      colors = {True: 'blue', False: 'red'} df.plot(kind='scatter', x='age', y='bmi', s=32, alpha=.8, c=df['sex_male'].map(colors)) plt.gca().spines[['top', 'right']].set_visible(False) plt.show()
      correlation_matrix = df.corr()plt.figure(figsize=(10,8))sns.set(font_scale=1.5)sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt='.2f')plt.show()```js correlation_matrix = df.corr() plt.figure(figsize=(10,8)) sns.set(font_scale=1.5) sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt='.2f') plt.show()

      aqui esta mi aporte con todas las variables

      Cuando hago el get_dummies en lugar de 1 y 0 me aparece True y False ¿Por qué?

      hola comunidad

      Screenshot 2022-05-14 111010.png

      dividí la variable charges en 3 y después tome solo la primera parte y obtuve una mejor correlacion

      Que tan disciplinados todos!

      Otra forma de obtener las variables categóricas convertidas con scikit_learn.

      categorical_cols = ['sex','smoker','region'] ohe = OneHotEncoder(drop='first') ohe.fit(df[categorical_cols]) new = ohe.transform(df[categorical_cols]) df_one_hot_encoded = df.drop(columns=['sex', 'smoker', 'region']) df_one_hot_encoded[ohe.get_feature_names_out()] = new.toarray() df_one_hot_encoded.head(5)
      agebmichildrenchargessex_malesmoker_yesregion_northwestregion_southeastregion_southwest
      01927.9016884.901001
      11833.7711725.5510010
      2283334449.4610010
      33322.705021984.510100
      43228.8803866.8610100

      Utilizando y agregando las variables booleans al grafico heatmap y revisar las correlaciones

      veo una relacion entre los fumadores y los cargos que reciben

      El análisis de correlación es una técnica fundamental para comprender las relaciones entre variables numéricas en un conjunto de datos. Es especialmente útil antes de aplicar un modelo de regresión lineal, como el que estás construyendo para predecir los gastos médicos.

      Aquí tienes una guía paso a paso usando pandas, seaborn y matplotlib para un análisis de correlación claro y visual:

      ✅ Paso 1: Cargar los datos

      import pandas as pd

      # Por ejemplo, si usas el dataset de gastos médicos df = pd.read_csv('insurance.csv')

      ✅ Paso 2: Convertir variables categóricas (si es necesario)

      # Convertir columnas categóricas con one-hot encoding df_encoded = pd.get_dummies(df, drop_first=True)

      ✅ Paso 3: Calcular la matriz de correlación

      correlation_matrix = df_encoded.corr() print(correlation_matrix)

      ✅ Paso 4: Visualizar la matriz de correlación con un heatmap

      import seaborn as sns import matplotlib.pyplot as plt

      plt.figure(figsize=(12, 8)) sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=".2f") plt.title("Matriz de Correlación") plt.show()

      ✅ ¿Qué observar?

      • Busca correlaciones altas (cercanas a +1 o -1) entre la variable objetivo (charges) y las otras.
      • Por ejemplo:
        • Si bmi, smoker_yes, o age tienen una correlación fuerte con charges, son buenos candidatos como predictores.
      • Ten cuidado con multicolinealidad (cuando dos predictores están fuertemente correlacionados entre sí).