Discord

Checklist IOAI 2024 Scientific Round (At-Home) · ML task

Save the Factory: Feature Engineering Challenge

Engineer features from 187×8 widget arrays so fixed-depth decision trees classify widgets as Ruby or Sapphire, scored by ROC AUC.

  • Binary classification (feature engineering)

The task

In the storybook town of Widgetville, a trickster sprite has meddled with the Widget Corp assembly lines. As the new Chief Engineering Detective, you have to sort widgets into two classes, Ruby and Sapphire, using labels recovered from the previous month's production.

Each widget comes with its 'Pulse of the Machine': 8 threads of 187 numbers, stored as a 187 × 8 array. The classifier is fixed to scikit-learn's DecisionTreeClassifier with no hyperparameter changes, so your job is to build good features. There are two difficulty levels, Efficient and Super Duper Efficient, which differ in the tree depth allowed (20 and 4 in the notebook).

For each level, feature generation plus training and inference must finish within 5 minutes on a standard non-GPU Colab instance. The organisers hint that no time series is involved and that the data itself, not only the labels, may have been corrupted. Test data was shared 48 hours before the deadline.

Abridged by SOTA from the official materials. The official statement has the exact rules, and it wins wherever this summary differs.

At a glance

You get
A pickle (FE_hometask_data_v3.pickle) with labelled train and validation splits, where each widget is a 187 × 8 array, and a test pickle (FE_hometask_data_v3_test.pickle) shared 48 hours before the deadline. Split sizes are not stated. The official download link for the train and validation file returned an error (HTTP 404) when checked on 14 September 2026; the test file still downloads.
You submit
Two files, efficient_test_predictions.txt and super_duper_efficient_test_predictions.txt, each one string of 0/1 predicted labels for the test widgets, plus the notebook so results and time limits can be checked.
Scoring
ROC AUC (the notebook's evaluation functions compute roc_auc_score on the decision tree's predicted labels).
Rules
  • Only DecisionTreeClassifier may be used, with no hyperparameter changes (the notebook fixes max_depth=20 for Efficient and max_depth=4 for Super Duper Efficient, random_state=2024)
  • Training from scratch plus inference, including feature generation, must take no more than 5 minutes per solution on a standard non-GPU Colab instance
  • The provided evaluation and prediction-writing functions must not be changed
Format
Scientific round, at-home stage (teams had one month for the three at-home tasks)

Details

Year
2024, Burgas, Bulgaria
Round
Scientific Round (At-Home) · ML task
Language
English
License
Not stated by the source