Implementations of supervised learning classifiers: K-Nearest & Naive Bayes. Used for digit recognition
Java Shell
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


* Overview
This project uses the K-Nearest neighbor classifier and Naive Bayes Classifier for digit recognition.  Text files containing broken-down images are formatted with:

  - 1 line per image.
  - Each number on a line represents the pixels greyscale count, from left to right, pixel 1 through pixel 784 (28x28 greyscale images).
  - The example "class" (digit) is the last digit in the line.

The project was basically hacked together in a weekend.  The source is messy.

* Approach
For K-Nearest neighbor implementation, a euclidean distance formula is used to determine the 'distance' between two images.  The Training data is fed into the system, and using this formula we can determine how close one image is to another.  Sorting, Ranking and Voting take place after making the right comparisons with the test data to the training data.
For Bayes, a Naive Bayes is used.  

* Upcoming / Wanted
1. Single-hidden-layer neural network implementation.
2. Shape matching using OpenCV (Java interfaces to OpenCV library do not yet exist)