TypeError: Naive Bayes priors must be non-negative
7 Dec 2025
1 min read
TypeError: priors must be non-negative
$ python -c "from sklearn.naive_bayes import GaussianNB; GaussianNB(priors=[-0.1, 1.1]).fit([[0],[1]], [0,1])"
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: class_prior probabilities must be non-negative and sum to 1
Why this happens
class_prior must contain non-negative probabilities that sum to 1. Invalid values break model assumptions.
Fix
Set valid priors or leave None to learn priors from data.
Wrong code
from sklearn.naive_bayes import GaussianNB
GaussianNB(priors=[-0.1, 1.1])
Fixed code
from sklearn.naive_bayes import GaussianNB
GaussianNB(priors=[0.5, 0.5]) # or priors=None