https://github.com/ki3mono/naive_bayes_classifier
This project implements Naive Bayes Classifiers for two data types: Multinomial Naive Bayes Classifier and Gaussian Naive Bayes Classifier. Developed as part of the Probability Theory and Statistics course in the second year of Computer Science at AGH University of Krakow.
https://github.com/ki3mono/naive_bayes_classifier
iris-dataset mushroom-dataset naive-bayes-classifier numpy python scikit-learn
Last synced: 9 months ago
JSON representation
This project implements Naive Bayes Classifiers for two data types: Multinomial Naive Bayes Classifier and Gaussian Naive Bayes Classifier. Developed as part of the Probability Theory and Statistics course in the second year of Computer Science at AGH University of Krakow.
- Host: GitHub
- URL: https://github.com/ki3mono/naive_bayes_classifier
- Owner: Ki3mONo
- Created: 2025-01-07T00:50:34.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2025-01-22T21:05:25.000Z (11 months ago)
- Last Synced: 2025-03-16T23:32:41.070Z (9 months ago)
- Topics: iris-dataset, mushroom-dataset, naive-bayes-classifier, numpy, python, scikit-learn
- Language: Python
- Homepage:
- Size: 1.54 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Naive Bayes Classifier
## Opis projektu
Projekt implementuje Naiwne Klasyfikatory Bayesowskie dla dwóch typów danych:
1. **Dane kategoryczne** – implementacja klasyfikatora **Multinomial Naive Bayes Classifier**.
2. **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).
---
## Klasyfikatory
### 1. Multinomial Naive Bayes Classifier
- 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.
### 2. Gaussian Naive Bayes Classifier
- Przeznaczony dla danych ilościowych.
- Opiera się na rozkładzie normalnym, obliczając prawdopodobieństwa na podstawie średniej i odchylenia standardowego cech.
---
## Struktura projektu
1. **Implementacja klasyfikatorów: /src**
- `MultinomialNaiveBayesClassifier` – dla danych kategorycznych.
- `GaussianNaiveBayesClassifier` – dla danych ilościowych.
- `NaiveBayesClassifier` – abstrakcyjna klasa nadrzędna dla naiwnego klasyfikatora bayesowskiego.
2. **Wstępna analiza danych: /data_analysis**
- Wizualizacja danych.
- Wybór cech, które najlepiej odróżniają klasy w zbiorze danych.
3. **Ewaluacja: /accuracy_notebooks**
- Podział danych na zbiory treningowe i testowe.
- Obliczanie dokładności poszczególnych klasyfikatorów w notebookach `Mushrooms_accuracy.ipynb` i `Iris_Accuracy.ipynb`.
---
## Technologie
- **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.
---
## Autorzy
- **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**.