Understanding by Implementing: Gaussian Naive Bayes