CS 478
Project Report Template

Below are guidelines on how to write-up your final report for the project. Of course, for most projects only a subset of the comments below are relevant and for some project other structures could be more appropriate. However, you can use it as a general guide in structuring your final report.

A "standard" experimental machine learning paper consists of the following sections:

1. Introduction

Motivate and abstractly describe the problem you are addressing and how you are addressing it. What is the problem? Why is it important? What is your basic approach? A short discussion of how it fits into related work in the area is also desirable. Summarize the basic results and conclusions that you will present.

2. Problem Definition and Algorithm

2.1 Task Definition

Precisely define the problem you are addressing (i.e. formally specify the inputs and outputs). Elaborate on why this is an interesting and important problem.

2.2 Algorithm Definition

Describe in reasonable detail the algorithm you are using to address this problem. A pseudo-code description of the algorithm you are using may be useful. If it makes sense for your project, illustrate your algorithm using an example. The example should be complex enough to illustrate all of the important aspects of the problem but simple enough to be easily understood. If possible, an intuitively meaningful example is better than one with meaningless symbols. 

3. System Design

Describe how you implemented your system and how you structured it. This should give an overview of the system, not a detailed documentation of the code. The documentation of the code is part of the code you hand in. You might want to comment on high-level design decisions that your made.

3. Experimental (or Theoretical) Evaluation

3.1 Methodology

What are the criteria you are using to evaluate your method? What specific hypotheses does your experiment test? Describe the experimental methodology that you used. What are the dependent and independent variables? What is the training/test data that was used, and why is it realistic or interesting? Exactly what performance data did you collect and how are you presenting and analyzing it? How did you select the parameters of your method? What is the baseline performance of a system that does not learn (e.g. always predicts the majority class or predicts randomly). Comparisons to competing methods that address the same problem or to variations of your own algorithm are particularly useful.

3.2 Results

Present the quantitative results of your experiments. Graphical data presentation such as graphs and histograms are frequently better than tables. What are the basic differences revealed in the data.

3.3 Discussion

Is your hypothesis supported? Are the results statistically significant? What conclusions do the results support about the strengths and weaknesses of your method compared to other methods? How can the results be explained in terms of the underlying properties of the algorithm and/or the data.

4. Related Work

Can you say anything about related work from your background readings? It may be possible to answer the following questions for each piece of related work that addresses the same or a similar problem. What is their problem and method? How is your problem and method different? Why is your problem and method better?

5. Future Work

What are the major shortcomings of your current method? For each shortcoming, propose additions or enhancements that would help overcome it.

6. Conclusion
Briefly summarize the important results and conclusions presented in the paper. What are the most important points illustrated by your work? How will your results improve future research and applications in the area?

APPENDIX:
Source code of your system submitted via CMS.