You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The XKCD "Hot" algorithm may be suitable replacement or starting point given lower voting activity (typically <1500 votes per submission):
from datetime import datetime, timedelta
from math import log
epoch = datetime(1970, 1, 1)
def epoch_seconds(date):
td = date - epoch
return td.days * 86400 + td.seconds + (float(td.microseconds) / 1000000)
def hot(ups, downs, date):
s = ups - downs
order = log(max(abs(s), 1), 10)
sign = 1 if s > 0 else -1 if s < 0 else 0
seconds = epoch_seconds(date) - 1134028003
return round(sign * order + (seconds / 45000), 7)
Based on a quick review of this formula, it appears to lack a disadvantage for "controversial" submissions with a more balanced ratio of upvotes vs. downvotes:
In this case with three submission made at the same time, the second submission with a 2:1 vote ratio would outrank the first with a 40:1 vote ratio.
Perhaps something like this, with more weight towards "quality" than just raw net score would be better (I don't know jack about PHP so I'll just stick to Python examples):
Evaluate existing submission ranking algorithms, determine new or otherwise available replacements.
"Hot" Submissions
Review Submission entity's updateRanking() function: https://github.com/TheRealGD/therealgd/blob/develop/src/Entity/Submission.php
The XKCD "Hot" algorithm may be suitable replacement or starting point given lower voting activity (typically <1500 votes per submission):
Based on a quick review of this formula, it appears to lack a disadvantage for "controversial" submissions with a more balanced ratio of upvotes vs. downvotes:
In this case with three submission made at the same time, the second submission with a 2:1 vote ratio would outrank the first with a 40:1 vote ratio.
Perhaps something like this, with more weight towards "quality" than just raw net score would be better (I don't know jack about PHP so I'll just stick to Python examples):
The result is an advantage for quality of submission, as reflected by the first case (40:1) ranking above the second (2:1):
It would also still give weight to sheer vote volume, such as two 40:1 submissions in the example below:
The text was updated successfully, but these errors were encountered: