Surveiller le Machine Learning en Python
Hakim Elakhrass
Co-founder and CEO of NannyML
dataset_name = "green_taxi_dataset.csv"
data = pd.read_csv(dataset_name)
data.head()

# 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']
)
# 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]
LGBMRegressor avec la bibliothèque lightgbm# 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)
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