Préparation des données pour NannyML

Surveiller le Machine Learning en Python

Hakim Elakhrass

Co-founder and CEO of NannyML

Chargement des données

dataset_name = "green_taxi_dataset.csv"
data = pd.read_csv(dataset_name)
data.head()

La capture d'écran montre les cinq premières lignes de l'ensemble de données.

Surveiller le Machine Learning en Python

Traitement des données

# Créer une partition des données
data['partition'] = pd.cut(
    data['lpep_pickup_datetime'],
    bins= [pd.to_datetime('2016-12-01'),
           pd.to_datetime('2016-12-08'),
           pd.to_datetime('2016-12-16'),
           pd.to_datetime('2017-01-01')],
    right=False,
    labels= ['train', 'test', 'prod']
)
Surveiller le Machine Learning en Python

Découper les données

# Nom de la colonne cible
target = 'tip_amount'
# Noms des colonnes de caractéristiques
features = ["PULocationID", "DOLocationID", "trip_distance", "VendorID", "pickup_time"]
# Ensemble d'entraînement
X_train = data.loc[data['partition'] == 'train', features]
y_train = data.loc[data['partition'] == 'train', target]

# Ensemble de test (référence ultérieure)
X_test = data.loc[data['partition'] == 'test', features]
y_test = data.loc[data['partition'] == 'test', target]

# Ensemble de production (analyse ultérieure)
X_prod = data.loc[data['partition'] == 'prod', features]
y_prod = data.loc[data['partition'] == 'prod', target]
Surveiller le Machine Learning en Python

Création du modèle

  • Entraîner LGBMRegressor avec la bibliothèque lightgbm
  • Évaluer le modèle sur un ensemble de test
  • Déployer le modèle
# Entraîner le modèle
model = LGBMRegressor(random_state=42)
model.fit(X_train, y_train)

# Faire des prédictions
y_pred_train = model.predict(X_train)
y_pred_test = model.predict(X_test)

# Évaluer le modèle sur entraînement et test
mae_train = MAE(y_train, y_pred_train)
mae_test = MAE(y_test, y_pred_test)

# Déployer le modèle en production
y_pred_prod = model.predict(X_prod)
Surveiller le Machine Learning en Python

Créer les ensembles de référence et d'analyse

Période de référence

  • Utilise un ensemble de test

  • Nécessite la vérité terrain

  • Définit la performance de base

Période d'analyse

  • Données de production les plus récentes

  • Vérité terrain facultative

  • NannyML analyse la dérive des données et la performance

# Créer l'ensemble de référence
reference = X_test.copy() # Caractéristiques de test
reference['y_pred'] = y_pred_test # Prédictions
reference['tip_amount'] = y_test # Étiquettes
reference = reference.join(
    data['lpep_pickup_datetime']) # Horodatage
# Créer l'ensemble d'analyse
analysis = X_prod.copy() # Caractéristiques de production
analysis['y_pred'] = y_pred_prod # Prédictions
analysis = analysis.join(
    data['lpep_pickup_datetime']) # Horodatage
Surveiller le Machine Learning en Python

Exemple d'ensemble de référence

  • Horodatage – moment où l'observation a eu lieu (facultatif)
  • Caractéristiques – variables fournies au modèle
  • Sorties du modèle
    • Prédictions – score de prédiction produit par le modèle
    • Étiquettes de classe – probabilités seuillées
  • Cible – contient la vérité terrain

L'image montre les cinq premières lignes de l'ensemble de référence.

Surveiller le Machine Learning en Python

Passons à la pratique !

Surveiller le Machine Learning en Python

Preparing Video For Download...