Discord

Checklist VsOSh AI 2026 Regional Stage, Tour 2 (data analysis and machine learning) · C task

Apartment Rental Prices

Russian title: Стоимость аренды квартир

Clean a messy scraped rental dataset and predict apartment rental prices.

  • Tabular
  • Regression with data cleaning
  • Russian original · English translation

The task

Semyon scraped rental listings from several websites to find the best offers, but the data were collected carelessly and are "dirty". The contestant must process the data carefully and obtain the best possible rental-price prediction.

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

In English

This task was published in Russian. SOTA translated its 3 files into English on 16 September 2026. Only the words changed in the notebooks: markdown, code comments, messages and printed output. The code, file names and paths are the original's, so a translated notebook runs with the original data.

Read the task statement in English 507 words

Apartment Rental Prices

English translation by SOTA – AI Community of the Russian original. Organisers who would like this translation removed can email [email protected].

All-Russian School Olympiad in Informatics 2025–2026, Regional Stage, Grades 9–11
“Artificial Intelligence” profile, Tour 2, 19 January 2026
Task C

Points for the task: 100
Answer submission format: uploading an answer file in .csv format
Number of attempts: 20
Submission that counts: the last one

Statement

While Semyon was preparing to solve the regional stage of the All-Russian School Olympiad and dreaming of how he would earn his BVI (university admission without entrance examinations), he decided to estimate what kind of apartment he could rent with the money he had saved from ML olympiads if he were not given a place in the dormitory next to the university. To do this, he scraped data from property rental websites and decided to build a model that predicts the rental price, so that he could then find the best deals. However, because the data were collected rather carelessly and from different websites, the dataset turned out to be quite “dirty”. Help Semyon process the data carefully and obtain the best possible quality of rental price prediction.

Input format

The following files are attached to the task:

  • train.csv - the column price is the target variable. The other columns are features.
  • test.csv - the column id is the object identifier. The other columns are features.
  • baseline.ipynb - a notebook with a baseline solution to the task.
  • submission.csv - an example of the solution that you need to submit to the testing system.

Output format

You need to submit, as your submission, the file submission.csv containing two columns:

  • id - the identifier of the object from test.csv.
  • price - the target variable you predicted.

Scoring

You can get up to 100 points for this task.

The data are split into a public and a private part. When you submit submission.csv, you are shown the result on the public part. After the contest ends, your result will be recalculated on the private part.

After the end of the stage, your metric will be converted to a 100-point scale according to the following rule:

  • the result of the baseline solution (RMSE=21.046) is worth 0 points;
  • the result of the author's solution (RMSE=13.8) is worth 100 points;
  • results between these two points are distributed linearly.

Answer evaluation metric

This task uses the metric RMSE.

Strict mathematical definition of the metric RMSE:

RMSE=1ni=1n(yiy^i)2\mathrm{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2}

yiy_i — the true value, y^i\hat{y}_i — the prediction, nn — the number of objects.

Example of computing the RMSE metric in Python:

from sklearn.metrics import root_mean_squared_error

y_true = [3.0, -0.5, 2.0, 7.0]
y_pred = [2.5,  0.0, 2.1, 7.8]

rmse = root_mean_squared_error(y_true, y_pred)
print("RMSE =", rmse)

Translated by SOTA. The Russian original is the official version and wins wherever the two differ. The official editorial archive (https://yastatic.net/s3/contest/roi/2026/ml/day2/editorial.zip) contains the data as train_C.csv and test_C.csv (columns Price and ID rather than price and id). Many category values in the data are in Russian; the editorial notebook glosses them in code comments. If you organise this olympiad and would like the translation removed, email [email protected] and we will take it down.

At a glance

You get
train.csv (target column price and features), test.csv (id and features), baseline.ipynb, submission.csv (example).
You submit
submission.csv with columns id and price.
Scoring
RMSE. The baseline (RMSE = 21.046) gives 0 points and the author's solution (RMSE = 13.8) gives 100, linear in between. Scored on a private part of the test data after the contest (public part shown live); 20 attempts, the last one counts.
Format
Regional stage, Tour 2 (data analysis and machine learning), 19 January 2026; grades 9–11; individual; 300-minute tour (Moscow procedure); submissions in Yandex Contest.

Details

Year
2026, Regional venues across Russia (in person)
Round
Regional Stage, Tour 2 (data analysis and machine learning) · C task
Language
Russian; English translation by SOTA
License
Not stated by the source