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.