Projekt implementuje Naiwne Klasyfikatory Bayesowskie dla dwóch typów danych:
- Dane kategoryczne – implementacja klasyfikatora Multinomial Naive Bayes Classifier.
- Dane ilościowe – implementacja klasyfikatora Gaussian Naive Bayes Classifier.
Projekt testowano na rzeczywistych zbiorach danych, takich jak zbiór Iris dostępny w bibliotece scikit-learn i zbiór Mushroom dostępny na platformie Kaggle (katalog /data).
- Przeznaczony dla danych kategorycznych.
- Oblicza prawdopodobieństwo na podstawie liczby wystąpień wartości cech dla każdej klasy.
- Zakłada warunkową niezależność cech.
- Przeznaczony dla danych ilościowych.
- Opiera się na rozkładzie normalnym, obliczając prawdopodobieństwa na podstawie średniej i odchylenia standardowego cech.
-
Implementacja klasyfikatorów: /src
MultinomialNaiveBayesClassifier– dla danych kategorycznych.GaussianNaiveBayesClassifier– dla danych ilościowych.NaiveBayesClassifier– abstrakcyjna klasa nadrzędna dla naiwnego klasyfikatora bayesowskiego.
-
Wstępna analiza danych: /data_analysis
- Wizualizacja danych.
- Wybór cech, które najlepiej odróżniają klasy w zbiorze danych.
-
Ewaluacja: /accuracy_notebooks
- Podział danych na zbiory treningowe i testowe.
- Obliczanie dokładności poszczególnych klasyfikatorów w notebookach
Mushrooms_accuracy.ipynbiIris_Accuracy.ipynb.
- Python – główny język programowania.
- Biblioteki:
numpy– obliczenia matematyczne.pandas– manipulacja danymi.scikit-learn– wczytywanie zbiorów danych i podział na zbiory treningowe/testowe.
- Maciej Kmąk
- Jakub Gucwa
Projekt został zrealizowany w ramach przedmiotu Rachunek prawdopodobieństwa i statystyka, prowadzonego na II roku studiów na kierunku Informatyka na Wydziale Informatyki Akademii Górniczo-Hutniczej.