Skip to content

MATLAB neural network examples for binary classification with data visualization and decision boundary plotting. Educational toolkit with synthetic data generation.

License

Notifications You must be signed in to change notification settings

adeeshperera/matlab-neural-classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Neural Network Binary Classification Samples

A collection of MATLAB implementations demonstrating feedforward neural networks for binary classification tasks with visualization capabilities.

🔍 Overview

This project contains two comprehensive examples of binary classification using feedforward neural networks in MATLAB. The implementations demonstrate fundamental machine learning concepts including synthetic data generation, neural network training, prediction, and decision boundary visualization.

Sample 1: Abstract Binary Classification (NN1.m)

  • Purpose: Demonstrates basic binary classification with two abstract classes
  • Data: Synthetic 2D Gaussian clusters centered at different points
  • Classes: Two distinct classes separated in feature space

Sample 2: Gender Classification (NN2.m)

  • Purpose: Real-world inspired classification using anthropometric data
  • Data: Synthetic height and weight measurements
  • Classes: Male vs. Female classification based on physical characteristics

✨ Features

  • Synthetic Data Generation: Realistic data simulation with Gaussian distributions
  • Neural Network Architecture: Configurable feedforward networks with customizable hidden layers
  • Decision Boundary Visualization: Interactive plots showing classification regions
  • Performance Metrics: Accuracy calculation and evaluation
  • Professional Plotting: High-quality visualizations with proper legends and labels
  • Comprehensive Documentation: Well-commented code for educational purposes

🛠 Prerequisites

Software Requirements

  • MATLAB R2019b or later (recommended)
  • Deep Learning Toolbox (formerly Neural Network Toolbox)
  • Statistics and Machine Learning Toolbox (for advanced features)

📥 Installation

  1. Clone or Download the repository:

    git clone <repository-url>
    # or download and extract the ZIP file
  2. Open MATLAB and navigate to the project directory:

    cd '/path/to/NN samples'
  3. Verify Prerequisites:

    % Check if required toolboxes are installed
    ver('nnet')  % Deep Learning Toolbox
    ver('stats') % Statistics and Machine Learning Toolbox

🚀 Usage

Running Sample 1 (Abstract Classification)

% Open and run NN1.m
run('NN1.m')

Running Sample 2 (Gender Classification)

% Open and run NN2.m
run('NN2.m')

Customization Options

Modify Network Architecture

hiddenLayerSize = 15;  % Change number of hidden neurons
net = feedforwardnet([10, 5]);  % Multi-layer architecture

Adjust Data Parameters

numPoints = 200;  % Increase sample size
% Modify distribution parameters for different scenarios

Visualization Settings

% Adjust grid resolution for decision boundary
[x1Grid, x2Grid] = meshgrid(0:0.05:6, 0:0.05:6);  % Higher resolution

📁 Project Structure

NN samples/
├── README.md           # This documentation file
├── NN1.m              # Abstract binary classification
├── NN2.m              # Gender classification example
└── results/           # Generated plots and outputs (created automatically)

🔧 Implementation Details

Neural Network Architecture

  • Type: Feedforward Neural Network
  • Hidden Layers: 1 layer with 10 neurons (configurable)
  • Activation Function: Default MATLAB activation (typically sigmoid/tanh)
  • Output Layer: Single neuron with sigmoid activation
  • Training Algorithm: Levenberg-Marquardt backpropagation (default)

Data Characteristics

NN1.m - Abstract Classification

  • Input Features: 2D coordinates (x, y)
  • Class 1: Gaussian distribution centered at (1, 1)
  • Class 2: Gaussian distribution centered at (5, 5)
  • Sample Size: 100 points per class

NN2.m - Gender Classification

  • Input Features: Height (cm) and Weight (kg)
  • Male Class: Height ~175±5cm, Weight ~75±10kg
  • Female Class: Height ~165±5cm, Weight ~65±10kg
  • Sample Size: 100 points per class

Key Functions Used

  • feedforwardnet(): Creates neural network architecture
  • train(): Trains the network using backpropagation
  • meshgrid(): Creates visualization grid
  • contour(): Plots decision boundaries
  • scatter(): Creates scatter plots for data points

📊 Results

Expected Outcomes

  • Classification Accuracy: Typically 85-95% for both samples
  • Decision Boundary: Clear separation between classes
  • Visualization: Professional plots with distinct class regions

Performance Metrics

  • Training Time: 1-5 seconds on modern hardware
  • Memory Usage: <100MB for default parameters
  • Convergence: Usually within 50-200 epochs

🤝 Contributing

We welcome contributions! Please follow these guidelines:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

🔗 References

About

MATLAB neural network examples for binary classification with data visualization and decision boundary plotting. Educational toolkit with synthetic data generation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages