Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Elo ranking and related infrastructure #241

Open
curiousjp opened this issue May 1, 2024 · 3 comments
Open

Elo ranking and related infrastructure #241

curiousjp opened this issue May 1, 2024 · 3 comments

Comments

@curiousjp
Copy link
Contributor

The current star based ranking system is good, but I think a more precise system that focuses on ranking images competitively against one another would be helpful for some use cases, especially culling folders to certain numbers of images.

I suggest: two new fields, Elo and the datestamp of the last Elo change event. Both are sortable in the main view and can be used to filter. A new context item to reset a record to the default Elo. A new two-up view for images that has hotkeys for awarding an Elo win or draw between the images. A way to launch this view using the currently filtered or selected images, shuffled.

Thoughts? Happy to try and assist on building it, but thought I should run it by you first.

@tachyon-beep
Copy link

Even more so if you could rank things multidimensionally. Kind of like a visual MDCA.

@RupertAvery
Copy link
Owner

Not familiar with Elo, but just to try to get an idea:

So you need to show two images, and the viewer decides which one wins by just selecting one. The winner takes points from the loser. Then, the next image takes the place of the loser?

I've also thought about multiple rankings, but kind of like attribute based, realism, prompt adherence, lighting, probably user-defined attributes with some base attributes, but having so many things to tweak would be time consuming for the user.

@curiousjp
Copy link
Contributor Author

So you need to show two images, and the viewer decides which one wins by just selecting one. The winner takes points from the loser. Then, the next image takes the place of the loser?

You’ve got the basic idea. Using the existing scores for each competitor the algorithm attempts to predict who should win based on historical performance and the likelihood of this happening. The amount of points transferred depend on this - if the strong favourite is chosen, few points move from the loser to the winner. But a big upset moves a lot of points - this can help a strong newcomer find their level more quickly without having to beat half the field.

In terms of selecting the next matchup, there is no prescriptive rule. You could look for the scores that are closest to each other (likely to yield the most information?), that have had the fewest ranking events (needs to track an extra variable) or something else.

I would be thrilled if you looked into this so please let me know if you need some help. I would love to just offer up a pull but I know essentially nothing about GUI programming :/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants