README.rst 3.04 KB
Newer Older
1
2
3
4
5
=============================================================================
Generalized Boosting Framework using Stump and Look Up Table (LUT) based Weak Classifier
=============================================================================
The package implements a generalized boosting framework which incorporate different
boosting approaches. The Boosting algorithms implemented in this package are
Rakesh MEHTA's avatar
Rakesh MEHTA committed
6

7
1) Gradient Boost (generalized version of Adaboost) for univariate cases
Rakesh MEHTA's avatar
Rakesh MEHTA committed
8
2) TaylorBoost for univariate and multivariate cases
Rakesh MEHTA's avatar
Rakesh MEHTA committed
9

Rakesh MEHTA's avatar
Rakesh MEHTA committed
10
The weak classifiers associated with these boosting algorithms are 
Rakesh MEHTA's avatar
Rakesh MEHTA committed
11

12
1) Stump classifiers
Rakesh MEHTA's avatar
Rakesh MEHTA committed
13
2) LUT based classifiers
Rakesh MEHTA's avatar
Rakesh MEHTA committed
14

15
Check the following reference for the details: 
Rakesh MEHTA's avatar
Rakesh MEHTA committed
16

Rakesh MEHTA's avatar
Rakesh MEHTA committed
17
18
1. Viola, Paul, and Michael J. Jones. "Robust real-time face detection." 
International journal of computer vision 57.2 (2004): 137-154.
19

Rakesh MEHTA's avatar
Rakesh MEHTA committed
20
2. Saberian, Mohammad J., Hamed Masnadi-Shirazi, and Nuno Vasconcelos. "Taylorboost: 
21
22
23
First and second-order boosting algorithms with explicit margin control." Computer 
Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on. IEEE, 2011.

Rakesh MEHTA's avatar
Rakesh MEHTA committed
24
3. Cosmin Atanasoaei, "Multivariate Boosting with Look Up Table for face processing",
25
26
27
PhD thesis (2012).

Testdata:
Rakesh MEHTA's avatar
Rakesh MEHTA committed
28
----------
29
30
31
32
33
34
35
36

The test are performed on the MNIST digits dataset. The tests can be mainly divided into
two categories:

1) Univariate Test: It corresponds to binary classification problem. The digits are tested 
one-vs-one and one-vs-all. Both the boosting algorithm (Gradient Boost and Taylor boost)
can be used for testing this scenario.

Rakesh MEHTA's avatar
Rakesh MEHTA committed
37
2) Multivariate Test: It is the multi class classification problem. All the 10 digit classification
Rakesh MEHTA's avatar
Rakesh MEHTA committed
38
is considered in a single test. Only Multivariate Taylor boosting can be used for testing this scenario.
39
40

Installation:
Rakesh MEHTA's avatar
Rakesh MEHTA committed
41
42
----------

43
44
45
Once you have downloaded the package use the following two commands to install it:

  $ python bootstrap.py 
Rakesh MEHTA's avatar
Rakesh MEHTA committed
46

47
48
49
50
51
52
53
54
  $ ./bin/buildout

These 2 commands should download and install all non-installed dependencies and
get you a fully operational test and development environment.

User Guide
----------

Rakesh MEHTA's avatar
Rakesh MEHTA committed
55
This section explains how to use the package in order to: a) test the MNIST dataset for binary classification
56
57
b) test the dataset for multi class classification.

Rakesh MEHTA's avatar
Rakesh MEHTA committed
58
a) The following command will run a single binary test for the digits specified and display the classification 
59
60
accuracy on the console:

Rakesh MEHTA's avatar
Rakesh MEHTA committed
61
  $ ./bin/mnist_binary_one.py 
62
63
64

if you want to see all the option associated with the command type:

Rakesh MEHTA's avatar
Rakesh MEHTA committed
65
  $ ./bin/mnist_binary_one.py -h
66
67
68

To run the tests for all the combination of of ten digits use the following command:

Rakesh MEHTA's avatar
Rakesh MEHTA committed
69
  $ ./bin/mnist_binary_all.py 
70

Rakesh MEHTA's avatar
Rakesh MEHTA committed
71
This command tests all the possible calumniation of digits which results in 45 different binary tests. The 
72
73
accuracy of individual tests and the final average accuracy of all the tests is displayed on the console.

Rakesh MEHTA's avatar
Rakesh MEHTA committed
74
b) The following command can be used for the multivariate digits test:
75

Rakesh MEHTA's avatar
Rakesh MEHTA committed
76
  $ ./bin/mnist_multi.py 
77
78
79

Because of large number of samples and multivariate problem it requires times in days on a normal system. Use -h 
option to see different option available with this command.  
Rakesh MEHTA's avatar
Rakesh MEHTA committed
80
81