kubeflow-kale / kale

Kubeflow’s superfood for Data Scientists
http://kubeflow-kale.github.io
Apache License 2.0
628 stars 129 forks source link

How to let deployed classifier return probabilities? #394

Open caojianneng opened 2 years ago

caojianneng commented 2 years ago

Description of the problem:

Let the random-forest model be: rf_model

from kale.common.serveutils import serve kfserver = serve(rf_model) #model is deployed

prepare data for prediction

data = [row.tolist() for _, row in train_df[predictor_var].head(10).iterrows()] data_json = json.dumps({"instances": data})

prediciton:

pred = kfserver.predict(data_json)

Question 1: The returned pred is class labels: 0/1. How to return probabilities?

I tried the following way after studying: kale.common.serveutils.predict

let HOST be the host name of deployed model

let the URL of calling the deployed model be: http://xxx:predict

headers = {"content-type": "application/json", "Host": HOST} pred_2 = requests.post(url = URL, data=data_json, headers=headers)

Question 2: But not clear, where to set parameter, so pred_2 will return probabilities?