WPI Worcester Polytechnic Institute

Computer Science Department

CS539 Machine Learning. Spring 2003 
Project 1 - Using the Weka System to Preprocess Datasets


DUE DATE: This project is due on Monday, Jan. 20, 2003.  
Your oral report is scheduled for Monday, Jan. 20's class
Your written report is due on Thursday, Jan. 23, 2003 at 11 am.  



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/).

  1. You should download and use the 3.2.3 GUI version of the system.

  2. 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.

  3. Datasets: Consider the following sets of data:
    1. The weather data (available in the data directory of the Weka system as the "weather.arff" file).
    2. The soybean data (available in the data directory of the Weka system as the "soybean.arff" file).
    3. The The Insurance Company Benchmark (COIL 2000) For this project, use only the ticdata2000.txt Training data. (1M).

  4. Experiments: For each of the above datasets, use the "Explorer" option of the Weka system to perform the following operations:
    1. Translate the dataset into the arff format if needed.
    2. Open the dataset in Weka.
    3. 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.
    4. 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.