{ "cells": [ { "cell_type": "markdown", "id": "9b6f3ff7", "metadata": {}, "source": [ "# Detect High Model Drift \n", "With this tutorial you:
\n", "Understand how to use Eurybia to detect datadrift\n", "\n", "Contents:\n", "- Detect data drift \n", "- Compile Drift over years\n", "\n", "This public dataset comes from :\n", "\n", "https://www.kaggle.com/sobhanmoosavi/us-accidents/version/10\n", "\n", "---\n", "Acknowledgements\n", "- Moosavi, Sobhan, Mohammad Hossein Samavatian, Srinivasan Parthasarathy, and Rajiv Ramnath. “A Countrywide Traffic Accident Dataset.”, 2019.\n", "- Moosavi, Sobhan, Mohammad Hossein Samavatian, Srinivasan Parthasarathy, Radu Teodorescu, and Rajiv Ramnath. \"Accident Risk Prediction based on Heterogeneous Sparse Data: New Dataset and Insights.\" In proceedings of the 27th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems, ACM, 2019.\n", "---\n", "\n", "In this tutorial, the data are not loaded raw, a data preparation to facilitate the use of the tutorial has been done. You can find it here : \n", "https://github.com/MAIF/eurybia/blob/master/eurybia/data/dataprep_US_car_accidents.ipynb" ] }, { "cell_type": "markdown", "id": "6ee7dedd", "metadata": {}, "source": [ "**Requirements notice** : the following tutorial may use third party modules not included in Eurybia. \n", "You can find them all in one file [on our Github repository](https://github.com/MAIF/eurybia/blob/master/requirements.dev.txt) or you can manually install those you are missing, if any." ] }, { "cell_type": "code", "execution_count": 2, "id": "8c767469", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "from category_encoders import OrdinalEncoder\n", "import catboost\n", "from eurybia import SmartDrift\n", "from sklearn.model_selection import train_test_split\n", "from sklearn import metrics\n", "import numpy as np" ] }, { "cell_type": "markdown", "id": "939acff0", "metadata": {}, "source": [ "## Import Dataset and split in training and production dataset" ] }, { "cell_type": "code", "execution_count": 3, "id": "e0b10b1b", "metadata": {}, "outputs": [], "source": [ "from eurybia.data.data_loader import data_loading" ] }, { "cell_type": "code", "execution_count": 4, "id": "6d3d1d90", "metadata": {}, "outputs": [], "source": [ "df_car_accident = data_loading(\"us_car_accident\")" ] }, { "cell_type": "code", "execution_count": 5, "id": "8a0a6ef4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Start_LatStart_LngDistance(mi)Temperature(F)Humidity(%)Visibility(mi)day_of_week_accNautical_Twilightseason_acctargettarget_multiyear_accDescription
033.0-117.10.040.093.02.03Daywinter022019At Carmel Mountain Rd - Accident.
129.5-98.50.083.065.010.04Daysummer132017At TX-345-SP/Woodlawn Ave/Exit 567B - Accident.
232.7-96.80.088.057.010.00Nightsummer022021Incident on RUGGED DR near BERKLEY AVE Expect ...
340.0-76.30.061.058.010.04Dayspring022020At PA-741/Rohrerstown Rd - Accident.
441.5-81.81.071.053.010.00Daysummer022020At 117th St/Exit 166 - Accident.
\n", "
" ], "text/plain": [ " Start_Lat Start_Lng Distance(mi) Temperature(F) Humidity(%) \\\n", "0 33.0 -117.1 0.0 40.0 93.0 \n", "1 29.5 -98.5 0.0 83.0 65.0 \n", "2 32.7 -96.8 0.0 88.0 57.0 \n", "3 40.0 -76.3 0.0 61.0 58.0 \n", "4 41.5 -81.8 1.0 71.0 53.0 \n", "\n", " Visibility(mi) day_of_week_acc Nautical_Twilight season_acc target \\\n", "0 2.0 3 Day winter 0 \n", "1 10.0 4 Day summer 1 \n", "2 10.0 0 Night summer 0 \n", "3 10.0 4 Day spring 0 \n", "4 10.0 0 Day summer 0 \n", "\n", " target_multi year_acc Description \n", "0 2 2019 At Carmel Mountain Rd - Accident. \n", "1 3 2017 At TX-345-SP/Woodlawn Ave/Exit 567B - Accident. \n", "2 2 2021 Incident on RUGGED DR near BERKLEY AVE Expect ... \n", "3 2 2020 At PA-741/Rohrerstown Rd - Accident. \n", "4 2 2020 At 117th St/Exit 166 - Accident. " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_car_accident.head()" ] }, { "cell_type": "code", "execution_count": 6, "id": "78f258f5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Start_LatStart_LngDistance(mi)Temperature(F)Humidity(%)Visibility(mi)day_of_week_accNautical_Twilightseason_acctargettarget_multiyear_accDescription
033.0-117.10.040.093.02.03Daywinter022019At Carmel Mountain Rd - Accident.
129.5-98.50.083.065.010.04Daysummer132017At TX-345-SP/Woodlawn Ave/Exit 567B - Accident.
232.7-96.80.088.057.010.00Nightsummer022021Incident on RUGGED DR near BERKLEY AVE Expect ...
340.0-76.30.061.058.010.04Dayspring022020At PA-741/Rohrerstown Rd - Accident.
441.5-81.81.071.053.010.00Daysummer022020At 117th St/Exit 166 - Accident.
\n", "
" ], "text/plain": [ " Start_Lat Start_Lng Distance(mi) Temperature(F) Humidity(%) \\\n", "0 33.0 -117.1 0.0 40.0 93.0 \n", "1 29.5 -98.5 0.0 83.0 65.0 \n", "2 32.7 -96.8 0.0 88.0 57.0 \n", "3 40.0 -76.3 0.0 61.0 58.0 \n", "4 41.5 -81.8 1.0 71.0 53.0 \n", "\n", " Visibility(mi) day_of_week_acc Nautical_Twilight season_acc target \\\n", "0 2.0 3 Day winter 0 \n", "1 10.0 4 Day summer 1 \n", "2 10.0 0 Night summer 0 \n", "3 10.0 4 Day spring 0 \n", "4 10.0 0 Day summer 0 \n", "\n", " target_multi year_acc Description \n", "0 2 2019 At Carmel Mountain Rd - Accident. \n", "1 3 2017 At TX-345-SP/Woodlawn Ave/Exit 567B - Accident. \n", "2 2 2021 Incident on RUGGED DR near BERKLEY AVE Expect ... \n", "3 2 2020 At PA-741/Rohrerstown Rd - Accident. \n", "4 2 2020 At 117th St/Exit 166 - Accident. " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_car_accident.head()" ] }, { "cell_type": "code", "execution_count": 7, "id": "05039303", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(50000, 13)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_car_accident.shape" ] }, { "cell_type": "code", "execution_count": 8, "id": "a1d226fa", "metadata": {}, "outputs": [], "source": [ "# Let us consider that the column \"year_acc\" corresponds to the reference date. \n", "#In 2016, a model was trained using data. And in next years, we want to detect data drift on new data in production to predict\n", "df_accident_baseline = df_car_accident.loc[df_car_accident['year_acc'] == 2016]\n", "df_accident_2017 = df_car_accident.loc[df_car_accident['year_acc'] == 2017]\n", "df_accident_2018 = df_car_accident.loc[df_car_accident['year_acc'] == 2018]\n", "df_accident_2019 = df_car_accident.loc[df_car_accident['year_acc'] == 2019]\n", "df_accident_2020 = df_car_accident.loc[df_car_accident['year_acc'] == 2020]\n", "df_accident_2021 = df_car_accident.loc[df_car_accident['year_acc'] == 2021]" ] }, { "cell_type": "code", "execution_count": 9, "id": "1e81bb4e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
target01
year_acc
201671.40628728.593713
201767.25462032.745380
201866.63466233.365338
201979.55118220.448818
202089.94480410.055196
202198.2599301.740070
\n", "
" ], "text/plain": [ "target 0 1\n", "year_acc \n", "2016 71.406287 28.593713\n", "2017 67.254620 32.745380\n", "2018 66.634662 33.365338\n", "2019 79.551182 20.448818\n", "2020 89.944804 10.055196\n", "2021 98.259930 1.740070" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#We will train a classification model to predict the severity of an accident. 0 for a less severe accident and 1 for a severe accident.\n", "#Let's check percentage in class 0 and 1\n", "pd.crosstab(df_car_accident.year_acc, df_car_accident.target, normalize = 'index')*100" ] }, { "cell_type": "code", "execution_count": 10, "id": "c13ca2a5", "metadata": {}, "outputs": [], "source": [ "y_df_learning=df_accident_baseline['target'].to_frame()\n", "X_df_learning=df_accident_baseline[df_accident_baseline.columns.difference([\"target\", \"target_multi\", \"year_acc\", \"Description\"])]\n", "\n", "y_df_2017=df_accident_2017['target'].to_frame()\n", "X_df_2017=df_accident_2017[df_accident_2017.columns.difference([\"target\", \"target_multi\", \"year_acc\", \"Description\"])]\n", "\n", "y_df_2018=df_accident_2018['target'].to_frame()\n", "X_df_2018=df_accident_2018[df_accident_2018.columns.difference([\"target\", \"target_multi\", \"year_acc\", \"Description\"])]\n", "\n", "y_df_2019=df_accident_2019['target'].to_frame()\n", "X_df_2019=df_accident_2019[df_accident_2019.columns.difference([\"target\", \"target_multi\", \"year_acc\", \"Description\"])]\n", "\n", "y_df_2020=df_accident_2020['target'].to_frame()\n", "X_df_2020=df_accident_2020[df_accident_2020.columns.difference([\"target\", \"target_multi\", \"year_acc\", \"Description\"])]\n", "\n", "y_df_2021=df_accident_2021['target'].to_frame()\n", "X_df_2021=df_accident_2021[df_accident_2021.columns.difference([\"target\", \"target_multi\", \"year_acc\", \"Description\"])]" ] }, { "cell_type": "markdown", "id": "676b7cd8", "metadata": {}, "source": [ "## Building Supervized Model" ] }, { "cell_type": "code", "execution_count": 11, "id": "daba7f7d", "metadata": {}, "outputs": [], "source": [ "features = ['Start_Lat', 'Start_Lng', 'Distance(mi)', 'Temperature(F)',\n", " 'Humidity(%)', 'Visibility(mi)', 'day_of_week_acc', 'Nautical_Twilight',\n", " 'season_acc']" ] }, { "cell_type": "code", "execution_count": 12, "id": "8f971d9b", "metadata": {}, "outputs": [], "source": [ "features_to_encode = [col for col in X_df_learning[features].columns if X_df_learning[col].dtype not in ('float64','int64')]\n", "\n", "encoder = OrdinalEncoder(cols=features_to_encode)\n", "encoder = encoder.fit(X_df_learning[features])\n", "\n", "X_df_learning_encoded=encoder.transform(X_df_learning)" ] }, { "cell_type": "code", "execution_count": 13, "id": "1e7fc14c", "metadata": {}, "outputs": [], "source": [ "Xtrain, Xtest, ytrain, ytest = train_test_split(X_df_learning_encoded, y_df_learning, train_size=0.75, random_state=1)" ] }, { "cell_type": "code", "execution_count": 14, "id": "d65eadcb", "metadata": {}, "outputs": [], "source": [ "train_pool_cat = catboost.Pool(data=Xtrain, label= ytrain, cat_features = features_to_encode)\n", "test_pool_cat = catboost.Pool(data=Xtest, label= ytest, cat_features = features_to_encode)" ] }, { "cell_type": "code", "execution_count": 15, "id": "8bcecc82", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "69e0032963b14e3d8792d75564cd1a25", "version_major": 2, "version_minor": 0 }, "text/plain": [ "MetricVisualizer(layout=Layout(align_self='stretch', height='500px'))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model = catboost.CatBoostClassifier(loss_function= \"Logloss\", eval_metric=\"Logloss\",\n", " learning_rate=0.143852,\n", " iterations=300,\n", " l2_leaf_reg=15,\n", " max_depth = 4,\n", " use_best_model=True,\n", " custom_loss=['Accuracy', 'AUC', 'Logloss'])\n", "\n", "model = model.fit(train_pool_cat, plot=True,eval_set=test_pool_cat, verbose=False)" ] }, { "cell_type": "code", "execution_count": 16, "id": "ae73b71a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.7589233355711246\n" ] } ], "source": [ "proba = model.predict_proba(Xtest)\n", "print(metrics.roc_auc_score(ytest,proba[:,1]))" ] }, { "cell_type": "markdown", "id": "f8010a48", "metadata": {}, "source": [ "## Use Eurybia for data validation" ] }, { "cell_type": "code", "execution_count": 17, "id": "c7ae204e", "metadata": {}, "outputs": [], "source": [ "from eurybia import SmartDrift" ] }, { "cell_type": "code", "execution_count": 18, "id": "f8456034", "metadata": {}, "outputs": [], "source": [ "SD = SmartDrift(df_current=X_df_2017,\n", " df_baseline=X_df_learning,\n", " deployed_model=model, # Optional: put in perspective result with importance on deployed model\n", " encoding=encoder # Optional: if deployed_model and encoder to use this model\n", " )" ] }, { "cell_type": "code", "execution_count": 19, "id": "3d998196", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: total: 0 ns\n", "Wall time: 0 ns\n", "The computed AUC on the X_test used to build datadrift_classifier is equal to: 0.6585689489728102\n", "car_accident_auc.csv did not exist and was created. \n" ] } ], "source": [ "%time\n", "SD.compile(full_validation=True, # Optional: to save time, leave the default False value. If True, analyze consistency on modalities between columns.\n", " date_compile_auc = '01/01/2017', # Optional: useful when computing the drift for a time that is not now\n", " datadrift_file = \"car_accident_auc.csv\" # Optional: name of the csv file that contains the performance history of data drift\n", " )\n", " " ] }, { "cell_type": "markdown", "id": "01c2f690", "metadata": {}, "source": [ "As soon as compile() method, Eurybia displays default consistency checks as warnings.
\n", "If some modalities are not present during training and are in production dataset, the deployed model will consider them wrongly.
\n", "Inversely, if some modalities are present during training and are not in production dataset, it means that some profiles are missing." ] }, { "cell_type": "markdown", "id": "c733b40f", "metadata": {}, "source": [ "## Add model drift in report" ] }, { "cell_type": "markdown", "id": "ba8578c8", "metadata": {}, "source": [ "For the moment, the model drift part of eurybia only consists of displaying performance of deployed model. \n", "(We hope to bring new features in the future on this part)" ] }, { "cell_type": "markdown", "id": "65e4592d", "metadata": {}, "source": [ "### Put model performance in DataFrame" ] }, { "cell_type": "code", "execution_count": 20, "id": "f53935dd", "metadata": {}, "outputs": [], "source": [ "proba = model.predict_proba(X_df_2017)\n", "performance = metrics.roc_auc_score(y_df_2017,proba[:,1]).round(5)" ] }, { "cell_type": "code", "execution_count": 21, "id": "4be8debb", "metadata": {}, "outputs": [], "source": [ "#Create Dataframe to track performance over the years\n", "df_performance = pd.DataFrame({'annee': [2017], 'mois':[1], 'performance': [performance]})" ] }, { "cell_type": "code", "execution_count": 22, "id": "136261b6", "metadata": {}, "outputs": [], "source": [ "SD.add_data_modeldrift(dataset=df_performance,metric='performance') " ] }, { "cell_type": "code", "execution_count": 23, "id": "af9bf77a", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "Report saved to ./report_car_accident_modeldrift_2017.html. To upload and share your report, create a free Datapane account by running `!datapane signup`." ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "SD.generate_report( \n", " output_file='report_car_accident_modeldrift_2017.html', \n", " title_story=\"Model drift Report\",\n", " title_description=\"\"\"US Car accident model drift 2017\"\"\", # Optional: add a subtitle to describe report\n", " project_info_file=\"../../eurybia/data/project_info_car_accident.yml\" # Optional: add information on report\n", " )" ] }, { "cell_type": "markdown", "id": "0aca5ec4", "metadata": {}, "source": [ "This tutorial contains only anlysis on additional features of model drift. For more detailed information on data drift, you can consult these tutorials : (https://github.com/MAIF/eurybia/tree/master/tutorial/model_drift/tutorial02-datadrift-high-datadrift.ipynb)" ] }, { "cell_type": "markdown", "id": "6710b459", "metadata": {}, "source": [ "## Compile Drift over years" ] }, { "cell_type": "markdown", "id": "4bd535e1", "metadata": {}, "source": [ "### Compile Drift et generate report for Year 2018" ] }, { "cell_type": "code", "execution_count": 24, "id": "756c9de1", "metadata": {}, "outputs": [], "source": [ "SD = SmartDrift(df_current=X_df_2018,\n", " df_baseline=X_df_learning,\n", " deployed_model=model, # Optional: put in perspective result with importance on deployed model\n", " encoding=encoder # Optional: if deployed_model and encoder to use this model\n", " )" ] }, { "cell_type": "code", "execution_count": 25, "id": "572b1f06", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The computed AUC on the X_test used to build datadrift_classifier is equal to: 0.7036329129677259\n" ] } ], "source": [ "SD.compile(full_validation=True, # Optional: to save time, leave the default False value. If True, analyze consistency on modalities between columns.\n", " date_compile_auc = '01/01/2018', # Optional: useful when computing the drift for a time that is not now\n", " datadrift_file = \"car_accident_auc.csv\" # Optional: name of the csv file that contains the performance history of data drift\n", " )" ] }, { "cell_type": "code", "execution_count": 26, "id": "ecebfa0c", "metadata": {}, "outputs": [], "source": [ "proba = model.predict_proba(X_df_2018)\n", "performance = metrics.roc_auc_score(y_df_2018,proba[:,1]).round(5)\n", "df_performance = df_performance.append({'annee': 2018, 'mois':1, 'performance': performance}, ignore_index=True)" ] }, { "cell_type": "markdown", "id": "810c6da6", "metadata": {}, "source": [ "### Compile Drift et generate report for Year 2019" ] }, { "cell_type": "code", "execution_count": 27, "id": "0912c225", "metadata": {}, "outputs": [], "source": [ "SD = SmartDrift(df_current=X_df_2019,\n", " df_baseline=X_df_learning,\n", " deployed_model=model, # Optional: put in perspective result with importance on deployed model\n", " encoding=encoder # Optional: if deployed_model and encoder to use this model\n", " )" ] }, { "cell_type": "code", "execution_count": 28, "id": "eacffb97", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The computed AUC on the X_test used to build datadrift_classifier is equal to: 0.7856527709300022\n" ] } ], "source": [ "SD.compile(full_validation=True, # Optional: to save time, leave the default False value. If True, analyze consistency on modalities between columns.\n", " date_compile_auc = '01/01/2019', # Optional: useful when computing the drift for a time that is not now\n", " datadrift_file = \"car_accident_auc.csv\" # Optional: name of the csv file that contains the performance history of data drift\n", " )" ] }, { "cell_type": "code", "execution_count": 29, "id": "985c1960", "metadata": {}, "outputs": [], "source": [ "proba = model.predict_proba(X_df_2019)\n", "performance = metrics.roc_auc_score(y_df_2019,proba[:,1]).round(5)\n", "df_performance = df_performance.append({'annee': 2019, 'mois':1, 'performance': performance}, ignore_index=True)" ] }, { "cell_type": "markdown", "id": "1fbd247b", "metadata": {}, "source": [ "### Compile Drift et generate report for Year 2020" ] }, { "cell_type": "code", "execution_count": 30, "id": "bf363bc6", "metadata": {}, "outputs": [], "source": [ "SD = SmartDrift(df_current=X_df_2020,\n", " df_baseline=X_df_learning,\n", " deployed_model=model, # Optional: put in perspective result with importance on deployed model\n", " encoding=encoder # Optional: if deployed_model and encoder to use this model\n", " )" ] }, { "cell_type": "code", "execution_count": 31, "id": "f7b102bf", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The computed AUC on the X_test used to build datadrift_classifier is equal to: 0.7902450838961592\n" ] } ], "source": [ "SD.compile(full_validation=True, # Optional: to save time, leave the default False value. If True, analyze consistency on modalities between columns.\n", " date_compile_auc = '01/01/2020', # Optional: useful when computing the drift for a time that is not now\n", " datadrift_file = \"car_accident_auc.csv\" # Optional: name of the csv file that contains the performance history of data drift\n", " )" ] }, { "cell_type": "code", "execution_count": 32, "id": "2636bcb7", "metadata": {}, "outputs": [], "source": [ "proba = model.predict_proba(X_df_2020)\n", "performance = metrics.roc_auc_score(y_df_2020,proba[:,1]).round(5)\n", "df_performance = df_performance.append({'annee': 2020, 'mois':1, 'performance': performance}, ignore_index=True)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "1846cdbe", "metadata": {}, "source": [ "### Compile Drift et generate report for Year 2021" ] }, { "cell_type": "code", "execution_count": 33, "id": "da3c7624", "metadata": {}, "outputs": [], "source": [ "SD = SmartDrift(df_current=X_df_2021,\n", " df_baseline=X_df_learning,\n", " deployed_model=model, # Optional: put in perspective result with importance on deployed model\n", " encoding=encoder # Optional: if deployed_model and encoder to use this model\n", " )" ] }, { "cell_type": "code", "execution_count": 34, "id": "6b838b56", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The computed AUC on the X_test used to build datadrift_classifier is equal to: 0.7500011519622525\n" ] } ], "source": [ "SD.compile(full_validation=True, # Optional: to save time, leave the default False value. If True, analyze consistency on modalities between columns.\n", " date_compile_auc = '01/01/2021', # Optional: useful when computing the drift for a time that is not now\n", " datadrift_file = \"car_accident_auc.csv\" # Optional: name of the csv file that contains the performance history of data drift\n", " )" ] }, { "cell_type": "code", "execution_count": 35, "id": "ff3d4d8a", "metadata": {}, "outputs": [], "source": [ "proba = model.predict_proba(X_df_2021)\n", "performance = metrics.roc_auc_score(y_df_2021,proba[:,1]).round(5)\n", "df_performance = df_performance.append({'annee': 2021, 'mois':1, 'performance': performance}, ignore_index=True)" ] }, { "cell_type": "code", "execution_count": 36, "id": "f9d09d5e", "metadata": {}, "outputs": [], "source": [ "SD.add_data_modeldrift(dataset=df_performance,metric='performance') " ] }, { "cell_type": "code", "execution_count": 37, "id": "a936527c", "metadata": {}, "outputs": [ { "data": { "image/png": "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EiBAgAABAgQIECBAoCABgbCgYhoKAQIECBAgQIAAAQIEuggIhF20LEuAAAECBAgQIECAAIGCBATCgoppKAQIECBAgAABAgQIEOgiIBB20bIsAQIECBAgQIAAAQIEChIQCAsqpqEQIECAAAECBAgQIECgi4BA2EXLsgQIECBAgAABAgQIEChIQCAsqJiGQoAAAQIECBAgQIAAgS4CAmEXLcsSIECAAAECBAgQIECgIAGBsKBiGgoBAgQIECBAgAABAgS6CAiEXbQsS4AAAQIECBAgQIAAgYIEBMKCimkoBAgQIECAAAECBAgQ6CIgEHbRsiwBAgQIECBAgAABAgQKEhAICyqmoRAgQIAAAQIECBAgQKCLgEDYRcuyBAgQIECAAAECBAgQKEhAICyomIZCgAABAgQIECBAgACBLgICYRctyxIgQIAAAQIECBAgQKAgAYGwoGIaCgECBAgQIECAAAECBLoICIRdtCxLgAABAgQIECBAgACBggQEwoKKaSgECBAgQIAAAQIECBDoIiAQdtGyLAECBAgQIECAAAECBAoSEAgLKqahECBAgAABAgQIECBAoIuAQNhFy7IECBAgQIAAAQIECBAoSEAgLKiYhkKAAAECBAgQIECAAIEuAgJhFy3LEiBAgAABAgQIECBAoCABgbCgYhoKAQIECBAgQIAAAQIEuggIhF20LEuAAAECBAgQIECAAIGCBATCgoppKAQIECBAgAABAgQIEOgiIBB20bIsAQIECBAgQIAAAQIEChIQCAsqpqEQIECAAAECBAgQIECgi4BA2EXLsgQIECBAgAABAgQIEChIQCAsqJiGQoAAAQIECBAgQIAAgS4CAmEXLcsSIECAAAECBAgQIECgIAGBsKBiGgoBAgQIECBAgAABAgS6CAiEXbQsS4AAAQIECBAgQIAAgYIEBMKCimkoBAgQIECAAAECBAgQ6CIgEHbRsiwBAgQIECBAgAABAgQKEhAICyqmoRAgQIAAAQIECBAgQKCLgEDYRcuyBAgQIECAAAECBAgQKEhAICyomIZCgAABAgQIECBAgACBLgICYRctyxIgQIAAAQIECBAgQKAgAYGwoGIaCgECBAgQIECAAAECBLoICIRdtCxLgAABAgQIECBAgACBggQEwoKKaSgECBAgQIAAAQIECBDoIiAQdtGyLAECBAgQIECAAAECBAoSEAgLKqahECBAgAABAgQIECBAoIuAQNhFy7IECBAgQIAAAQIECBAoSEAgLKiYhkKAAAECBAgQIECAAIEuAgJhFy3LEiBAgAABAgQIECBAoCABgbCgYhoKAQIECBAgQIAAAQIEuggIhF20LEuAAAECBAgQIECAAIGCBATCgoppKAQIECBAgAABAgQIEOgiIBB20bIsAQIECBAgQIAAAQIEChIQCAsqpqEQIECAAAECBAgQIECgi8A/Ax780MfGA45KAAAAAElFTkSuQmCC" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "SD.plot.generate_historical_datadrift_metric() # works if date_compile_auc and/or datadrift_file are filled" ] }, { "attachments": {}, "cell_type": "markdown", "id": "2324467b", "metadata": {}, "source": [ "In 2019 and 2020, data drift is very high. Is there any impact on the performance of the model?" ] }, { "cell_type": "code", "execution_count": 38, "id": "64665647", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4QAAAJYCAYAAAA6xSjbAAAgAElEQVR4XuzdCZRU1YH/8V/v0Oy77DRrNwooIJN2A7UDbiwqIJqZJJLxH5IxcbL8k2gSiCaBmEycOCF/dZwQHCeKgsjiwehgAoKSKKCA2k03SyPQiDRrQze91v/cl7zOo6juWl5Vd1W9b52TE6Hffe/ez73V1K/ue/em+Hw+n3ghgAACCCCAAAIIIIAAAgh4TiCFQOi5PqfBCCCAAAIIIIAAAggggIAlQCBkICCAAAIIIIAAAggggAACHhUgEHq042k2AggggAACCCCAAAIIIEAgZAwggAACCCCAAAIIIIAAAh4VIBB6tONpNgIIIIAAAggggAACCCBAIGQMIIAAAggggAACCCCAAAIeFSAQerTjaTYCCCCAAAIIIIAAAgggQCBkDCCAAAIIIIAAAggggAACHhUgEHq042k2AggggAACCCCAAAIIIEAgZAwggAACCCCAAAIIIIAAAh4VIBB6tONpNgIIIIAAAggggAACCCBAIGQMIIAAAggggAACCCCAAAIeFSAQerTjaTYCCCCAAAIIIIAAAgggQCBkDCCAAAIIIIAAAggggAACHhUgEHq042k2AggggAACCCCAAAIIIEAgZAwggAACCCCAAAIIIIAAAh4VIBB6tONpNgIIIIAAAggggAACCCBAIGQMIIAAAggggAACCCCAAAIeFSAQerTjaTYCCCCAAAIIIIAAAgggQCBkDCCAAAIIIIAAAggggAACHhUgEHq042k2AggggAACCCCAAAIIIEAgZAwggAACCCCAAAIIIIAAAh4VIBB6tONpNgIIIIAAAggggAACCCBAIGQMIIAAAggggAACCCCAAAIeFSAQerTjaTYCCCCAAAIIIIAAAgggQCBkDCCAAAIIIIAAAggggAACHhUgEHq042k2AggggAACCCCAAAIIIEAgZAwggAACCCCAAAIIIIAAAh4VIBB6tONpNgIIIIAAAggggAACCCBAIGQMIIAAAggggAACCCCAAAIeFSAQerTjaTYCCCCAAAIIIIAAAgggQCBkDCCAAAIIIIAAAggggAACHhUgEHq042k2AggggAACCCCAAAIIIEAgZAwggAACCCCAAAIIIIAAAh4VIBB6tONpNgIIIIAAAggggAACCCBAIGQMIIAAAggggAACCCCAAAIeFSAQerTjaTYCCCCAAAIIIIAAAgggQCBkDCCAAAIIIIAAAggggAACHhUgEHq042k2AggggAACCCCAAAIIIEAgZAwggAACCCCAAAIIIIAAAh4VIBB6tONpNgIIIIAAAggggAACCCBAIGQMIIAAAggggAACCCCAAAIeFSAQerTjaTYCCCCAAAIIIIAAAgggQCBkDCCAAAIIIIAAAggggAACHhUgEHq042k2AggggAACCCCAAAIIIEAgZAwggAACCCCAAAIIIIAAAh4VIBB6tONpNgIIIIAAAggggAACCCBAIGQMIIAAAggggAACCCCAAAIeFSAQerTjaTYCCCCAAAIIIIAAAgggQCBkDCCAAAIIIIAAAggggAACHhUgEHq042l2ywk8/PDDWrNmTbMXnDRpksaNG6cpU6aoW7duLVK5qqoq/c///I9eeeUVHTp0yLrmb3/7W11++eUtcn0u8ncB0/fmNX/+fE2fPj3qNKGMQedFY1WP5hpmGyxbtkzDhg1zZWDG9uuvv66RI0decK7Vq1frkUce0bRp07RgwQJX1/BiYduvNcaH8U62/mttz1iNYfu9vG3bNleXSLb+doVBYQRiLEAgjDEwp0cgnA/j/fr1029+8xuZ/4/167HHHtPvf/976zLmA7J5felLX2qRa8e6bYl2fgKhrC9EzCsagdB+z/mfiw+Y7t4ZrR1gkq3/WtvT3WhoujSBMFaynBeB2AkQCGNny5kRsATsD6fNzUq8//771oyFmakbM2aMlixZEnM9MxNlrsesYMypg16gpQJha83sBAVQywTCUOrBMU0LtHaAIRAmxugkECZGP1FLBJwCBELGAwIxFgglEJoqlJSUaM6cOVZtWiKkRXNGJsaESX/6b33rW9qwYUPM+t0egwTCpB9KMW0ggTC6vK3tGd3W/P1sBMJYyXJeBGInQCCMnS1nRsASCDUQmmObmynasmWLVqxYYQUH8zIziQUFBbr99tvVtm3bC7SdHzR69uypn/3sZ9ZsoHlWMSsrS6+99tpFveMfFtavX69XX33V9fUeeughbd682Xp2y1zjmmuu0TPPPNN4u6ppxz333GO1xbxM3c3/duzYYd2+etttt+kf//EfL2qjOdaYmP9t3Lix8TlIc778/HzdcccdFzyPaQduM1P7ne98x3rGzHmdiRMnavbs2U3eMhuOv123UPvL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A2E4s+7RuC7nQAABBOJFgEAYLz1BPRBAAAEEEPCIQDwFQvuW0VCfyfVIF9FMBBDwkACB0EOdTVMRQAABBBCIB4HWDoTmlse2bds2LswVaAuVeHCiDggggEBLCBAIW0KZayCAAAIIIIBAo0BrB0J7pWK7QswOMjgRQMDLAgRCL/c+bUcAAQQQQKAVBFo7ENorXpqZwfvuu89a/IYXAggg4FUBAqFXe552I4AAAggggAACCCCAgOcFCISeHwIAIIAAAggggAACCCCAgFcFCIRe7XnajQACCCCAAAIIIIAAAp4XIBB6fggAgAACCCCAAAIIIIAAAl4VIBB6tedpNwIIIIAAAggggAACCHhegEDo+SEAAAIIIIAAAggggAACCHhVgEDo1Z6n3QgggAACCCCAAAIIIOB5AQKh54cAAAgggAACCCCAAAIIIOBVAQKhV3uediOAAAIIIIAAAggggIDnBQiEnh8CACCAAAIIIIAAAggggIBXBQiEXu152o0AAggggAACCCCAAAKeFyAQen4IAIAAAggggAACCCCAAAJeFSAQerXnaTcCCCCAAAIIIIAAAgh4XoBA6PkhAAACCCCAAAIIIIAAAgh4VYBA6NWep90IIIAAAggggAACCCDgeQECoeeHAAAIIIAAAggggAACCCDgVQECoVd7nnYjgAACCCCAAAIIIICA5wUIhJ4fAgAggAACCCCAAAIIIICAVwUIhF7tedqNAAIIIIAAAggggAACnhcgEHp+CACAAAIIIIAAAggggAACXhUgEHq152k3AggggAACCCCAAAIIeF6AQOj5IQAAAggggAACCCCAAAIIeFWAQOjVnqfdCCCAAAIIIIAAAggg4HkBAqHnhwAACCCAAAIIIIAAAggg4FUBAqFXe552I4AAAggggAACCCCAgOcFCISeHwIAIIAAAggggAACCCCAgFcFCIRe7XnajQACCCCAAAIIIIAAAp4XIBC6GALDhg1TSUmJizNQFAEEEEAAAQQQQAABBBBoPQECoQt7AqELPIoigAACCCCAAAIIIIBAqwsQCF10AYHQBR5FEUAAAQQQQAABBBBAoNUFCIQuuoBA6AKPoggggAACCCCAAAIIINDqAgRCF11AIHSBR1EEEEAAAQQQQAABBBBodQECoYsuIBC6wKMoAggggAACCCCAAAIItLoAgdBFFxAIXeBRFAEE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K1cSCKMWpAACCCCAgJMECIROGi3aigACCCBgC/gGwvvuu08LFy685P/PnDlTjzzySNRiCxYs0NatWwmEUctRAAEEEEDAiQIEQieOGm1GAAEE0lwgWCDcsmWLFi1a1K7je5bQ/9+8G3kD5YkTJ+wlooFe4erpaPhM82Gk+wgggAACKSBAIEyBQaAJCCCAAALRCQQLhP6hzrvkM1gY9A2Fd955Z9hA+NRTT+nJJ58M2tj3338/uo6wNQIIIIAAAkkWIBAmeQDYPQIIIIBA9AKRBsKHH35Yt99+uwItA62oqNC8efPsnfveiCbYklHf7X3PCL744ot69NFH7Xp8l69G3ytKIIAAAgggkHgBAmHizdkjAggggIChQLSB0H93vjeO8f6b9+xesEAY7uygf7A07CLFEUAAAQQQSIgAgTAhzOwEAQQQQCCWApEGQu+SUd+ze8HaQSCM5QhRFwIIIICAUwQIhE4ZKdqJAAIIINAuECwQ+ge/NWvWaNSoUZ+4K6l3eaj/ttEEQpaGMhkRQAABBNwiQCB0y0jSDwQQQCCNBIIFQt/lnuGCn/8S0HCBMFiA9F1+SlBMo0lIVxFAAAGXCBAIXTKQdAMBBBBIJ4FoH0wfyfbeQBjoWkHvvwW69tDr7ntjmnQaC/qKAAIIIOBsAQKhs8eP1iOAAAJpKRAq4AUKZoGeMWiFPN8zit7lpRaof/2+zyH0vauoF58zg2k5Dek0AgggKZjOEgAAArNJREFU4AoBAqErhpFOIIAAAggggAACCCCAAALRCxAIozejBAIIIIAAAggggAACCCDgCgECoSuGkU4ggAACCCCAAAIIIIAAAtELEAijN6MEAggggAACCCCAAAIIIOAKAQKhK4aRTiCAAAIIIIAAAggggAAC0QsQCKM3owQCCCCAAAIIIIAAAggg4AoBAqErhpFOIIAAAggggAACCCCAAALRCxAIozejBAIIIIAAAggggAACCCDgCgECoSuGkU4ggAACCCCAAAIIIIAAAtELEAijN6MEAggggAACCCCAAAIIIOAKAQKhK4aRTiCAAAIIIIAAAggggAAC0QsQCKM3owQCCCCAAAIIIIAAAggg4AoBAqErhpFOIIAAAggggAACCCCAAALRCxAIozejBAIIIIAAAggggAACCCDgCgECoSuGkU4ggAACCCCAAAIIIIAAAtELEAijN6MEAggggAACCCCAAAIIIOAKAQKhK4aRTiCAAAIIIIAAAggggAAC0QsQCKM3owQCCCCAAAIIIIAAAggg4AoBAqErhpFOIIAAAggggAACCCCAAALRCxAIozejBAIIIIAAAggggAACCCDgCgECoSuGkU4ggAACCCCAAAIIIIAAAtELEAijN6MEAggggAACCCCAAAIIIOAKAQKhK4aRTiCAAAIIIIAAAggggAAC0QsQCKM3owQCCCCAAAIIIIAAAggg4AoBAqErhpFOIIAAAggggAACCCCAAALRCxAIozejBAIIIIAAAggggAACCCDgCgECoSuGkU4ggAACCCCAAAIIIIAAAtELEAijN6MEAggggAACCCCAAAIIIOAKAQKhK4aRTiCAAAIIIIAAAggggAAC0QsQCKM3owQCCCCAAAIIIIAAAggg4AoBAqErhpFOIIAAAggggAACCCCAAALRC/w/a/AuxwWfW1sAAAAASUVORK5CYII=" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "SD.plot.generate_modeldrift_data() # works if add_data_modeldrift used before " ] }, { "attachments": {}, "cell_type": "markdown", "id": "438706e2", "metadata": {}, "source": [ "While data drift was high in 2019, the impact on model performance is low. In 2020, data drift leads to a decrease in model performance." ] }, { "cell_type": "code", "execution_count": 39, "id": "c9089d96", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "Report saved to ./report_car_accident_modeldrift_2021.html. To upload and share your report, create a free Datapane account by running `!datapane signup`." ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "SD.generate_report( \n", " output_file='report_car_accident_modeldrift_2021.html', \n", " title_story=\"Model drift Report\",\n", " title_description=\"\"\"US Car accident model drift 2021\"\"\", # Optional: add a subtitle to describe report\n", " project_info_file=\"../../eurybia/data/project_info_car_accident.yml\" # Optional: add information on report\n", " ) " ] } ], "metadata": { "kernelspec": { "display_name": "eurybia_3_9", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.16" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "336px" }, "toc_section_display": true, "toc_window_display": true }, "vscode": { "interpreter": { "hash": "36c4204cc0170e083c18487e195263df35fcafba9d65a5415ab6b0958d51e154" } } }, "nbformat": 4, "nbformat_minor": 5 }