Predicting and correcting bias in motor score evaluation — for each visit, predict the unbiased (“true”) OFF MDS-UPDRS motor score.
git clone https://github.com/probabl-ai/bobathon-esilv.git
cd bobathon-esilvThe lab has three steps. Do them in order: each one assumes the previous one is finished.
| Step | Guide | What you do |
|---|---|---|
| 1 | SETUP.md | Join Kaggle, form a team, install Python, create the shared Skore Hub workspace, install skore and sign in |
| 2 | DAY1.md | Download the data, explore it (EDA), push a dummy baseline to Skore Hub |
| 3 | DAY2.md | Build real models, evaluate them with patient-grouped cross-validation, submit to Kaggle |
Step 1 — Setup (SETUP.md)
Follow every section of SETUP.md:
- Join Kaggle and form a team (maximum four people). Remember the exact team name.
- Install Python 3.12 or newer and check it with
python --version(orpython3 --version). - Create one Skore Hub workspace per team on skore.probabl.ai, named like the Kaggle team. One teammate creates it and invites the others.
- Allow Bob to use the lab skills (tick Skill in Bob's Permissions menu), then install skore and sign in from the repo root.
Run the setup tests, with the virtual environment still active:
python -m pytestSee SETUP.md step 5 for details.
You cannot proceed to Day 1 until the last line says all passed. Without a working .skore, you cannot push reports to Skore Hub, and every Kaggle Submission needs a Hub report URL.
Step 2 — Day 1 (DAY1.md)
- Download the CSVs from the competition Data tab into
data/. - Explore the data in Bob (EDA) and go through the workbook questions.
- Build a dummy mean baseline, evaluate it with
skore.evaluate, andputit to Skore Hub as01_dummy. Every later model must beat this score.
Step 3 — Day 2 (DAY2.md)
- Train a Ridge linear model, compare it with the dummy, and make your first Kaggle Submission.
- Switch to patient-grouped cross-validation (
GroupKFold) so the score matches the Kaggle split. - Try HistGradientBoosting (missing values as signal), skrub
**tabular_pipeline** (categorical columns), and skrub DataOps (groups baked into the graph). - Fit your best model on all training visits and submit again.
- SETUP.md - Kaggle team, Python, Skore Hub workspace, skore install and sign-in
- DAY1.md - data, exploratory data analysis (EDA), dummy baseline
- DAY2.md - models, grouped cross-validation, Kaggle Submissions
- CONTEXT.md - scientific background, goals, and modelling pitfalls for the Parkinson's dataset
- Kaggle competition: bobathon-esilv
All code must be written and run in Bob (IDE or CLI), with evaluation through skore. Every Kaggle upload must put a Skore Hub EstimatorReport URL (https://skore.probabl.ai/…) in the Submission Description, and each Submission needs a new report key (01_dummy, 02_ridge, …). Each experiment writes its file to submissions/<report-key>.csv (e.g. submissions/02_ridge.csv), so the filename matches the report key and a later model never overwrites an earlier submission. See the competition rules for eligibility and what makes a Submission valid.
From the repository root, run:
python scripts/bundle.pyThis writes bobathon-esilv.zip in the repository. The zip contains the code you wrote and leaves out the competition data, secrets, and generated files. Hand in that zip.