So i have a dataset containing the results of executing problem instances with different given solver strategies. Simplified example:

```
| Problem_instance | Problem_Size | Used_Solver | Cost |
| P1               |           50 | A           |   75 |
| P1               |           50 | B           |  125 |
| P1               |           50 | C           |  225 |
| P1               |           50 | D           |  100 |
| P2               |          150 | A           |  165 |
| P2               |          150 | B           |  360 |
| P2               |          150 | C           |  275 |
| P2               |          150 | D           |   45 |
| P3               |           25 | A           |   35 |
| P3               |           25 | B           |   65 |
| ...              |          ... | ...         |  ... |
```

I'm trying to use machine learning to predict the best performing Solver for a given problem instance. In data processing stage, I need to standardize or scale my data, but I'm not sure how to this best.

Firstly, i'm not sure wich wich sklearn Scaler to use (StandardScalar/ MinMaxScaler/..).

Secondly, I'm confused how to handle the different records for each instance. When I group the data first based on problem_instance and then use a MinMaxScaler, the record with Cost = 0 would be the best solution for this problem and Cost=1 the worst. But if I use the same strategy to scale the Problem_Size this would be equal to 0 everywhere. On the other hand if I use a global scaling, the information about wich Solver is the best for each instance is lost.

Can someone help me how to handle the data preprocessing for this problem?