I am trying to implement the Gaussian Naive Bayes from a scikit-learn library. I know that the Naive Bayes is based on the Bayes' theorem which is defined in high level as:
posterior = (prior * likelihood) / evidence.
As far as I know, the prior and evidence are learned from the training data.
I am not sure about likelihood whether Q1: is it also learned from the training data or by using Maximum likelihood estimation ?. Q2: Is there any hyper-parameter required to be tuned or not ?.
Suppose you have Bayes Theorem as,
P(A|B) = (P(B|A)*P(A))/P(B)
Where,
P(A|B) = Posterior Probability
P(B|A) = Likelihood
P(A) = Prior Probability
P(B) = Marginal Likelihood
Answers to Your Question
Likelihood is calculated using the training data, and the Maximum Likelihood estimation is used to calculated the maximum value of the likelihood.
Naive Bayes has almost no hyperparameters to tune, so it usually generalizes well.