HuatuCodeHuatuCode
Volver a Aprende
Data Science
HUATUCODE LECCIÓN/Data Science/DIFICULTAD: PRINCIPIANTE

¿Qué es un Dataset?

La materia prima de todo sistema inteligente. Analizamos filas (muestras), columnas (features), la matriz X, el vector objetivo y y por qué los datos limpios importan más que los algoritmos complejos.

#Dataset#Matriz X#Vector y#EDA#Limpieza de Datos
¿Qué es un Dataset?

01La Materia Prima de la Inteligencia Artificial

Un Dataset no es simplemente un archivo Excel o CSV; matemáticamente es una Matriz de Datos donde cada fila representa una observación del mundo real y cada columna representa una variable cuantificable.

En Machine Learning existe una regla de oro inquebrantable: "Garbage In, Garbage Out". Un modelo complejo con algoritmos de última generación fracasará si el dataset tiene datos ruidosos, duplicados o mal codificados.

02Anatomía de la Matriz: Features (X) y Target (y)

Matriz de Características (X)

Es una matriz bidimensional de dimensión M × N (donde M es el número de muestras y N es el número de variables descriptivas como metros cuadrados, antigüedad o habitaciones).

Vector Objetivo (y)

Es el vector unidimensional de longitud M que contiene lo que queremos aprender a predecir (ej. el precio de venta en USD o si un cliente renovará un contrato).

03Tipos de Variables que Encontrarás

Numéricas

Continuas (ej. 78.5 m²) o Discretas (ej. 3 dormitorios). Alimentan directamente ecuaciones lineales.

Categóricas

Nominales (ej. "Miraflores", "Surco") u Ordinales (ej. "Bajo", "Medio", "Alto"). Requieren One-Hot Encoding.

Temporales

Fechas y marcas de tiempo (ej. 2024-03-15). Clave para series de tiempo y partición temporal.

04Valores Faltantes (NaN), Outliers y Escalado de Datos

Ningún dataset del mundo real llega listo para ser consumido por un algoritmo. El 80% del tiempo de un científico de datos se dedica a la higiene y preparación matemática de las matrices:

StandardScaler (Z-Score)
z = (x - μ) / σ

Centra en media 0 y varianza unitaria 1. Esencial para modelos basados en gradientes (Regresión, Redes Neuronales) y distancias (KNN, SVM).

MinMaxScaler (Rango 0 - 1)
x_norm = (x - x_min) / (x_max - x_min)

Comprime todo al intervalo estricto [0, 1]. Obligatorio para intensidades de píxeles en imágenes o algoritmos que no admiten valores negativos.

RobustScaler (IQR)
x_rob = (x - Q2) / (Q3 - Q1)

Utiliza la mediana y el rango intercuartílico. Es inmune a valores atípicos (outliers) extremos en datasets financieros y transaccionales.

05¿En qué situaciones conviene cada estrategia de preprocesamiento?

No existe una receta universal de preprocesamiento; la elección depende estrictamente del algoritmo consumidor y de la naturaleza estadística del dominio.

Decisiones de Arquitectura de Datos Clave
  • Presencia de Outliers Extremos (Finanzas):

    Conviene RobustScaler o transformación logarítmica np.log1p(x). Si usaras StandardScaler en ingresos o transacciones millonarias, la media se desviaría y aplastaría al 99% de las instancias normales cerca de cero.

  • Imputación por Mediana vs KNN Imputer:

    Usa mediana o moda cuando los datos faltantes sean escasos (< 5%) y busques velocidad. Usa KNN Imputer cuando las variables correlacionadas contengan pistas ricas para deducir el valor faltante con precisión.

  • El Paradigma "Data-Centric AI":

    En la industria moderna de Machine Learning, es mucho más rentable invertir 3 días depurando, etiquetando y eliminando duplicados en 1,000 filas que gastar semanas afinando hiperparámetros en 50,000 filas con ruido ("Garbage In, Garbage Out").

Trampas y Errores Habituales
  • Escalar datos para modelos de Árboles (Random Forest / XGBoost):

    Los algoritmos basados en árboles buscan umbrales de partición X_i ≤ umbral; son completamente invariantes a transformaciones monótonas de escala. Escalar sus variables no altera en nada la división y añade cómputo inútil.

  • One-Hot Encoding en Categóricas de Alta Cardinalidad:

    Si tienes una columna con 5,000 códigos postales o IDs de producto, One-Hot creará 5,000 columnas dispersas consumiendo gigabytes de memoria y diluyendo la información. Conviene Target Encoding o embeddings.

  • Eliminar filas con NaN a ciegas (dropna):

    Si eliminas todas las filas con algún valor nulo en un dataset con 40 columnas, podrías perder el 70% de tus datos útiles. Solo elimina filas si la variable objetivo está vacía o el registro tiene más del 50% de atributos perdidos.

06Código para Auditar un Dataset en Python con Pandas

dataset_audit.py (Pandas)
# 1. Anatomía y Auditoría de un Dataset en Pandas
import pandas as pd
import numpy as np

# Creamos un dataset estructurado representativo
data = {
    'area_m2': [45, 68, 95, 120, 180],
    'habitaciones': [1, 2, 3, 3, 4],
    'distrito': ['Lince', 'Jesús María', 'Surco', 'San Isidro', 'Miraflores'],
    'precio_usd': [95000, 145000, 210000, 310000, 450000] # Variable Objetivo (y)
}

df = pd.DataFrame(data)

# Separamos Matriz de Features (X) y Vector Objetivo (y)
X = df.drop(columns=['precio_usd'])
y = df['precio_usd']

print("--- DIMENSIONES DE LA MATRIZ DE DATOS ---")
print(f"Instancias (filas): {X.shape[0]}")
print(f"Características (columnas): {X.shape[1]}")

print("\n--- AUDITORÍA DE TIPOS DE VARIABLE ---")
print(X.dtypes)

print("\n--- RESUMEN ESTADÍSTICO INICIAL (EDA) ---")
print(X.describe())