โ11-13-2021 05:22 AM
I trained my model and was able to get the batch prediction from that model as specified below. But I want to also get the probability scores for each prediction. Do you have any idea?
Thank you!
logged_model = path_to_model
# Load model as a PyFuncModel.
loaded_model = mlflow.pyfunc.load_model(logged_model)
# Predict on a Pandas DataFrame.
import pandas as pd
loaded_model.predict(pd.DataFrame(data))
โ11-08-2022 12:06 PM
Hi @Kaniz Fatmaโ
The error said 'PyFuncModel' object has no attribute 'predict_proba'.
As shows above, I was using the following to load the model
loaded_model = mlflow.pyfunc.load_model(logged_model) and got the error.
After going through mlflow documentation, I changed it to
loaded_model = mlflow.sklearn.load_model(logged_model) and it is working fine.
It's all good now. Thanks for your time.
Syed
โ11-13-2021 07:18 AM
Hi @ Zoumana! My name is Kaniz, and I'm the technical moderator here. Great to meet you, and thanks for your question! Let's see if your peers in the community have an answer to your question first. Or else I will get back to you soon. Thanks.
โ11-13-2021 07:21 AM
Hi Kaniz,
Great to meet you too!
Thank you for replying to my question.
Best!
โ11-21-2021 07:18 PM
Hi @Zoumana Keitaโ , Please refer to this doc here:-
For most models in sci-kit-learn, we can get the probability estimates for the classes through predict_proba.
โ11-08-2022 11:35 AM
Hi @Kaniz Fatmaโ
Sorry for hijacking the post.
My question is - if I am reading a registered model from mlflow, I can only see the option of .predict method but not .predict_proba.
Do we have any straightforward solution to get the probabilities?
Thanks
Syed
โ11-08-2022 11:48 AM
Hi @Syed Ghouriโ, Can you paste the error stack here?
@Syed Ghouriโ, Also, I would suggest you go through this S.O thread. Please LMK how it goes.
โ11-08-2022 12:06 PM
Hi @Kaniz Fatmaโ
The error said 'PyFuncModel' object has no attribute 'predict_proba'.
As shows above, I was using the following to load the model
loaded_model = mlflow.pyfunc.load_model(logged_model) and got the error.
After going through mlflow documentation, I changed it to
loaded_model = mlflow.sklearn.load_model(logged_model) and it is working fine.
It's all good now. Thanks for your time.
Syed
โ11-08-2022 12:08 PM
Hi @Syed Ghouriโ โ, It would mean a lot if you could select the "Best Answer" to help others find the correct answer faster.
This makes that answer appear right after the question, so it's easier to find within a thread.
It also helps us mark the question as answered so we can have more eyes helping others with unanswered questions.
Can I count on you?
โ11-08-2022 12:16 PM
Hi @Kaniz Fatmaโ
I do not see the option to select "Best Answer" but feel free to do anything that you think can help this community.
Thanks
Syed
โ11-08-2022 12:19 PM
Thank you for your response @Syed Ghouriโ !
I've selected the "Best Answer" on your behalf.
โ08-08-2023 01:38 AM
Now you can log the model using this parameter:
mlflow.sklearn.log_model(
..., # the usual params
pyfunc_predict_fn="predict_proba"
)
which will return probabilities for the first class apparently when using the model for inference (e.g. when loading it using mlflow.pyfunc.spark_udf() ).
Join our fast-growing data practitioner and expert community of 80K+ members, ready to discover, help and collaborate together while making meaningful connections.
Click here to register and join today!
Engage in exciting technical discussions, join a group with your peers and meet our Featured Members.