I'm working on a neural network to predict scores on how "good" the images are. The images are the inputs to another machine learning algorithm, and the app needs to tell the user how good the image they are taking is for that algorithm.
I have a training dataset, and I need to rank these images so I can have a score for each one for the regression neural network to train.
I created a program that gives me 2 images from the training set at a time and I will decide which one wins (or ties). I heard that the full rank can be obtained from these comparisons using SVM Ranking. However, I haven't really worked with SVMs before. I only know the very basics of SVMs. I read a few articles on SVM Ranking and it seems like the algorithm turns the ranking problem to a classification problem, but the maths really confuses me.
Can anyone explain how it works in simple terms and how to implement it in Python?
I did some more poking around on the internet, and found the solution.
The problem was how to transform this ranking problem to a classification problem. This is actually very simple.
If you have images (don't have to be images though, can be anything) A and B, and A is better than B, then we can have (A, B, 1). If B is better, then we have (A, B, -1)
And we just need a normal SVM to take the names of the 2 images in and classify 1 or -1. That's it.
After we train this model, we can give it all the possible pairs of images from the dataset and generating the full rank will be simple.