Introduzione al versionamento dei dati con DVC
Ravi Bhadauria
Machine Learning Engineer
Riproducibile: ricrea gli stessi output in ambienti e tempi diversi
Modulare: scritto in moduli distinti, indipendenti e testabili
Coerente: unica fonte di verità per tutti i parametri

I file devono essere in un formato supportato
params.yamlUseremo YAML
.yaml o .ymlSpecifica i parametri come dizionari
:I commenti iniziano con #
Tipi di dato:
Strutture dati:
L'indentazione è importante
# Coppie chiave-valore
a: 1
b: 1.2
c: "String value"
# Array
a: [1, 2.2, 3, 4.8]
b:
- 5
- "String value"
# Dizionari annidati
a:
b: "Some value"
c: "Some other value"
# Parametri di preprocessing dei dati preprocess: ... target_column: RainTomorrow categorical_features: - Location - WindGustDir - ...# Parametri di training/valutazione del modello train_and_evaluate: rfc_params: n_estimators: 2 ...
# In model.py
def evaluate_model(model, X_test, y_test):
"""Evaluate a model on a test set and return metrics."""
y_pred = model.predict(X_test)
precision = precision_score(y_test, y_pred)
...
return { "accuracy": accuracy, "precision": precision,
"recall": recall, "f1_score": f1 }
# Nel codice di entry point (train_and_evaluate.py)
from model import evaluate_model
metrics = evaluate_model(model, X_test, y_test)

Introduzione al versionamento dei dati con DVC