Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafío: hora de la práctica

  1. 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']
  1. 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)
  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()

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola César, espero que estés bien

Parece que ya has realizado correctamente la separación de las variables explicativas y la variable objetivo, así como la transformación de las variables categóricas usando OneHotEncoder y LabelEncoder. Aquí tienes un resumen de lo que has hecho y algunos puntos a verificar:

  1. Separación de Variables:

    • Has separado correctamente las variables explicativas (X) de la variable objetivo (y).
  2. Transformación de Variables Categóricas:

    • Usaste OneHotEncoder para transformar las variables categóricas en X. El uso del parámetro drop='if_binary' es adecuado para evitar la multicolinealidad en variables binarias.
    • Creaste un nuevo DataFrame X_final que combina las variables numéricas originales con las transformadas.
  3. Transformación de la Variable Objetivo:

    • Usaste LabelEncoder para transformar la variable churn en valores numéricos, lo cual es necesario para muchos algoritmos de Machine Learning.
  4. Verificación:

    • Las dimensiones de X_final y los primeros ejemplos de y_final indican que el procesamiento se realizó correctamente.

Si todo esto coincide con lo que esperabas, entonces parece que has completado el desafío con éxito. Si tienes algún problema específico o error, asegúrate de revisar los nombres de las columnas y los datos en el archivo CSV para verificar que todo esté en orden.

Espero haber ayudado y buenos estudios!