openml / openml/OpenML

Simplify data splits for classification/regression tasks

Open
#1,110 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

suggestion
Dominant language
PHP
Stars
755
Forks
128
PR merge metrics
No merged PRs in 30d

Description

Classification and Regression tasks feature estimation procedures: (ordered) holdout, r-repeated k-fold cross-validation and test on training data. Currently the split files are organized as following (ARFF notation):

@attribute type {TRAIN,TEST}
@attribute rowid numeric
@attribute repeat numeric
@attribute fold numeric

I think the type column is not necessary for the supported evaluation strategies and produces unnecessary duplication (and hence server strain and bandwidth). Looking at the split file, we see that every row in the dataset introduces R*K rows in the split file for R-repeated K-fold cross-validation. If we drop the type column and simply indicate which fold each sample belongs to for each repeat, the data-split should be a factor K smaller (plus benefits of not having the TRAIN/TEST column data). For the holdout tasks it would not be obvious which fold is train or test. However we could either adopt a convention here (0 is train, 1 is test), or allow this to be described explicitly in the task description xml. Similarly if we want to preserve the order in which folds in k-fold cv are evaluated.

Having different split file formats for different task types is the norm, learning curve tasks introduce the sample column and other types (e.g. Clustering) don't even have split files at all. I don't see an issue with changing the split file for this case (other than making openml packages adopt to the changes, and have users refresh their cache).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by reviewing the current classification and regression split-file format and its package and cache compatibility implications; the work is done when the replacement convention or task-description representation is agreed and its migration impact is addressed.

Written by the indexing model from the issue text.

Assessment

Domain
data, machine-learning
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.