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
  • 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
    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 3 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 un año

    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 4 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 3 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 3 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 2 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 un año
    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 2 años

      Que tan disciplinados todos!

    Romel Manrique

    Romel Manrique

    student•
    hace 3 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 3 meses

    veo una relacion entre los fumadores y los cargos que reciben

    Mario Alexander Vargas Celis

    Mario Alexander Vargas Celis

    student•
    hace 4 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()

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