- Para utilizar los datos en los algoritmos de Machine Learning, necesitamos informar cuáles son las variables explicativas y cuál es la variable objetivo. En este desafío, realiza la separación de la base de datos de churn entre las variables explicativas, almacenando en una variable x y la variable objetivo en y.
import pandas as pd
from sklearn.preprocessing import OneHotEncoder, LabelEncoder
df = pd.read_csv('/content/churn.csv')
if 'id_cliente' in df.columns:
df = df.drop(columns=['id_cliente'])
# Separación en X (explicativas) e y (objetivo)
X = df.drop(columns=['churn'])
y = df['churn']
- Las variables categóricas que están en formato de texto no pueden ser utilizadas directamente en los modelos de Machine Learning. En este desafío, realiza la transformación de las variables categóricas al formato numérico utilizando el OneHotEncoder, utilizando el parámetro drop='if_binary' si alguna variable tiene solo 2 categorías.
# Transformación de variables explicativas con OneHotEncoder
cat_cols = ['pais', 'sexo_biologico']
ohe = OneHotEncoder(drop='if_binary', sparse_output=False)
X_cat_transformed = ohe.fit_transform(X[cat_cols])
X_cat_df = pd.DataFrame(X_cat_transformed, columns=ohe.get_feature_names_out(cat_cols))
X_final = pd.concat([X.drop(columns=cat_cols).reset_index(drop=True), X_cat_df], axis=1)
- La variable objetivo, como es de tipo categórica, también necesita pasar por un tratamiento similar al de las variables explicativas categóricas para que pueda ser utilizada en los algoritmos. En esta tarea, utiliza el método LabelEncoder para realizar la transformación de la variable churn.
# Transformación de la variable objetivo con LabelEncoder
le = LabelEncoder()
y_final = le.fit_transform(y)
# Verificación de resultados
print(f"Dimensiones finales de X: {X_final.shape}")
print(f"Ejemplo de etiquetas transformadas en y: {y_final[:5]}")
print("\nPrimeras filas del conjunto de características (X):")
X_final.head()