Codes are separated into three files training.py, test.py, evaluation.py . You can run them separately or you can just run allinone.py to proceed all of the stages with just a call. Trained svm models are also saved after training.py finish running. You can directly pass testing without need of running training.py over and over. Test.py read all the models from the saved files placed in the folder. However you can update model files by executing training.py again. What evaluation.py do is that it reads the value of prediction from the prediction.txt and read value of optimum windows from the windows.txt and evaluate the models in the way specified in the assignment. Both windows.txt and windows.txt files are written by text.py after finishing its running.