Creating validation data for model comparison
Predicting and scoring are two different tasks.

And according to your answers and comments you are not solving prediction problem. You just want to set to each student a number in range [1,100] according to some rule. This is ranking (or scoring, whatever).

Therefore, the terms #prediction_model, #accuracy, #validation, #training_set are out of this scope. You don't need to validate anything. You are not making predictions.

What you want is to map ranks to students.

But a problem is that you have mostely categorical data (school name, location etc) that cannot be 'ranked'. Some of them are useless at all: how does the student name refer to his school progress? :)

If you change it somehow to numerical (e.g. 'Skill_1_level', 'Skill_2_level', 'remoteness_of_location', 'school rank' etc) than you can do some ranking:


Normalize data: each of your factors





Multiple by 100, as you want [0,100] range instead of [0,1]
Set up weights based on your experience according to factor's importance. So that the sum of weights is 1.
And finally build a rank (score):


Rank = 0.1 * skill_1_level + 0.2 * skill_2_level + 0.05 * remoteness_of_location + 0.5 * school_rank + ...