¿Qué es la Ciencia de Datos? [BLOCK_TYPE SECTION/STEP]
La ciencia de datos no es solo aprendizaje automático. No es solo estadística. No es solo programación. [BLOCK_TYPE SECTION/STEP]
La ciencia de datos es la disciplina de extraer conocimiento útil de los datos. La mayor parte de ese trabajo no es glamuroso: es limpiar hojas de cálculo caóticas,提出正确的问题,并将结果传达给对你的代码不感兴趣的人。 [BLOCK_TYPE SECTION/STEP]
[BLOCK_TYPE SECTION/STEP]
El pipeline típico de ciencia de datos se ve así:
1. Recopilar: reunir datos en bruto de bases de datos, APIs, CSVs o web scraping
2. Limpiar: manejar valores faltantes, corregir tipos, eliminar duplicados
3. Explorar: visualizar distribuciones, encontrar patrones, hacer preguntas
4. Ingeniería: crear nuevas características que ayuden a los modelos a aprender
5. Modelar: entrenar algoritmos, evaluar rendimiento, iterar
6. Comunicar: presentar hallazgos a los stakeholders que toman decisiones
Si alguna vez has usado tablas dinámicas de Excel, formato condicional o BUSCARV, ya has realizado los pasos 1-3. Esta lección conecta esa experiencia con el flujo de trabajo basado en Python que se usa en la industria.
Calentamiento
Tu Experiencia con Datos
Todos hemos trabajado con datos en alguna forma: una hoja de cálculo de presupuesto, un rastreador de calificaciones, una app de fitness, incluso una lista de reproducción con conteos de reproducciones.
Basura que Entra, Basura que Sale
Por qué es importante la limpieza
Los científicos de datos dedican entre el 60-80% de su tiempo a limpiar datos. Esto no es una exageración: es un hallazgo consistente en encuestas de la industria.
La razón es simple: garbage in, garbage out. Si tus datos tienen errores, valores faltantes o formatos inconsistentes, todos los análisis construidos sobre ellos serán incorrectos. Un modelo perfecto entrenado sobre datos sucios produce respuestas erróneas con alta confianza.
Problemas comunes de datos
- Valores faltantes: las celdas están en blanco. ¿Los datos no se fueron a recolectar, o el valor es realmente cero? Estas son dos situaciones distintas que requieren un manejo diferente.
- Tipos de datos incorrectos: una columna de números almacenada como texto, fechas en formatos inconsistentes (01/02/2024: ¿es el 2 de enero o el 1 de febrero?)
- Valores atípicos: una columna de salarios tiene una entrada de $1,000,000,000. ¿Es real, o es un error de tipeo? En cualquier caso, distorsionará tus promedios.
- Duplicados: el mismo registro aparece dos veces porque dos sistemas se fusionaron de forma imperfecta
- Codificación categórica: una columna dice 'Yes', 'yes', 'Y', 'TRUE' y '1'. Todos significan lo mismo, pero tu computadora no lo sabe.
En pandas (la biblioteca estándar de Python para datos), se manejan con métodos como dropna(), fillna(), astype() y drop_duplicates(). Pero lo difícil no es el código: es decidir qué hacer con cada problema.
Decisiones de Limpieza
Decidir Qué Hacer
Aquí tienes un escenario real. Tienes un conjunto de datos de 10,000 registros de clientes. La columna 'age' tiene 500 valores missing.
Tus opciones:
- Eliminar las filas: elimina los 500 registros. Es simple, pero pierdes el 5% de tus datos. Si esos 500 clientes comparten un rasgo (tal vez omitieron el campo de edad porque son conscientes de la privacidad), eliminarlos introduce sesgo.
- Rellenar con la media: reemplaza los espacios en blanco con la edad promedio. Es rápido, pero reduce artificialmente la varianza de la columna de edad.
- Rellenar con la mediana: mejor que la media si la distribución de edades es asimétrica (unos pocos clientes muy viejos o muy jóvenes que tiran del promedio).
- Usar una bandera: crea una nueva columna llamada 'age_missing' (1 o 0) y rellena la original con la mediana. Ahora tu modelo puede aprender si la ausencia de datos es informative.
No hay una respuesta universal correcta. La elección depende de por qué faltan los datos y qué planeas hacer con ellos.
Haciendo las Preguntas Correctas
Análisis Exploratorio de Datos (EDA)
Antes de construir cualquier modelo, necesitas entender tus datos. El EDA es el proceso de resumir, visualizar y cuestionar un conjunto de datos para encontrar patrones, anomalías y relaciones.
Herramientas Clave
- Histogramas: muestran la distribución de una sola variable. ¿Es en forma de campana? ¿Sesgada? ¿Bimodal (dos picos)? Un histograma de ingresos siempre está sesgado a la derecha porque pocas personas ganan mucho más que la mayoría.
- Diagramas de dispersión: muestran la relación entre dos variables. ¿Las personas más altas pesan más? ¿Más tiempo de estudio se correlaciona con mejores calificaciones? El patrón (o la ausencia de patrón) te indica si existe una relación.
- Correlación: un número entre -1 y +1 que mide la asociación lineal. +1 significa una relación positiva perfecta, -1 significa una relación negativa perfecta, 0 significa una relación线性 sin relación lineal. Pero la correlación no implica causalidad: las ventas de helado y las muertes por ahogamiento son correlacionadas porque ambas aumentan en verano.
- Estadísticas descriptivas: media, mediana, desviación estándar, mínimo, máximo. En pandas: df.describe() te gibt todas estas en una línea.
La Habilidad Real
Las herramientas son fáciles de aprender. La parte difícil es hacer las preguntas correctas. Mala pregunta: '¿Qué dice la data?' Buena pregunta: '¿Los clientes que contactan al soporte dentro de la primera semana tienen tasas de retención más altas?'
Trampa de la Correlación
Correlación vs. Causalidad
Este es el concepto más importante en la alfabetización de datos. Dos variables pueden estar fuertemente correlacionadas sin que una cause la otra.
Ejemplos clásicos:
- Las ciudades con más bomberos tienen más incendios. (Las ciudades más grandes tienen ambos.)
- Los estudiantes que desayunan obtienen mejores calificaciones. (Tal vez las familias con más recursos son más propensas a proveer desayuno Y apoyo académico.)
- Los países que consumen más chocolate ganan más Premios Nobel. (Ambos se correlacionan con la riqueza nacional.)
El factor oculto se llama una variable de confusión: una tercera variable que impulsa ambas que estás analizando.
Creando Variables Útiles
¿Qué es la Ingeniería de Características?
Una característica es una variable de entrada que un modelo utiliza para hacer predicciones. La ingeniería de características es el arte de crear nuevas características a partir de datos brutos para ayudar a los modelos a aprender patrones que de otra manera no podrían ver.
Los datos brutos rara vez llegan en la forma que los modelos necesitan. Consideremos un conjunto de datos con una columna de 'fecha de nacimiento'. Un modelo no puede hacer mucho con fechas crudas. Pero si creas una característica de 'edad' a partir de ella,那么 el modelo puede aprender patrones basados en la edad.
Técnicas Comunes
- Normalización: escalar números a un rango común (0 a 1, o media=0 y desviación estándar=1). Sin esto, una característica medida en miles (salario) dominará a una característica medida en dígitos individuales (años de experiencia).
- Codificación one-hot: convertir variables categóricas en columnas binarias. Una columna 'color' con valores [red, blue, green] se convierte en tres columnas: 'color_red', 'color_blue', 'color_green', cada una con 0 o 1.
- Binning: convertir una variable continua en categorías. La edad 0-17 se convierte en 'minor', 18-64 en 'adult', 65+ en 'senior'. Esto ayuda cuando la relación no es lineal.
- Características de interacción: multiplicar dos características entre sí. 'Pies cuadrados por número de baños' podría predecir el precio de una casa mejor que cualquiera de las dos solas.
- Conocimiento del dominio: la técnica más poderosa. Un médico que crea características para un modelo médico sabe qué valores de laboratorio importan. Un especialista en marketing sabe que 'días desde la última compra' es比 'fecha de compra' más útil. Ningún algoritmo puede reemplazar esto.
Práctica de características
Aplicando ingeniería de características
Imagina que estás construyendo un modelo para predecir qué clientes cancelarán su suscripción de streaming el próximo mes. Tus datos crudos incluyen:
- Fecha de creación de la cuenta
- Fecha del último inicio de sesión
- Número de series vistas el mes pasado
- Monto del pago mensual
- Tickets de soporte al cliente presentados
- País
División de Entrenamiento/Prueba [BLOCK_TYPE modeling/train_test]
¿Por qué dividir tus datos
La regla más importante en el modelado: nunca evalúes un modelo con los mismos datos con los que lo entrenaste.
Si lo haces, el modelo puede simplemente memorizar las respuestas. Obtendrá una puntuación perfecta en los datos de entrenamiento, pero fallará en datos nuevos e invisibles. Esto se llama sobreajuste: el modelo aprendió el ruido de tu conjunto de datos específico en lugar de los patrones reales.
La práctica estándar es dividir tus datos:
- Conjunto de entrenamiento (típicamente 70-80%): el modelo aprende de este
- Conjunto de prueba (típicamente 20-30%): se reserva, se usa solo para evaluar el modelo final
En scikit-learn: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
Algoritmos comunes
- Regresión lineal: dibuja la línea recta que mejor se ajusta a los datos. Simple, interpretable, funciona cuando la relación es aproximadamente lineal. Predice un número (precio, temperatura, puntuación).
- Árboles de decisión: un diagrama de flujo de preguntas sí/no. Fácil de entender y explicar. Propenso al sobreajuste a menos que se poden o se limite su profundidad.
- Bosques aleatorios: muchos árboles de decisión que votan juntos. Más precisos que un solo árbol, menos propensos al sobreajuste, pero más difíciles de explicar.
Sobreajuste vs. Subajuste
- Sobreajuste: el modelo es demasiado complejo. Memoriza los datos de entrenamiento, incluyendo ruido. Alta دقة en datos de entrenamiento, baja precisión en datos de prueba.
- Subajuste: el modelo es demasiado simple. No يستطيع التقاط los patrones reales. Baja precisión en ambos datos de entrenamiento y prueba.
El objetivo es el punto óptimo entre ambos.
[BLOCK_TYPE modeling/evaluation]
Métricas de Evaluación [BLOCK_TYPE modeling/evaluation]
¿Cómo Saber Si Tu Modelo Es Bueno?
[BLOCK_TYPE modeling/evaluation]La precisión sola puede ser engañosa. Si el 95% de los correos no son spam, un modelo que siempre dice 'no es spam' tiene un 95% de precisión: pero es completamente inútil. [BLOCK_TYPE modeling/evaluation]
Métricas clave: [BLOCK_TYPE modeling/evaluation]
- Precisión: porcentaje de predicciones correctas. Útil cuando las clases están equilibradas. [BLOCK_TYPE modeling/evaluation]
- Precisión Positiva: de todas las cosas que el modelo marcó como positivas, ¿cuántas realmente lo eran? Una alta precisión positiva significa pocas falsas alarmas. [BLOCK_TYPE modeling/evaluation]
- Exhaustividad: de todos los positivos reales, ¿cuántos detectó el modelo? Una alta exhaustividad significa pocos casos perdidos.
- Puntuación F1: la media armónica de la precisión y la exhaustividad. Útil cuando necesitas equilibrar ambas.
- RMSE (Error Cuadrático Medio): para regresión (predicción de números). ¿Qué tan lejos están las predicciones en promedio?
Qué métrica importa más depende del problema. Para la detección de cáncer, la exhaustividad importa más: no quieres perder un caso. Para el filtrado de spam, la precisión importa más: no quieres eliminar un correo real.
Analista de datos vs. Científico de datos vs. Ingeniero de ML
Tres roles distintos
El campo de los datos tiene tres trayectorias profesionales principales, y requieren habilidades diferentes.
Analista de datos
- Focus: responder preguntas de negocio con datos existentes
- Tools: SQL, Excel, Tableau, Python o R básico
- Day-to-day: dashboards, reportes, análisis de pruebas A/B, presentaciones a stakeholders
- Entry path: a menudo el más accesible. Muchos analistas comienzan sin un título en CS.
Data Scientist
- Focus: construir modelos predictivos y encontrar patrones en datos complejos
- Tools: Python (pandas, scikit-learn, matplotlib), estadística, SQL, Jupyter notebooks
- Day-to-day: EDA, feature engineering, model building, experimentation
- Entry path: typically requires statistics or quantitative background. Bootcamps & self-study are viable.
Machine Learning Engineer
- Focus: deploying & scaling models in production systems
- Tools: Python, TensorFlow/PyTorch, Docker, cloud platforms (AWS/GCP), APIs
- Day-to-day: model optimization, pipeline infrastructure, monitoring production models
- Entry path: usually requires strong software engineering skills plus ML knowledge.
Creando un Portafolio
Los gerentes de contratación se interesan por lo que puedes hacer, no solo por lo que estudiaste. Un portafolio de 3-5 proyectos sólidos en GitHub es más importante que las certificaciones. Los buenos proyectos usan datasets reales (no de juguete), incluyen documentación clara y muestran el pipeline completo: desde datos desordenados hasta información actionable.
Tus Próximos Pasos
Hacia Dónde Ir Desde Aquí
Las herramientas del oficio son gratuitas y accesibles:
- pandas: la biblioteca estándar de Python para manipulación de datos
- matplotlib / seaborn: bibliotecas de visualización
- scikit-learn: la herramienta principal para el aprendizaje automático clásico
- Jupyter notebooks: entornos de codificación interactivos donde puedes mezclar código, resultados y notas
- Kaggle: conjuntos de datos gratuitos, competiciones y una comunidad de profesionales
Comienza con un conjunto de datos real que te interese. Descárgalo, límpialo, explóralo y trata de responder una pregunta. Ese único proyecto te enseñará más que cualquier curso.