Preparación de datos

Machine Learning de extremo a extremo

Joshua Stapleton

Machine Learning Engineer

Pasos de preparación de datos

El dataset tiene:

  • Valores faltantes
  • Valores atípicos
  • Desbalances
  • Columnas vacías
  • Duplicados

Preparación de datos:

  • Basada en hallazgos del EDA
  • Crítica para el rendimiento del modelo
Machine Learning de extremo a extremo

Valores nulos / vacíos

  • Borra filas/columnas vacías o escasas
  • Los nulos pueden romper el modelo
  • Usa df.drop() para columnas
  • Usa df.dropna(how='all') para filas
# count missing values
print(df['oldpeak'].isnull().sum())

# Drop empty column(s) and row(s)
columns_dropped = heart_disease_df.drop(['oldpeak'], axis='columns')
rows_and_columns_dropped = columns_dropped.dropna(how='all')
Machine Learning de extremo a extremo

Cómo tratar nulos / vacíos

  • La limpieza/eliminación depende del EDA

 

  • Si una columna tiene demasiados nulos:
    • Elimina la columna

 

  • Si la columna objetivo tiene nulos:
    • Elimina filas con objetivo nulo
    • O trátalo como categoría aparte
Machine Learning de extremo a extremo

Imputación

¿Qué hacer si hay pocos valores faltantes?

  • Imputación:

    • Rellena los faltantes con sustitutos
  • Estrategias

    • Rellenar con media o mediana
    • Usar constante o valor previo
# Calculate the mean cholestrol value 
mean_value = heart_disease_df['chol'].mean()

# Fill missing cholestrol values with the mean
heart_disease_df['chol'].fillna(mean_value, inplace=True)
Machine Learning de extremo a extremo

Imputación avanzada

Técnicas avanzadas:

  • K vecinos más cercanos
  • SMOTE (synthetic minority oversampling technique)
from sklearn.impute import KNNImputer

# Initialize KNNImputer
imputer = KNNImputer(n_neighbors=2, weights="uniform")

# Perform the imputation on your DataFrame
df_imputed['oldpeak'] = imputer.fit_transform(df['oldpeak'])
Machine Learning de extremo a extremo

Eliminar duplicados

 

  • Los datos deben ser limpios, concisos y ricos
  • Las redundancias no ayudan
  • Los duplicados sesgan o confunden el modelo
  • Usa identificadores únicos para decidir qué filas borrar

 

# Drop duplicate rows
heart_disease_duplicates_dropped = heart_disease_column_dropped.drop_duplicates()
Machine Learning de extremo a extremo

¡Vamos a practicar!

Machine Learning de extremo a extremo

Preparing Video For Download...