Ganancias:
- Capacidad para configurar una canalización de datos (recopilación, validación, limpieza, transformación, división, control de versiones) y colocar la validación del esquema al comienzo de la canalización.
- Capacidad para tomar decisiones de etiquetado y valor faltante basadas en el significado y la división del campo para evitar la fuga de datos (grupales y temporales)
- Capacidad de crear una base de datos reproducible fijando la versión de los datos y la semilla de aleatoriedad
El verdadero poder de todo sistema de aprendizaje automático reside en los datos, no en el modelo. Los ingenieros experimentados saben: “entra basura, sale basura”; incluso el modelo más avanzado alimentado con datos incorrectos producirá malos resultados. En esta unidad, establecemos la canalización de datos (canalización de datos: la cadena de pasos que preparan los datos sin procesar para el entrenamiento del modelo) de un extremo a otro y aprendemos en qué paso de esta línea podemos utilizar la inteligencia artificial de forma segura.
Pasos de la línea de datos.
Una línea de datos normalmente pasa por estas paradas:
- Colección (ingestión): extracción de datos de fuentes (base de datos, API, archivos de registro, flujos de eventos).
- Validación: comprobar si los datos se ajustan al esquema, tipos y rangos esperados.
- Limpieza: manejo de valores faltantes, registros duplicados, valores atípicos e inconsistencias.
- Transformación: convertir datos sin procesar en atributos, como convertir una variable categórica en un número y producir un "día de la semana" a partir de una fecha.
- División: Separación en conjuntos de entrenamiento, validación y prueba.
- Control de versiones: registrar qué modelo se entrenó con qué datos.
La inteligencia artificial ahorra tiempo al generar ideas y borradores de código, especialmente en los pasos 2, 3 y 4. Pero decisiones como qué registro descartar, qué valor faltante completar y cómo, pertenecen al ingeniero que conoce los datos; porque una limpieza inadecuada puede inyectar un sesgo oculto en el modelo.
Verificación de datos: defensa temprana de la línea.
Los errores más costosos no comienzan en la producción, sino cuando se salta el paso de verificación. La validación del esquema verifica automáticamente si cada lote de datos entrante se ajusta a la estructura esperada. Por ejemplo, ¿la columna de edad está entre 0 y 120, el campo de correo electrónico está vacío, ha cambiado el número de columnas?
Consejo: coloque la verificación al principio de la línea. Cuanto antes se detecten los datos corruptos, más barato será repararlos. Un error de esquema detectado en producción es muchas veces más caro que uno detectado en la fase de formación.
Escriba un esquema de validación con pandera (o Grandes Expectativas) para el siguiente esquema de datos. Columnas y reglas: - user_id: entero, no puede ser nulo, único - edad: entero, no puede ser de 0 a 120 - signup_date: fecha, no puede ser en el futuro - país: categórico, del conjunto {TR, DE, US, UK} - saldo: decimal, no puede ser negativo Produzca un mensaje de error significativo para cada infracción de regla. Muestre la prueba con una línea discontinua de ejemplo al final del código.
Limpieza: es el humano quien decide
Los valores faltantes son una realidad en todos los conjuntos de datos. Formas de manejar:
- Eliminación: Descartar una fila/columna con una tasa de faltas muy alta. Pero existe el riesgo de pérdida y sesgo de información.
- Imputación: Imputación con media, mediana, valor más frecuente o predicción basada en modelos.
- Bandera: almacenar información "faltante" en una columna de bandera separada; a veces, la falta en sí es la señal.
Cuál es el correcto depende del problema. En un conjunto de datos médicos, la información sobre el "valor en sangre no medido" debe conservarse en lugar de eliminarse; Porque incluso la negativa del médico a tomar medidas es una señal. La IA puede brindarle opciones y códigos; Tú eliges cuál se adapta a la realidad del campo.
Aviso débil / Aviso fuerte
Mensaje débil: "Complete los valores faltantes".
Aviso fuerte: "Faltan valores en las siguientes columnas: ingresos (falta 12%, distribución sesgada a la derecha), last_login (falta 30%). Sugiera completar ingresos con mediana, pero explique por qué mediana y no media. Para last_login, suponga que el valor faltante podría ser significativo (es posible que el usuario nunca haya iniciado sesión); considere generar un indicador never_logged_in en lugar de eliminarlo. Escriba el sesgo que cualquiera de los enfoques agregaría al modelo".
Diferencia: un mensaje fuerte proporciona información de distribución y significado del área; La inteligencia artificial produce apoyo a las decisiones en lugar de relleno mecánico.
Etiquetado: la calidad se mide
En el aprendizaje supervisado (aprendizaje en el que se dan ejemplos con las respuestas correctas), lo que aprende el modelo son etiquetas (etiquetas: la respuesta correcta para cada ejemplo). La calidad de las etiquetas establece un límite: si las personas etiquetan de manera inconsistente, el modelo aprende de manera inconsistente.
El acuerdo entre anotadores mide la velocidad a la que diferentes personas dan la misma etiqueta a la misma muestra; Se expresa mediante un coeficiente como el Kappa de Cohen. Un cumplimiento bajo indica que la tarea no está clara o que la instrucción es débil.
La inteligencia artificial ayuda a etiquetar de dos maneras: (1) redactar la guía de anotación, (2) preetiquetar y hacer que el humano solo lo corrija. Pero el preetiquetado con LLM tiene un inconveniente: el error sistemático del modelo puede filtrarse a todo el conjunto de etiquetas. Es por eso que los humanos siempre revisan algunas de las etiquetas de LLM.
Atención: No considere las etiquetas producidas por LLM como "verdad sobre el terreno". Verifique una muestra con un humano y mida el ajuste LLM-humano. Si el cumplimiento es bajo, el preetiquetado hará más daño que bien.
Partición de datos: evitar fugas
El error más peligroso al dividir los datos en entrenamiento/validación/prueba es la fuga de datos: la mezcla de información de prueba en el entrenamiento. Ejemplos:
- Los registros del mismo usuario se incluyen tanto en entrenamiento como en prueba (fuga grupal).
- Utilizar el futuro en el entrenamiento y el pasado en las pruebas en series temporales (fuga temporal).
- Calcular los parámetros de escala (normalización) de todos los datos y luego dividirlos.
La división temporal es esencial para los problemas que involucran el tiempo: entrenar con el pasado, probar en el futuro. La división aleatoria brinda un beneficio "futuro" que nunca sucederá en la producción e infla las métricas.
Versionado y reproducibilidad de datos.
"¿Con qué datos entrenamos este modelo?" Ser capaz de responder la pregunta meses después es el sello distintivo de una ingeniería de aprendizaje automático seria. El control de versiones de datos almacena cada instantánea de datos con una identificación (hash o etiqueta de versión). Herramientas como datos de versión DVC (Control de versiones de datos) como código.
Para reproducir el resultado de un modelo se deben arreglar tres cosas: la versión de los datos, la versión del código y la semilla aleatoria. No es posible decir "obtuve el mismo resultado" sin este trío. Profundizaremos en Reproducibilidad en la unidad 11; pero arreglar la semilla en la canalización de datos comienza desde aquí.
tres mini casos
Caso 1: Se guardó la validación del esquema del día. Cuando un equipo convirtió un campo de precios de un sistema ascendente de centavos a liras, todos los precios cayeron 100 veces. La validación del esquema rechazó el lote como "precio fuera de rango" y el modelo no se entrenó con datos corruptos. Sin verificación, el error sólo se notaría en producción, con predicciones incorrectas.
Caso 2 - Sesgo de llenado incorrecto. En un modelo de crédito, los valores de ingresos faltantes se completaron con la media. Pero los ingresos faltantes se daban predominantemente en el grupo de bajos ingresos; el promedio "enriqueció" artificialmente a este grupo, y el modelo les ofreció un límite injustamente alto. Se solucionó el problema con la bandera de mediana + falta.
Caso 3 - Fuga temporal. Un modelo de pronóstico de la demanda se veía muy bien en el conjunto de prueba (95 % de precisión), pero falló en producción. Por qué: debido a la división aleatoria, el modelo había visto el futuro. El cambio a la agrupación temporal redujo la precisión de las pruebas al 78 %, pero ese fue el rendimiento real y lo mantuvo en producción.
Plantillas copiables
Divida el siguiente conjunto de datos en tres conjuntos: entrenamiento/validación/prueba.Restricción: esta es una serie de tiempo; Utilice la división TEMPORAL (entrene en el pasado, pruebe en el futuro). Evite la fuga de lotes: tenga el mismo `customer_id` solo en un clúster. Calcule los parámetros de escala SÓLO del conjunto de entrenamiento y luego aplíquelos a todos. Imprima cuántas líneas quedan en el código en cada paso y agregue una afirmación que verifique que no haya fugas.
Escriba un borrador de guía de anotaciones para esta tarea de etiquetado. Tarea: [p. ej. Etiquete la reseña del cliente como positiva/negativa/neutral]Aclare los casos límite: sarcasmo, emociones encontradas, ¿cómo etiquetar la reseña no relacionada con el producto? Proporcione 5 ejemplos y 3 casos extremos difíciles que aumentarán la coherencia entre los etiquetadores.
Produzca una lista de verificación de reproducibilidad para esta canalización de datos: - ¿Cómo se debe corregir la versión de los datos? - ¿Qué semillas de aleatoriedad se deben establecer y dónde? - ¿Qué metadatos (hash de datos, recuento de filas, fecha) se deben registrar? Mi código base: [idioma/biblioteca]
Verifique este código de limpieza para detectar fugas de datos. Mire específicamente esto: ¿se calculan los parámetros de escala/codificación ANTES de dividir? ¿Se calculan estadísticas a partir de todos los datos o solo del entrenamiento? Código: [código]
Tabla de decisiones: estrategia de valor perdido
Estado
Enfoque recomendado
¿Por qué?
Distribución numérica y asimétrica
llenar con mediana
El promedio se ve afectado por valores atípicos
Numérico, simétrico
llenar con promedio
Protege la información
La deficiencia puede ser significativa.
Marcar columna + rellenar
La falta es una señal.
Tasa faltante > 60%
Evaluar/descartar columna
El ruido es demasiado
categórico
Categoría "desconocida"
No crea mayoría artificial
Errores comunes
- Saltarse la verificación. Sin control de esquema, los datos corruptos se cuelan silenciosamente.
- Escalar antes de dividir. Filtra estadísticas de pruebas a la educación.
- Usar división aleatoria en series de tiempo. Produce métricas altas falsas.
- Confiar ciegamente en las etiquetas LLM. El error sistemático se extiende por todos los datos.
- No guardar la versión de datos. No se puede reproducir el resultado.
- Llenado mecánico con media. Ignora el significado del campo y agrega sesgo.
En resumen
La canalización de datos es la base del sistema ML y merece más esfuerzo que el modelo. Ponga la verificación en la parte superior; tomar decisiones de limpieza y etiquetado con conocimiento del dominio; prevenir fugas (grupales y temporales) en el compartimento; corrija la versión de datos y la semilla. La IA genera código e ideas en esta línea, pero depende de usted decidir qué datos procesar y cómo, porque cada decisión equivocada aquí pasa al modelo como un defecto oculto.
Tarea de aplicación
Escriba un esquema de validación (pandera/Grandes expectativas) en su propio conjunto de datos y agregue deliberadamente una fila incorrecta y demuestre que quedó atrapada. Luego divida los datos temporalmente o por lotes, calcule los parámetros de escala solo a partir del entrenamiento y verifique que no haya fugas con una afirmación. Escriba la versión de los datos y el recuento de filas en un archivo de metadatos.
lista de verificación
- [] La validación del esquema se ejecuta en la parte superior de la línea.
- [] Elegí la estrategia de valor faltante según el significado del campo, no la completé mecánicamente.
- [ ] Medí la calidad de la etiqueta (cumplimiento); Revisé las etiquetas LLM con humanos.
- [] Evité fugas grupales y temporales en el panel.
- [] Escalado/codificación calculado únicamente a partir del conjunto de entrenamiento.
- [ ] Versión de datos, número de hileras y semilla registrada.