Skip to content

youtanyouzhen/mnist-plus

 
 

Repository files navigation

Machine Learning Digits Classification Project

The dataset is based on the MNIST dataset, with modified images. Full description is available here

Implement:

  • Logistic regression (Matlab)
  • Feedforward Neural Network (Python)
  • Linear SVM (from scikit-learn)
  • Convolutional Neural Network (caffe)

=== This project uses python 2.7.

# pip install numpy
# pip install scikit-learn
# pip install h5py

To run the Neural Network code:

# cd python && python neural_network.py

Convolutional Neural Network

The architecture used can be found here. To run the cNN:

# cd scripts && python create_lmdb.py
# git clone https://github.com/npow/caffe $CAFFE_ROOT
# cd $CAFFE_ROOT
# <follow instructions to build caffe>
# examples/imagenet/npow_imagenet.sh
# examples/mnist/train_lenet.sh

###Matlab code

The logistic regression and 1-vs-1 SVM were implemented in Matlab.

LogisticRegression.m is a function that solves for the weights using gradient descent, use help for its input structure.

runSVM.m runs the 1-vs-1 SVM algorithm from Matlab toolbox.

The data can be imported into Matlab using readCSVfiles.m

Preprocessing

To use ilastik classifier:

# Download ilastik from http://ilastik.org
# Open ilastik/extraction.ilp

To run the unrotate code:

Requires Pillow, a fork of PIL

# pip install pillow
# cd scripts/unrotate && python unrotate.py

About

Classify handwritten digits with textures

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TeX 56.7%
  • Python 36.3%
  • MATLAB 4.2%
  • Jupyter Notebook 2.8%