Models in production

Nu we de data hebben leren kennen. Kunnen we data beginnen op kuisen.

Check incoming records

Cruciaal om inkomende data te checken of ze wel binnen de ranges valt waarbinnnen ons model getrained is anders kunnen we wel eens zeer vreemde resultaten krijgen.

  • range constraints

  • schema enforcement

Model drift

Het is best om om de x tijd het pr model terug op nieuwe historisch data te draaien zodat we model drift kunnen detecteren. Belangrijk is om daar via human in the loop wel feedback te kunnen verzamelen. Meestal wordt een ml model getrained op historische data waar menselijke redactie op gedaan is. Hoe evolueert ook onze input data. Worden bijvoorbeeld bepaalde categorien meer gebruikt dan bij initiele training.

Fairness

Hebben we ons model bekeken op fairness. Zijn er geen discrimenerende factoren in ons model. Kunnen we zelf toch een verklaring geven waarom een black box model toch een bepaalde waarde heeft voorspelt.

What if tool

from pycaret.datasets import get_data
boston = get_data('boston')
from pycaret.regression import *
exp_name = setup(data = boston, silent=True ,  target = 'medv')
rf = create_model('rf')
  MAE MSE RMSE R2 RMSLE MAPE
0 2.4815 17.9881 4.2412 0.7775 0.1940 0.1549
1 1.5997 5.3083 2.3040 0.9461 0.0985 0.0780
2 2.5142 15.2727 3.9080 0.7630 0.1506 0.1145
3 2.2459 9.8424 3.1373 0.8559 0.1342 0.0992
4 1.8837 5.1082 2.2601 0.9373 0.1455 0.1201
5 2.1402 7.8536 2.8024 0.8924 0.1372 0.1190
6 2.8024 17.5004 4.1833 0.7881 0.1776 0.1366
7 2.2694 10.0666 3.1728 0.8981 0.1319 0.1025
8 2.8389 18.9583 4.3541 0.8200 0.1904 0.1442
9 1.8911 6.2866 2.5073 0.8302 0.1371 0.1095
Mean 2.2667 11.4185 3.2871 0.8509 0.1497 0.1178
SD 0.3835 5.2189 0.7834 0.0624 0.0281 0.0216
interpret_model(rf)
_images/modelpr_6_0.png
interpret_model(rf,'reason',observation=2)
Visualization omitted, Javascript library not loaded!
Have you run `initjs()` in this notebook? If this notebook was from another user you must also trust this notebook (File -> Trust notebook). If you are viewing this notebook on github the Javascript has been stripped for security. If you are using JupyterLab this error is because a JupyterLab extension has not yet been written.
interpret_model(rf,'reason',observation=8)
Visualization omitted, Javascript library not loaded!
Have you run `initjs()` in this notebook? If this notebook was from another user you must also trust this notebook (File -> Trust notebook). If you are viewing this notebook on github the Javascript has been stripped for security. If you are using JupyterLab this error is because a JupyterLab extension has not yet been written.

Batch vs Realtime

Is er nood aan batch of realtime verwerking? Is misschien near realtime genoeg?

Recalculate

Bij model drift wanneer gaan we ons model terug updaten?

Human in the loop

Zoals al aangeven is het wel cruciaal om ergens in je system een human in de loop te hebben.