Preparación (Lección 2) - Preprocesamiento y Limpieza de Datos

Objetivos

1. Importancia del Preprocesamiento de Datos

Objetivo: Entender por qué el preprocesamiento de datos es crucial para el éxito de los modelos de machine learning.

Calidad de los Datos

Pasos en el Preprocesamiento de Datos

2. Limpieza de Datos

Objetivo: Aprender y aplicar técnicas para limpiar los datos.

Manejo de Datos Faltantes

Identificación y métodos para manejar datos faltantes (eliminación, imputación).


              df.dropna(inplace=True)
              df.fillna(df.mean(), inplace=True)
                

Eliminación de Duplicados

Identificación y eliminación de registros duplicados.


              df.drop_duplicates(inplace=True)
                

Corrección de Valores Erróneos

Detección y corrección de valores atípicos y errores en los datos.


              df.loc[df['age'] > 100, 'age'] = df['age'].median()
                

3. Transformación de Datos

Objetivo: Aprender y aplicar técnicas de transformación de datos para preparar los datos para el modelado.

Normalización y Estandarización

Conceptos y aplicación en Python.


              from sklearn.preprocessing import StandardScaler, MinMaxScaler
              scaler = StandardScaler()
              df_scaled = scaler.fit_transform(df)
              minmax_scaler = MinMaxScaler()
              df_normalized = minmax_scaler.fit_transform(df)
                

Codificación de Variables Categóricas

Métodos de codificación (one-hot encoding, label encoding) y su aplicación en Python.


              from sklearn.preprocessing import OneHotEncoder, LabelEncoder
              label_encoder = LabelEncoder()
              df['category_encoded'] = label_encoder.fit_transform(df['category'])
              onehot_encoder = OneHotEncoder()
              df_onehot = onehot_encoder.fit_transform(df[['category']])
                

Transformaciones Logarítmicas y de Potencia

Cuándo y cómo aplicar transformaciones logarítmicas y de potencia.


              import numpy as np
              df['log_transformed'] = np.log(df['variable'])
              df['sqrt_transformed'] = np.sqrt(df['variable'])
                

4. Ingeniería de Características

Objetivo: Aprender técnicas de ingeniería de características para mejorar el rendimiento del modelo.

Selección de Características

Métodos de selección de características (selección univariante, selección basada en modelo).


              from sklearn.feature_selection import SelectKBest, f_classif
              selector = SelectKBest(score_func=f_classif, k=5)
              X_new = selector.fit_transform(X, y)
                

Creación de Nuevas Características

Técnicas para crear nuevas características a partir de las existentes.


              df['interaction'] = df['feature1'] * df['feature2']
                

Transformaciones de Características

Métodos para transformar características y mejorar el rendimiento del modelo.


              df['binned'] = pd.cut(df['variable'], bins=5, labels=False)