# Task Description

## Problem Statement
A math teacher manually created a dataset to illustrate the relationship between study effort and exam scores. Each student’s actual performance generally follows a linear trend: more effort tends to yield higher scores.  

However, some students **messed with the data**, introducing conflicting entries to make it appear as if higher effort doesn’t improve scores. Your task is to build a model that predicts a student’s **true expected score**, based only on the training data provided. Note that the training data contains both the teacher’s original entries and the corrupted entries added by the students.

Using the provided training data, train a model that can generalize to the **teacher-only test set**, which contains only valid entries reflecting the true relationship.

## Input Format
- `train.csv`: Contains the training data that participants can use to fit their models.  
  **Columns**:
  - `feature1` — numerical feature  
  - `feature2` — numerical feature  
  - `feature3` — numerical feature  
  - `feature4` — numerical feature  
  - `target` — numerical target variable (student-modified)

- `test.csv`: Contains the test rows that participants will make predictions for.  
  **Columns**:
  - `ID` — unique identifier for each row  
  - `feature1` — numerical feature  
  - `feature2` — numerical feature  
  - `feature3` — numerical feature  
  - `feature4` — numerical feature

- `solution.csv`: Hidden ground truth target values for all test rows. Participants **do not have access** to this file during the competition.  
  **Columns**:
  - `ID` — matches IDs in `test.csv`  
  - `Target` — true target value (teacher-only data)

## Output Format
Participants must submit a CSV file (`submission.csv`) with the following columns:  
- `ID` — must match the `ID` column in `test.csv`  
- `Target` — predicted numerical values for the corresponding rows in `test.csv`

## Scoring Method
Submissions are evaluated using the **Mean Squared Error (MSE)** between the predicted values and the teacher-only targets:

$$
\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
$$

Where:  
<ul>
  <li>y<sub>i</sub> — true teacher target from <code>solution.csv</code></li>
  <li>ŷ<sub>i</sub> — predicted value from the participant submission</li>
  <li>n — number of samples in the test set</li>
</ul>

Lower MSE indicates a better model.

## Allowed Models / Architecture Restrictions
- Participants can use **any model**, including but not limited to:  
  - Linear Regression  
  - Decision Trees / Random Forests / Gradient Boosting  
  - Neural Networks
- Participants can use all four features provided in the dataset (`feature1`–`feature4`) and any preprocessing they choose.  
- **Participants must not use** the solution file for training or fitting (which will not be provided to them anyway).  
