online-ml / chantilly

🍦 Deployment tool for online machine learning models
BSD 3-Clause "New" or "Revised" License
97 stars 17 forks source link

add a /predict_proba method #4

Closed kevinsteger closed 4 years ago

kevinsteger commented 4 years ago

The current /predict only allows for predict_proba_one if the model is a Classifier. We are currently using the predict_proba_one method for a non-Classifier model however we can not access that method through chantilly.

MaxHalford commented 4 years ago

Yeah I was actually thinking about this myself. Do you think it would work if chantilly checks that the model has a predict_proba_one method? For instance with hasattr(model, 'predict_proba_one').

If we do this, there should also be some checks in the /api/model POST route to check that the provided model has a fit_one and either a predict_one or a predict_proba_one method.

Tell me what you think.

MaxHalford commented 4 years ago

Okay I just made the change. Now you provide any model that implements fit_one and either predict_proba_one or predict_one. In other words you don't have to inherit from a creme base class anymore. Sending a POST request to @/api/model will raise an error if the model doesn't implement said methods.

I added some unit tests so it should be working fine. Tell me how it goes.

MaxHalford commented 4 years ago

@kevinsteger I added a new "flavor" concept. Basically the flavor is in charge of validating the provided models. Again it doesn't require to provide a creme model, only a class that implements the required methods. You can see the associated documentation here. I'll let you close this if you're happy with it.