Naive Bayes to metoda klasyfikacyjna oparta na teorii prawdopodobieństwa i statystyce. Polega ona na wyznaczeniu prawdopodobieństwa przynależności danej próbki do poszczególnych klas na podstawie jej cech. Algorytm Naive Bayes zakłada, że wszystkie cechy są niezależne od siebie, co oznacza, że każda z nich ma taki sam wpływ na przynależność do klasy.
Naive Bayes jest prostym i szybkim algorytmem, który dobrze sprawdza się w przypadku dużych zbiorów danych o wielu cechach. Jest on też odporny na braki danych i dobrze radzi sobie z niepełnymi zbiorami.
W zależności od rodzaju rozkładu prawdopodobieństwa cech, wyróżniamy kilka rodzajów klasyfikatorów Naive Bayes:
- Klasyfikator Gaussa (ang. Gaussian Naive Bayes) – stosowany w przypadku cech ciągłych, rozkładających się zgodnie z rozkładem normalnym.
- Klasyfikator Multinomialny (ang. Multinomial Naive Bayes) – stosowany w przypadku cech dyskretnych, takich jak słowa w tekście.
- Klasyfikator Bernoulliego (ang. Bernoulli Naive Bayes) – podobny do klasyfikatora multinomialnego, ale zakłada, że cechy są binarne (czyli albo występują, albo nie).
from sklearn.naive_bayes import GaussianNB
# Przygotowanie danych - załóżmy, że mamy zbiór treningowy zawierający cechy oraz etykiety
X = [[1, 2], [2, 4], [3, 6], [4, 8]] # cechy
y = [0, 0, 1, 1] # etykiety
# Utworzenie klasyfikatora Naive Bayes z rozkładem Gaussa
clf = GaussianNB()
# Trenowanie klasyfikatora na danych treningowych
clf.fit(X, y)
# Przewidywanie etykiet dla nowych danych
predictions = clf.predict([[5, 10], [1, 3]])
# Wynik: predictions zawiera [1, 0] - czyli przewiduje, że pierwszy obiekt należy do klasy 1, a drugi do klasy 0
W tym przykładzie został utworzony klasyfikator Naive Bayes z rozkładem Gaussa i wytrenowany na danych treningowych (X i y). Następnie zostały wykonane prognozy dla dwóch nowych próbek (X = [[5, 10], [1, 3]]). Klasyfikator przewiduje, że pierwsza próbka należy do klasy 1, a druga do klasy 0.
Należy pamiętać, że algorytm Naive Bayes zakłada niezależność cech, co może prowadzić do niedokładnych prognoz w przypadku, gdy cechy faktycznie są ze sobą powiązane. W takiej sytuacji lepsze rezultaty może dawać inny algorytm klasyfikacyjny.