CLASSPATH = /net/three/home/blue/kpray/bin/tomcat/webapps/Weka/weka-3-1-8/weka.jar:.

CLASSPATHFLAG = -classpath $(CLASSPATH)

DATAHOME = ../../data/

TRAINDATA = $(DATAHOME)census-income.data

TRAINDATASHORT = $(DATAHOME)census-income-short.data

TESTDATASHORT = $(DATAHOME)census-income-short.test

TESTDATA = $(DATAHOME)census-income.test

SIMPLEOPTIONS = -I 2000 -t 2.data -T 2.data

## do only 2 iterations through training exmaple set
QUICKOPTIONS = -I 2 -t $(TRAINDATASHORT) -T $(TESTDATASHORT)

### Now for the tests and stuff ###

all : test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 test12 test13 test14 test15 test16 test17 test18 test19 test20 long

## The long tests, many iterations
long : longtest1

longtest1 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -I 100000 -t $(TRAINDATA) -T $(TESTDATA) > longtest1.txt

longtest2 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -I 100000 -E 0.01 -M 0.01 -t $(TRAINDATA) -T $(TESTDATA) > longtest2.txt

## standard test, uses defaults from code
test1 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -t $(TRAINDATA) -T $(TESTDATA) > test1.txt

## try with more iterations
test2 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -I 500 -t  $(TRAINDATA) -T $(TESTDATA) > test2.txt

## try with even more iterations
test3 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -I 1000 -t  $(TRAINDATA) -T $(TESTDATA) > test3.txt

## try with even more iterations
test4 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -I 5000 -t  $(TRAINDATA) -T $(TESTDATA) > test4.txt

#################

## try smaller learning rate
test5 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -E 0.1 -t  $(TRAINDATA) -T $(TESTDATA) > test5.txt

## try larger learning rate
test6 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -E 0.5 -t  $(TRAINDATA) -T $(TESTDATA) > test6.txt

#################

## try smaller learning rate, more iterations
test7 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -E 0.1 -I 500 -t  $(TRAINDATA) -T $(TESTDATA) > test7.txt

## try larger learning rate, more iterations
test8 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -E 0.5 -I 500 -t  $(TRAINDATA) -T $(TESTDATA) > test8.txt

#################

## try smaller momentum
test9 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -M 0.1 -t  $(TRAINDATA) -T $(TESTDATA) > test9.txt

## try larger momentum
test10 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -M 0.5 -t  $(TRAINDATA) -T $(TESTDATA) > test10.txt

#################

## try smaller momentum, more iterations
test11 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -M 0.1 -I 500 -t  $(TRAINDATA) -T $(TESTDATA) > test11.txt

## try larger momentum, more iterations
test12 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -M 0.5 -I 500 -t  $(TRAINDATA) -T $(TESTDATA) > test12.txt

#################

## try smaller momentum, smaller learning rate
test13 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -E 0.1 -M 0.1 -t  $(TRAINDATA) -T $(TESTDATA) > test13.txt

## try smaller momentum, larger learning rate
test14 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -E 0.5 -M 0.1 -t  $(TRAINDATA) -T $(TESTDATA) > test14.txt

## try larger momentum, larger learning rate
test15 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -E 0.5 -M 0.5 -t  $(TRAINDATA) -T $(TESTDATA) > test15.txt

## try larger momentum, smaller learning rate
test16 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -E 0.1 -M 0.5 -t  $(TRAINDATA) -T $(TESTDATA) > test16.txt

#################

## try smaller momentum, smaller learning rate, more iterations
test17 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -E 0.1 -M 0.1 -I 500 -t  $(TRAINDATA) -T $(TESTDATA) > test17.txt

## try smaller momentum, larger learning rate, more iterations
test18 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -E 0.5 -M 0.1 -I 500 -t  $(TRAINDATA) -T $(TESTDATA) > test18.txt

## try larger momentum, larger learning rate, more iterations
test19 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -E 0.5 -M 0.5 -I 500 -t  $(TRAINDATA) -T $(TESTDATA) > test19.txt

## try larger momentum, smaller learning rate, more iterations
test20 : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation -E 0.1 -M 0.5 -I 500 -t  $(TRAINDATA) -T $(TESTDATA) > test20.txt

#################
##################################
#################

## This uses a data set with only 2 attributes, one of which is the
## class attribute
simpletest :  BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation $(SIMPLEOPTIONS) > simpletest.txt

## let's have a short test so we can trouble shoot quickly
testshort : BackPropagation.class
	java $(CLASSPATHFLAG) BackPropagation $(QUICKOPTIONS) > testshort.txt

## Gotta build stuff ##

BackPropagation.class :	BackPropagation.java
	javac $(CLASSPATHFLAG) BackPropagation.java

clean :
	rm -f BackPropagation.class
	rm -f test1.txt

