La validació de dades és un pas crucial en el procés de desenvolupament de models de machine learning. Assegura que les dades que utilitzem per entrenar i avaluar els nostres models siguin correctes, coherents i lliures d'errors. En aquest tema, aprendrem com utilitzar TensorFlow Extended (TFX) per validar les nostres dades de manera eficient.
Objectius del tema
- Entendre la importància de la validació de dades.
- Aprendre a utilitzar
TensorFlow Data Validation
(TFDV) per explorar i validar dades. - Identificar i corregir problemes comuns en les dades.
- Importància de la validació de dades
La validació de dades és essencial per diverses raons:
- Qualitat de les dades: Dades incorrectes o inconsistents poden portar a models de baixa qualitat.
- Prevenció d'errors: Detectar errors en les dades abans de l'entrenament pot estalviar temps i recursos.
- Coherència: Assegura que les dades d'entrenament i de validació siguin coherents, millorant la generalització del model.
- Introducció a TensorFlow Data Validation (TFDV)
TFDV és una biblioteca de TFX que proporciona eines per explorar i validar dades de machine learning. Permet detectar anomalies, generar estadístiques i definir esquemes de dades.
Instal·lació de TFDV
Abans de començar, assegura't de tenir TFDV instal·lat. Pots instal·lar-lo utilitzant pip:
Importació de TFDV
Un cop instal·lat, podem importar TFDV en el nostre entorn de treball:
- Exploració de dades amb TFDV
El primer pas en la validació de dades és explorar-les per entendre la seva estructura i distribució. TFDV proporciona funcions per generar estadístiques descriptives de les dades.
Generació d'estadístiques
Podem generar estadístiques descriptives de les nostres dades utilitzant la funció tfdv.generate_statistics_from_csv
:
# Generar estadístiques a partir d'un fitxer CSV stats = tfdv.generate_statistics_from_csv(data_location='path/to/your/data.csv') # Visualitzar les estadístiques tfdv.visualize_statistics(stats)
Interpretació de les estadístiques
Les estadístiques generades inclouen informació com:
- Nombre de registres.
- Nombre de valors nuls.
- Distribució de valors per a cada característica.
- Definició d'un esquema de dades
Un esquema de dades defineix les expectatives sobre la forma i el contingut de les dades. TFDV pot generar un esquema inicial basat en les estadístiques de les dades.
Generació d'un esquema
Podem generar un esquema inicial utilitzant la funció tfdv.infer_schema
:
# Generar un esquema a partir de les estadístiques schema = tfdv.infer_schema(stats) # Visualitzar l'esquema tfdv.display_schema(schema)
Personalització de l'esquema
Podem personalitzar l'esquema per afegir restriccions específiques, com ara:
- Tipus de dades esperat.
- Rang de valors permès.
- Valors obligatoris.
# Exemple de personalització de l'esquema schema.feature[0].int_domain.min = 0 schema.feature[0].int_domain.max = 100
- Validació de dades
Un cop definit l'esquema, podem utilitzar-lo per validar noves dades i detectar anomalies.
Detecció d'anomalies
Podem detectar anomalies en les dades utilitzant la funció tfdv.validate_statistics
:
# Generar estadístiques per a les noves dades new_stats = tfdv.generate_statistics_from_csv(data_location='path/to/new/data.csv') # Validar les noves dades contra l'esquema anomalies = tfdv.validate_statistics(new_stats, schema) # Visualitzar les anomalies tfdv.display_anomalies(anomalies)
Correcció d'anomalies
Un cop detectades les anomalies, podem corregir-les ajustant les dades o actualitzant l'esquema segons sigui necessari.
Exercici pràctic
Exercici 1: Validació de dades amb TFDV
- Genera estadístiques descriptives per a un conjunt de dades proporcionat.
- Defineix un esquema basat en les estadístiques generades.
- Valida un nou conjunt de dades contra l'esquema definit.
- Identifica i corregeix qualsevol anomalia detectada.
Solució
import tensorflow_data_validation as tfdv # Pas 1: Generar estadístiques descriptives stats = tfdv.generate_statistics_from_csv(data_location='path/to/your/data.csv') tfdv.visualize_statistics(stats) # Pas 2: Definir un esquema schema = tfdv.infer_schema(stats) tfdv.display_schema(schema) # Pas 3: Validar un nou conjunt de dades new_stats = tfdv.generate_statistics_from_csv(data_location='path/to/new/data.csv') anomalies = tfdv.validate_statistics(new_stats, schema) tfdv.display_anomalies(anomalies) # Pas 4: Corregir anomalies (si n'hi ha) # Exemple de correcció d'una anomalia ajustant l'esquema schema.feature[0].int_domain.max = 120 anomalies = tfdv.validate_statistics(new_stats, schema) tfdv.display_anomalies(anomalies)
Conclusió
La validació de dades és un pas fonamental en el procés de desenvolupament de models de machine learning. Utilitzant TFDV, podem explorar, definir esquemes i validar les nostres dades de manera eficient, assegurant-nos que els nostres models es basen en dades de qualitat. En el proper tema, explorarem la transformació de dades amb TFX.
Curs de TensorFlow
Mòdul 1: Introducció a TensorFlow
- Què és TensorFlow?
- Configuració de TensorFlow
- Conceptes bàsics de TensorFlow
- Hola món amb TensorFlow
Mòdul 2: Conceptes bàsics de TensorFlow
Mòdul 3: Gestió de dades a TensorFlow
Mòdul 4: Construcció de xarxes neuronals
- Introducció a les xarxes neuronals
- Creació d'una xarxa neuronal simple
- Funcions d'activació
- Funcions de pèrdua i optimitzadors
Mòdul 5: Xarxes neuronals convolucionals (CNNs)
Mòdul 6: Xarxes neuronals recurrents (RNNs)
- Introducció a les RNNs
- Construcció d'una RNN
- Memòria a llarg termini (LSTM)
- Unitats recurrents amb porta (GRUs)
Mòdul 7: Tècniques avançades de TensorFlow
- Capes i models personalitzats
- TensorFlow Hub
- Aprenentatge per transferència
- Ajust de hiperparàmetres