Możemy wyróżnić dwa rodzaje modeli uczenia maszynowego stosowanych w klasyfikatorach: generatywne i dyskryminacyjne. Model generatywny modeluje rozkład prawdopodobieństwa każdej klasy. Na przykład naiwny klasyfikator tekstu Bayesa tworzy osobny model dla każdej możliwej kategorii tekstu — jeden dla sportu, jeden dla pogody i tak dalej. Każdy model zawiera prawdopodobieństwo a priori kategorii — na przykład P(Category=pogoda) — oraz prawdopodobieństwo warunkowe P(Inputs jCategory=pogoda). Z tego możemy obliczyć wspólne prawdopodobieństwo P(Inputs;Category=pogoda)) i możemy wygenerować losowy wybór słów, które są reprezentatywne dla tekstów w kategorii pogody. Model dyskryminacyjny bezpośrednio uczy się granicy decyzyjnej między klasami. Oznacza to, że model dyskryminacyjny uczy się P(Categoryj Inputs). Biorąc pod uwagę przykładowe dane wejściowe, model dyskryminacyjny wygeneruje kategorię wyjściową, ale nie można użyć modelu dyskryminacyjnego do, powiedzmy, wygenerowania losowych słów, które są reprezentatywne dla kategorii. Regresja logistyczna, drzewa decyzyjne i maszyny wektorów pomocniczych to modele dyskryminacyjne. Ponieważ modele dyskryminacyjne kładą cały swój nacisk na zdefiniowanie granicy decyzyjnej – to znaczy faktycznie wykonują zadanie klasyfikacyjne, o które zostały poproszone – mają tendencję do lepszej pracy w granicach, przy dowolnej ilości danych uczących. Jednak przy ograniczonych danych w niektórych przypadkach model generatywny działa lepiej. (Ng i Jordan, 2002) porównują generatywny naiwny klasyfikator Bayesa z dyskryminacyjnym klasyfikatorem regresji logistycznej na 15 (małych) zestawach danych i stwierdzają, że przy maksymalnej ilości danych model dyskryminacyjny radzi sobie lepiej w 9 z 15 zestawów danych, ale przy niewielkiej ilości danych model generatywny radzi sobie lepiej na 14 z 15 zestawów danych.