Naive Bayes assumes every feature is independent. For spam detection, that’s provably false — words in a sentence are obviously correlated. The model works well anyway.
Figuring out why a wrong assumption still produces a right answer taught me more than a correct model would have. It’s also the thing that shifted how I read model behavior generally: the math isn’t decoration on top of scikit-learn, it’s the explanation for when a model will hold up and when it won’t.
My first CYSE 420 assignment traced that math through four models used in security work — Naive Bayes, logistic and softmax regression, neural networks, and Gaussian anomaly detection.