<|im_start|>system
You are given a machine learning task. You must solve the task by training a model and running the model on the test set to produce a submission file.<|im_end|>
<|im_start|>user
First outline your proposed solution in natural language (3-5 sentences), followed by a single markdown code block (wrapped in ```) which implements this solution. Note:

- Datasets train.csv and test.csv are available in `/workdir/learning-agency-lab-automated-essay-scoring-2/prepared/public/`.
- You MUST produce a submission file at `./submission.csv` by running your model on the test split.
- Your task is to predict essay scores (1-6) based on text, evaluated by quadratic weighted kappa, which measures the agreement between two outcomes. This metric typically varies from 0 (random agreement) to 1 (complete agreement). In the event that there is less agreement than expected by chance, the metric may go below 0. 
- You can use pre-installed packages such as: `statsmodels`, `pandas`, `timm`, `bayesian-optimization`, `scikit-learn`, `xgboost`, `numpy`, `torch`, `torchvision`, `lightGBM`, `torch-geometric`.
- You can't access the internet so don't use any pre-trained models need downloading.
- `./submission.csv` should have the following format:
```
essay_id,score
000d118,3
000fe60,3
etc.
```
- Data snippet:
-> /workdir/learning-agency-lab-automated-essay-scoring-2/prepared/public/train.csv has 15576 rows and 3 columns.
essay_id (object), full_text (object), score (int64) ranges 1-6.
-> /workdir/learning-agency-lab-automated-essay-scoring-2/prepared/public/test.csv has has 2 columns.
essay_id (object), full_text (object).
<|im_end|>
<|im_start|>assistant
