search
CursosEmpresasBlogLiveConfPrecios
Curso de Regresión Lineal con Python y scikit-learn

Análisis de correlación de los datos

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

schoolTomar examen

Análisis de correlación de los datos

Platzi DayPlatzi Day

Todos los cursos GRATIS

Se acaba en:
00díasd:00hrsh:00minm:00segs

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

Comentarios34

Sandy Paola Atencio Hernández

Sandy Paola Atencio Hernández

Estudiante
Hace 5 años
    Abisai Antonio Madera

    Abisai Antonio Madera

    Estudiante
    Hace 5 años
    Ángel Samuel Suesca Ríos

    Ángel Samuel Suesca Ríos

    Estudiante
    Hace 4 años
Alfonso Andres Zapata Guzman

Alfonso Andres Zapata Guzman

Estudiante
Hace 4 años
    Alfonso Andres Zapata Guzman

    Alfonso Andres Zapata Guzman

    Estudiante
    Hace 4 años
    Alfonso Andres Zapata Guzman

    Alfonso Andres Zapata Guzman

    Estudiante
    Hace 4 años
Christopher Brian Guzmán Martínez

Christopher Brian Guzmán Martínez

Estudiante
Hace 2 años
    Jeison Andres Arias Camayo

    Jeison Andres Arias Camayo

    Estudiante
    Hace 2 años
    Olga Lisethe Castellanos Galeano

    Olga Lisethe Castellanos Galeano

    Estudiante
    Hace un año
Tomas Dale

Tomas Dale

Estudiante
Hace 5 años
    Anuar Manuel Monterrosa Bedoya

    Anuar Manuel Monterrosa Bedoya

    Estudiante
    Hace 3 años
Gustavo Adolfo Marquez Prieto

Gustavo Adolfo Marquez Prieto

Estudiante
Hace 4 años
FELIX  DAVID CORDOVA GARCIA

FELIX DAVID CORDOVA GARCIA

Estudiante
Hace 5 años
    Luis Fernando Laris Pardo

    Luis Fernando Laris Pardo

    Estudiante
    Hace 5 años
Juan R Rossano

Juan R Rossano

Estudiante
Hace 5 años
    Luis Fernando Laris Pardo

    Luis Fernando Laris Pardo

    Estudiante
    Hace 5 años
Tomas Dale

Tomas Dale

Estudiante
Hace 5 años
Brayam Esparza

Brayam Esparza

Estudiante
Hace 4 años
Mauricio Escobar

Mauricio Escobar

Estudiante
Hace 4 años
Bernardo Tamayo

Bernardo Tamayo

Estudiante
Hace 4 años
    Bernardo Tamayo

    Bernardo Tamayo

    Estudiante
    Hace 4 años
    Fabian Villada

    Fabian Villada

    Estudiante
    Hace 3 años
Jhon Freddy Tavera Blandon

Jhon Freddy Tavera Blandon

Estudiante
Hace 3 años
Antonio Demarco Bonino

Antonio Demarco Bonino

Estudiante
Hace 2 años
Enrique Jiménez Téllez

Enrique Jiménez Téllez

Estudiante
Hace 2 años
Jordan Anderson Huayhua Morales

Jordan Anderson Huayhua Morales

Estudiante
Hace 2 años
Thomas Gonzalez Rodrigues

Thomas Gonzalez Rodrigues

Estudiante
Hace 4 años
    Diego Jurado

    Diego Jurado

    Estudiante
    Hace 3 años
Romel Manrique

Romel Manrique

Estudiante
Hace 4 años
SAYUMI ALEXANDRA CANCHARI LA ROSA

SAYUMI ALEXANDRA CANCHARI LA ROSA

Estudiante
Hace 4 meses
    SAYUMI ALEXANDRA CANCHARI LA ROSA

    SAYUMI ALEXANDRA CANCHARI LA ROSA

    Estudiante
    Hace 4 meses
Alex Xiomar Rubio Lopez

Alex Xiomar Rubio Lopez

Estudiante
Hace 5 meses
Andres Martin

Andres Martin

Estudiante
Hace un año

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

en la vida real, escribir cada variable númerica no es una buena practica. Para identificarla reemplace por esto: numeric_cols = df.select_dtypes(include=[np.number])

#numeric_cols = ['age', 'bmi', 'children', 'charges']

me olvide agregar el .coolum queda así: import numpy as np

numeric_cols = df.select_dtypes(include=[np.number]).columns

#numeric_cols = ['age', 'bmi', 'children', 'charges']

cm = np.corrcoef(df[numeric_cols].values.T)

sns.set_theme(font_scale=1.5)

sns.heatmap(cm,annot=True, yticklabels=numeric_cols,xticklabels=numeric_cols)

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

veo una relacion entre los fumadores y los cargos que reciben