CursosEmpresasBlogLiveConfPrecios

Análisis de correlación de los datos

Clase 12 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 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

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
        Sandy Paola Atencio Hernández

        Sandy Paola Atencio Hernández

        student•
        hace 4 años

        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']]
          Abisai Antonio Madera

          Abisai Antonio Madera

          student•
          hace 4 años

          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 😎😌

          Ángel Samuel Suesca Ríos

          Ángel Samuel Suesca Ríos

          student•
          hace 4 años

          Que bonito, thx

        Alfonso Andres Zapata Guzman

        Alfonso Andres Zapata Guzman

        student•
        hace 3 años

        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

          Alfonso Andres Zapata Guzman

          Alfonso Andres Zapata Guzman

          student•
          hace 3 años
          df.corr().style.background_gradient(cmap="coolwarm", axis=None)
          Alfonso Andres Zapata Guzman

          Alfonso Andres Zapata Guzman

          student•
          hace 3 años
          fig = px.imshow( df.corr(), color_continuous_scale=px.colors.diverging.RdBu[::-1], text_auto=True, zmin=-1, zmax=1, ) fig.show()
        Christopher Brian Guzmán Martínez

        Christopher Brian Guzmán Martínez

        student•
        hace 2 años

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

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

          Jeison Andres Arias Camayo

          student•
          hace un año

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

          Olga Lisethe Castellanos Galeano

          Olga Lisethe Castellanos Galeano

          student•
          hace 7 meses

          excelente aporte

        Tomas Dale

        Tomas Dale

        student•
        hace 4 años

        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.

          Anuar Manuel Monterrosa Bedoya

          Anuar Manuel Monterrosa Bedoya

          student•
          hace 2 años

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

        Gustavo Adolfo Marquez Prieto

        Gustavo Adolfo Marquez Prieto

        student•
        hace 4 años

        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()
        FELIX  DAVID CORDOVA GARCIA

        FELIX DAVID CORDOVA GARCIA

        student•
        hace 4 años

        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

          Luis Fernando Laris Pardo

          Luis Fernando Laris Pardo

          student•
          hace 4 años

          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.

        Juan R Rossano

        Juan R Rossano

        student•
        hace 4 años

        ¿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?

          Luis Fernando Laris Pardo

          Luis Fernando Laris Pardo

          student•
          hace 4 años

          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?

        Tomas Dale

        Tomas Dale

        student•
        hace 4 años

        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

        Brayam Esparza

        Brayam Esparza

        student•
        hace 3 años

        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
        Mauricio Escobar

        Mauricio Escobar

        student•
        hace 3 años

        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
        Bernardo Tamayo

        Bernardo Tamayo

        student•
        hace 4 años

        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

          Bernardo Tamayo

          Bernardo Tamayo

          student•
          hace 4 años

          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/

          Fabian Villada

          Fabian Villada

          student•
          hace 2 años

          gracias

        Jhon Freddy Tavera Blandon

        Jhon Freddy Tavera Blandon

        student•
        hace 3 años

        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

        Antonio Demarco Bonino

        Antonio Demarco Bonino

        student•
        hace un año

        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()
        Enrique Jiménez Téllez

        Enrique Jiménez Téllez

        student•
        hace 2 años
        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

        Jordan Anderson Huayhua Morales

        Jordan Anderson Huayhua Morales

        student•
        hace 2 años

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

        Thomas Gonzalez Rodrigues

        Thomas Gonzalez Rodrigues

        student•
        hace 4 años

        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

          Diego Jurado

          Diego Jurado

          student•
          hace 3 años

          Que tan disciplinados todos!

        Romel Manrique

        Romel Manrique

        student•
        hace 4 años

        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
        Andres Martin

        Andres Martin

        student•
        hace 5 meses

        veo una relacion entre los fumadores y los cargos que reciben

        Mario Alexander Vargas Celis

        Mario Alexander Vargas Celis

        student•
        hace 7 meses

        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í).
        david jurado

        david jurado

        student•
        hace 2 años

        Hola, no tengo mucho conocimiento, pero habrá una mejor manera de pasar de categóricas a numéricas que no sea con get_dummies? es que veo que crea muchas variables y si fuesen más opciones en regiones serian demasiadas, no hay una mejor?

          Rodrigo Martinez

          Rodrigo Martinez

          student•
          hace un año

          La forma correcta de hacer OneHotEncoding en este caso: from sklearn.preprocessing import OneHotEncoder categorical\_cols = df.select\_dtypes(include=\['object']).columnsencoder = OneHotEncoder(sparse\_output=False, drop='first') encoded\_array = encoder.fit\_transform(df\[categorical\_cols])encoded\_df = pd.DataFrame( encoded\_array, columns=encoder.get\_feature\_names\_out(categorical\_cols)) df\_final = pd.concat(\[df.drop(categorical\_cols, axis=1), encoded\_df], axis=1) df\_final.head()