A neural network-based bird species classification project implementing Perceptron (SLP), ADALINE, and Multi-Layer Perceptron (MLP) algorithms. The project includes data analysis, training & testing, implementing Mean Squared Error (MSE), activation functions, and a GUI for visualization.
- ✅ Implementation of Single Layer Perceptron (SLP)
- ✅ Implementation of Multi Layer Perceptron (MLP)
- ✅ Implementation of ADALINE with MSE loss
- ✅ Custom training & testing (30/20 split per class)
- ✅ Data analysis (feature distribution, correlation, and visualizations)
- ✅ Graphical Interface (GUI) for user-friendly interaction
- ✅ Implementation of activation functions for model training
This project requires the following Python libraries:
numpy
- For numerical operationspandas
- For data manipulation and analysismatplotlib
- For data visualizationseaborn
- For enhanced visualizations
You can install them using:
pip install numpy pandas matplotlib seaborn
/bird-classification
│── main.py # Main entry point to train and test models
│── slp.py # Single Layer Perceptron Learning Algorithm (SLP)
│── mlp.py # Multi Layer Perceptron Learning Algorithm (MLP)
│── adaline.py # ADALINE Learning Algorithm (MSE)
│── utils.py # Common functions (data loading, splitting, visualization)
│── gui.py # GUI for visualization & interaction
│── data_analysis.py # Exploratory Data Analysis (EDA) & graphs
│── birds_data.csv # Dataset (bird features & classes)
│── README.md # Project documentation
- 📈 Feature Distribution Histograms: Visualizes feature distribution and frequency.
- 📊 Class Distribution Plots: Shows class balance in dataset.
- 🔥 Correlation Matrix Heatmap: Displays feature pair correlations.
- 🧩 Decision Boundary Visualization: Visualizes model decision boundaries.
- 🥧 Gender Distribution Pie Chart: Shows gender proportions in dataset.
- 📊 Feature Distributions: Displays feature value distribution.
- 🔗 Scatter Plot Matrix: Shows pairwise feature relationships.
- 📦 Box Plots: Displays distribution, spread, and outliers.
- 🔍 PCA (Principal Component Analysis): Reduces dimensions, preserves variance.
- 🔄 Pair Plot: Grid of feature pair scatter plots.
- Uses signum activation function
- Trained with perceptron learning rule
- Outputs binary class labels
- Uses linear activation function during training
- Uses signum activation function during testing
- Optimized using Mean Squared Error (MSE)
- Outputs continuous values before thresholding
- Uses Sigmoid or tanh activation function during training
- Dynamic Number of Hidden Layers
- Outputs continuous values before thresholding
Model | Test Accuracy (%) |
---|---|
Perceptron | up to 100% |
ADALINE | up to 100% |
MLP | up to 100% |
- Best Combination: Body mass and Beak Depth for categories a and B.
- Best Combination: Beak depth and beak length for categories A and C are perfectly separable.