COSC 387: Artificial Intelligence
Project 4
Fall 2004
Due: Nov 19 @ 5 P.M.
13 points
For this project, you can use any programming language for
which I have a compiler/interpreter on my machine.
This includes clisp, gcc 3.4.2, g++, g77, java 1.4.1, perl 5.6.1,
and ruby 1.8.1.
Yep, I got Ruby just for you guys.
I hope I don't regret this.
- Implement a concept generator for the STAGGER Concepts.
We talked about this in class, but for time steps 1-40,
the generator should generate examples of the concept
"small and red". For time steps 41-80, it should be
"green or circle". And for time steps 81-120, it
should be "small or medium".
- Implement STAGGER.
- Implement an incremental version of naive Bayes.
- Implement Schlimmer's decaying function for both methods.
Here's some Lisp code that does it: decay.lisp.
- Evaluate the four versions of the algorithms on the STAGGER
concepts by training on a single example and testing on 100 examples.
Do this for time steps 1-120. At each time step, all algorithms
must be trained and tested on the same examples. Run the algorithms
ten times, averaging the results at each time step.
- Plot your results for the four algorithms. These plots should
be accompanied with error bars, which can be standard deviation,
variance, standard error, or 95% confidence intervals. The plots
must be in a format I can view, so Postscript, PDF, and probably
Excel. PDF is safest.
- Analyze the results. Which algorithm performed best?
Did decaying help naive Bayes? Did STAGGER without decaying
outperform both naive Bayes algorithms? What else?
Instructions for Submission
Put everything (source, plots, analysis, Makefile, whatever)
in a zip or tar file, and send it to me as an
attachment to an e-mail.
I don't care what you name the archive, but the name of the archived
directory should be your netid.
In a README file, provide the following information:
COSC 387 Project 4
Name
E-mail Address
Platform: Windows, Linux, Solaris (gusun, daruma)
Language: clisp, gcc, g++, etc.
In accordance with the class policies and Georgetown's Honor Code,
I certify that, with the exceptions of the course materials and those
items noted below, I have neither given nor received any assistance
on this project.
Also in this README file, provide instructions so I know how to
compile and run your code and your analysis. This applies
doubly to you Ruby guys.
You must submit your project before 5 PM on the due date.
When storing source code on university machines, it is
important to set file permissions so others cannot read the file.
To turn off such read/write permissions, type at the UNIX prompt
chmod og-rw <file>, where <file>
is the name of your source file.