jwm
jwm

Reputation: 5030

keras: what is the difference between model.predict and model.predict_proba

I found model.predict and model.predict_proba both give an identical 2D matrix representing probabilities at each categories for each row.

What is the difference of the two functions?

Upvotes: 29

Views: 57634

Answers (4)

Wasi Ahmad
Wasi Ahmad

Reputation: 37691

predict

predict(self, x, batch_size=32, verbose=0)

Generates output predictions for the input samples, processing the samples in a batched way.

Arguments

x: the input data, as a Numpy array.
batch_size: integer.
verbose: verbosity mode, 0 or 1.

Returns

A Numpy array of predictions.

predict_proba (Now deprecated)

predict_proba(self, x, batch_size=32, verbose=1)

Generates class probability predictions for the input samples batch by batch.

Arguments

x: input data, as a Numpy array or list of Numpy arrays (if the model has multiple inputs).
batch_size: integer.
verbose: verbosity mode, 0 or 1.

Returns

A Numpy array of probability predictions.

Edit: In the recent version of keras (at time of writing), predict and predict_proba is same i.e. both give probabilities. To get the class labels use predict_classes. The documentation is not updated. (adapted from Avijit Dasgupta's comment)

Upvotes: 27

SysEng
SysEng

Reputation: 53

In the recent version of keras e.g. 2.6.0, predict and predict_proba is same i.e. both give probabilities. To get the class labels use predict_classes. The documentation is not updated

Upvotes: 1

Catalina Chircu
Catalina Chircu

Reputation: 1572

Just a remark : In fact you have both predict and predict_proba in most classifiers (in Scikit for example). As already mentioned, the first one predicts the class, the second one provides probabilities for each class, classified in ascending order.

Upvotes: 2

ohad
ohad

Reputation: 373

As mentioned in previous comments (and here), there currently isn't any difference.
However one seems to exist only for backward compatibility (not sure which one, and I'd be interested to know).

Upvotes: 4

Related Questions