Gaussian Naive Bayes Classifier

Instance-Based, Kernel & Probabilistic Methods DS practice problem on Onlearn.

Difficulty: medium.

Topics: Understanding Gaussian Naive Bayes for Continuous Feature Classification, Class-conditional Variance, Class-conditional Mean, Numerical Stability via Log-Sum, Posterior Probability Calculation, Broadcasting in Numpy, Probability Theory, Statistical Learning, Supervised Learning, Linear Algebra, Bayesian Inference, Prior Probability Estimation, Gaussian Distribution, Maximum Likelihood Estimation (MLE), Conditional Independence Assumption, Feature Scaling.

Implement a Gaussian Naive Bayes classifier from scratch. Your class should handle training (fitting) by calculating the mean and variance for each feature per class, and prediction by calculating the posterior probability for each class using the Gaussian PDF. Assume the input is a 2D numpy array of features and a 1D array of labels.