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.

  1. 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.

  1. 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:

pip install tensorflow-data-validation

Importació de TFDV

Un cop instal·lat, podem importar TFDV en el nostre entorn de treball:

import tensorflow_data_validation as tfdv

  1. 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.

  1. 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

  1. 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

  1. Genera estadístiques descriptives per a un conjunt de dades proporcionat.
  2. Defineix un esquema basat en les estadístiques generades.
  3. Valida un nou conjunt de dades contra l'esquema definit.
  4. 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.

© Copyright 2024. Tots els drets reservats