Análisis de Correlación y Escalado de Datos en Pandas
Clase 6 de 17 • Curso de Regresión Logística con Python y scikit-learn
Resumen
¿Cómo realizar un análisis de correlación de datos?
Para entender mejor las relaciones entre los datos y la variable objetivo, el análisis de correlación es vital. En este caso, se trata de comprender cómo las diferentes variables de un conjunto de datos se vinculan con el "churn".
¿Qué es la correlación y cómo se calcula en Pandas?
La correlación mide qué tan cercanas o lejanas están dos variables. Utilizando Pandas, calculamos estas correlaciones con el comando corr()
, aplicándolo a las columnas que más interesan, como el churn.
correlation = dataframe.corr()["churn"].sort_values(ascending=True)
correlation.plot(kind='bar')
plt.show()
En el ejemplo, se utiliza un gráfico de barras para visualizar las correlaciones, que hemos ordenado de manera ascendente para facilitar su interpretación.
¿Cuáles son las observaciones del análisis de correlación?
Algunas variables, como tener un contrato mes a mes, están altamente correlacionadas con el churn. Si un cliente tiene un contrato mensual, es más probable que abandone el servicio. Sin embargo, otras características, como el género del cliente o tener un servicio telefónico, no tienen relación significativa con el churn.
Además, las características como cuánto tiempo lleva un cliente con el contrato o si tiene un contrato a dos años, están inversamente correlacionadas. Esto indica que mientras más tiempo y mayor dureza tenga el contrato, menor es la probabilidad de churn.
¿Cómo se pueden escalar los datos?
La escalabilidad de los datos es crucial para preparar el dataset para modelos de machine learning. Esto se debe a que las variables están en diferentes escalas y deben ser ajustadas para evitar que el modelo le otorgue una mayor importancia a una sobre otra.
¿Qué es y cómo se usa MinMaxScaler?
MinMaxScaler
es una herramienta de SciKit Learn
destinada a escalar variables a un rango común, usualmente de 0 a 1. Esto se logra fácilmente con el siguiente código:
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaled_data = scaler.fit_transform(dataframe)
scaled_dataframe = pd.DataFrame(scaled_data, columns=dataframe.columns)
¿Cómo llevar los datos escalados a un DataFrame?
Tras escalar los datos, queda un array que debe convertirse nuevamente en un DataFrame para mantener la estructura de columnas:
scaled_dataframe = pd.DataFrame(scaled_data, columns=dataframe.columns)
Así, los datos están listos para pasarse al modelo de machine learning, como la regresión logística, que evaluará la probabilidad de churn con mayor precisión.
Este proceso no solo ayuda a mantener la consistencia de los datos, sino también a mejorar la interpretación y el rendimiento del algoritmo de clasificación. Es un paso esencial en el preprocesamiento de los datos en un proyecto de ciencia de datos.