Discriminant Functions: When you just need accurate classifications and don’t care about probabilities (e.g., image classification for labeling)
Perceptron, Support Vector Machines (SVM), Decision Trees
Discriminative Models: When you need probability estimates for uncertainty or decision-making (e.g., medical diagnosis, ranking)
Logistic Regression, Neural Networks, Conditional Random Fields (CRF)
Generative Models: When you need to generate samples, handle missing data, or have strong prior knowledge about data distribution (e.g., anomaly detection, small datasets)