COSC 288: Introduction to Machine Learning

Project 5
Spring 2009

Due: Wed, Apr 27 @ 10 P.M.
13 points

Student's choice. Pick one:

  1. Implement a genetic algorithm for feature selection.
    @article{yang.ieee.98,
      author = "Yang, J. and Honavar, V.",
      title = "Feature subset selection using a genetic algorithm",
      journal = "IEEE Intelligent Systems",
      year = 1998,
      volume = 13,
      number = 2,
      pages = "44--49" }
    
  2. Implement a genetic algorithm for rule learning.
    @article{dejong.ml.93,
      author = "De~Jong, K. A. and Spears, W. M. and Gordon, D. F.",
      title = "Using genetic algorithms for concept learning",
      journal = "Machine Learning",
      year = 1993,
      volume = 13,
      number = "2--3",
      pages = "161--188" }
    
  3. Implement AdaBoost.
    @article{freund.jjsai.99,
      author = "Freund, Y. and Schapire, R. E.",
      title = "A short introduction to boosting",
      journal = "Journal of Japanese Society for Artificial Intelligence",
      year = 1999,
      volume = 14,
      number = 5,
      pages = "771--780" }
    
  4. Implement Stacking.
    @article{wolpert.nn.92,
      author = "Wolpert, D. H.",
      title = "Stacked generalization",
      journal = "Neural Networks",
      year = 1992,
      volume = 5,
      number = 2,
      pages = "241--259" }
    
  5. Implement Forest-RI.
    @article{breiman.ml.01,
      author = "Breiman, L.",
      title = "Random forests",
      journal = "Machine Learning",
      year = 2001,
      volume = 45,
      number = 1,
      pages = "5--32" }
    
Note that some of the links may not work from off campus because of subscription restrictions. For off-campus access, you can access them through the library's proxy.

Instructions for Submission

In the header comments in at least the main file of your project, provide the following information:
//
// Name
// E-mail Address
// Platform: Windows, MacOS, Linux, Solaris, etc.
// Language/Environment: gcc, g++, java, g77, ruby, python, haskell, etc.
//
// In accordance with the class policies and Georgetown's Honor Code,
// I certify that, with the exceptions of the class resources and those
// items noted below, I have neither given nor received any assistance
// on this project.
//
Make sure I have clear instructions on how to run your executables. If you're using C or C++, then provide a Makefile.

Submit via Blackboard. When you are ready to submit your program for grading, create a compressed archive of a directory containing only your project's source, and upload it to Blackboard. The directory's name should be the same as your net ID. If you need to include a note with your submission, put the note in a README file in the directory.

For example, assume your net ID is ab123. If the directory p3 contains your project, then rename the directory to ab123.

To make the archive smaller, remove any object files, such as .class, a.out, and .o files.

Use zip, tar, or jar to create an archive:

% zip -r ab123.zip ab123/*
% tar -cf ab123.tar ab123
% jar -cf ab123.jar ab123
Use jar only for Java projects. If you use jar or tar, then compress the archive by typing
% gzip ab123.tar
% gzip ab123.jar
which creates a file ab123.tar.gz and ab123.jar.gz, respectively.

Upload the compressed archive to Blackboard.

Submit your project before 10:00 P.M. on the due date.