CS539 Machine Learning. Spring 2005
Project 1 - Using the Weka System to Preprocess Datasets
DUE DATE:
Your written report is due on Tuesday, Jan. 25, 2005 at 4:00 pm.
Your in-class, oral report is scheduled for Thursday, Jan. 27
The purpose of this project is two-fold:
For this and other course projects, we will use the
Weka system
(http://www.cs.waikato.ac.nz/ml/weka/).
Weka is an excellent machine-learning/data-mining environment.
It provides a large collection of Java-based mining algorithms,
data preprocessing filters, and experimentation capabilities.
Weka is open source software issued under the GNU General Public License.
For more information on the Weka sytem, to download the system and
to get its documentation, look at
Weka's webpage
(http://www.cs.waikato.ac.nz/ml/weka/).
-
You should download and use the latest stable GUI version of the system.
-
Study the tutorial provided with the Weka system.
Note that the tutorial uses Weka's command line to illustrate
how to run the system, but you can actually use the GUI provided
with the system to execute the same commands.
- Datasets: Consider the following sets of data:
- The weather data (available in the data directory of the
Weka system as the "weather.arff" file).
- The iris data (available in the data directory of the
Weka system as the "iris.arff" file).
- The
Automobile Database taken for the
UCI Machine Learning Repository.
- A dataset of your choice. This dataset can consist of
data that you use for your own research or work,
a dataset taken from a public data repository (e.g.,
UCI Machine Learning Repository, or from the
UCI KDD Archive),
or data that you collect from public data sources.
THIS DATASET CANNOT BE ONE OF THOSE INCLUDED IN THE WEKA SYSTEM.
- Experiments:
For each of the above datasets,
use the "Explorer" option of the Weka system to perform the
following operations:
- Translate the dataset into the arff format if needed.
- Open the dataset in Weka.
- Preprocess the dataset attributes using Weka's filters.
In particular,
- explore different ways of discretizing continuous attributes.
That is, convert numeric attributes into "nominal" ones
by binning numeric values into intervals - See the
weka.filter.DiscretizeFilter in Weka.
Play with the filter and read the Java code implementing it.
- explore different ways of removing missing values.
Missing values in arff files are represented with the character "?".
See the weka.filter.ReplaceMissingValuesFilter in Weka.
Play with the filter and read the Java code implementing it.
-
Use the "ZeroR" classifier under the "Classify" tab.
Use different ways of testing your results. That is, explore the
following alternatives offered by the Weka system:
- Testing your results over the training data.
- Splitting your input file into two parts one for training and
one for testing.
- Using n-fold crossvalidation. Play with different values for n.
Analyze the results obtained (i.e. interpret the meaning of the output
produced by Weka).
Read to the extent possible the Java code implementing the ZeroR classifier.
Run several experiments with your data and the system
varying the parameters so that you gain familiarity with
the system.
- Written Report.
Please hand in a hardcopy of your report at the beginning of class on Tuesday.
Your report should contain the following sections with the corresponding discussions:
- Data:
Describe the datasets that you used in terms of the attributes
present in the data, the number of instances, missing values, and
other relevant characteristics.
- Code Description:
Describe to the extent possible any observations you made when
looking at the Weka code implementing the filters you used and the ZeroR
function.
- Experiments:
For each experiment you ran describe:
- Instances: What data did you use for the experiments?
That is, did you use the entire dataset of just a subset of it?
- Any pre-processing done to the data. That is, did you remove
any attributes? Did you discretize any continuous attribute?
If so, what strategy did you use to bin the values?
Did you replace missing values?
If so, what strategy did you use to select a replacement of
the missing values?
- Your system parameters.
- For the ZeroR function,
analysis of results of the experiments you ran using different
ways of testing the classifier (crossvalidation, etc.).
- Summary of Results
- Discuss the strengths and the weaknesses of your project.
- Oral Report.
We will discuss the results from the individual projects during the class
on Thursday, Jan 27.
Each of you will have approximately 7 minutes to present your report.
Prepare detailed SLIDES with the results of your experiments.
Your slides should be a good "preview" of your written report and should summarize
the contents of the different sections of your written report as described above.
Be ready to show your results
and to discuss your project in class.