C4.5 Format

This information is from the C4.5 distribution.

FILE FORMATS

For a dataset named "foo", you will have three files: foo.data, foo.test, and foo.names (many datasets don't come with .test files, you should use batchtest to perform cross-validation on such datasets).   The .names file describes the dataset, while the .data and .test files contain the examples which make up the dataset.

The files contain series of identifiers and numbers with some surrounding syntax.   A | (vertical bar) means that the remainder of the line should be ignored as a comment.  Each identifier consists of a string of characters that does not include comma, question mark or colon (unless escaped by a backslash).  Periods may be embedded provided they are not followed by a space. Embedded whitespce is also permitted but multiple whitespace is replaced by a single space.

The .names file contains a series of entries that describe the classes, attributes and values of the dataset.  Each entry is terminated with a period, but the period can be omited if it would have been the last thing on a line.  The first entry in the file lists the names of the classes, separated by commas (and terminated by a period).   Each successive line then defines an attribute, in the order in which they will appear in the .data and .test files, with the following format:

attribute-name : attribute-type .

The attribute-name is an identifier as above, followed by a colon, then the attribute type which must be one of:

continuous
If the attribute has a continuous value.
discrete <n>
The word 'discrete' followed by an integer which indicates how many values the attribute can take.
<list of identifiers>
This is a discrete attribute with the values enumerated (this is the prefered method for discrete attributes).  The identifiers should be separated by commas.
ignore
means the attribute should be ignored - it won't be used.

Here is an example .names file:

good, bad.
dur: continuous.
wage1: continuous.
wage2: continuous.
wage3: continuous.
cola: tc, none, tcf.
hours: continuous.
pension: empl_contr, ret_allw, none.
stby_pay: continuous.
shift_diff: continuous.
educ_allw: yes, no.
holidays: continuous.
vacation: average, generous, below_average.
lngtrm_disabil: yes, no.
dntl_ins: half, none, full.
bereavement: yes, no.
empl_hplan: half, full, none.

Foo.data contains the training examples and foo.test contains the test examples, in the following format: one example per line, attribute values separated by commas, class last, missing values represented by "?". For example:

2,5.0,4.0,?,none,37,?,?,5,no,11,below_average,yes,full,yes,full,good
3,2.0,2.5,?,?,35,none,?,?,?,10,average,?,?,yes,full,bad
3,4.5,4.5,5.0,none,40,?,?,?,no,11,average,?,half,?,?,good
3,3.0,2.0,2.5,tc,40,none,?,5,no,10,below_average,yes,half,yes,full,bad
...