There is one point missing. The rule is unaware of total number of user taken into hinting. If there is only 9 users, like in your example it works fine, but when it was 99, its no so good. 5 votes from total of 10 is much more significant, then 5 of 100.
animescore = score/(min_votes*(1-avg scale)+numberofvotes*avg scale)
where
min_votes - another variable set by user when starting hinting
(it can be number of votes or better percent of total users taken for hinting), if number of votes for anime is lower than than min_votes, this part should penalize such animes, lowering their finalscore much more then animes with more votes.
(1-avg sale) - the more avg scale i near to 1, the lesser significant is this part (finalscore goes to be pure avg score when avd scale reaches 1).
Make anime hint factor in temporary votes [DONE]
Moderator: AniDB
Actually, I don't think the number of users is important... If you want anime that is more popular (which is what you are trying to achieve), just make your avg. scale lower (0 to 0.25). Overall, I prefer to find the higher rated animes, assuming it has at least a few votes or it was highly rated by people with very similar profiles, I don't care about the popularity.Elias wrote:There is one point missing. The rule is unaware of total number of user taken into hinting. If there is only 9 users, like in your example it works fine, but when it was 99, its no so good. 5 votes from total of 10 is much more significant, then 5 of 100.
If number of users voted for anime is very love (like less than 5% from users) it can mean:
- this anime is very rare and will be very hard to get (this may be not good choice, if you want something to download rather fast and see)
- this anime is popular, but low (below
rated and only few (maybe only one) users voted higher for this file
- this anime is from genre, you are not interested (and thats why very few users with taste similar to yours voted for this title), it doesnt mean it is bad title, it may be great anime, but you may be bored watching it
(Just checked top of my hints and it looks this (when min weight is left to 100 - 197 users taken to hint): 1st and 2nd place place - anime voted only by 1 user, 3 to 6 place - voted by 2 users - from this top of my list at least half does looks good for my taste)
- this anime is very rare and will be very hard to get (this may be not good choice, if you want something to download rather fast and see)
- this anime is popular, but low (below

- this anime is from genre, you are not interested (and thats why very few users with taste similar to yours voted for this title), it doesnt mean it is bad title, it may be great anime, but you may be bored watching it
(Just checked top of my hints and it looks this (when min weight is left to 100 - 197 users taken to hint): 1st and 2nd place place - anime voted only by 1 user, 3 to 6 place - voted by 2 users - from this top of my list at least half does looks good for my taste)
Last edited by Elias on Fri May 07, 2004 9:43 am, edited 1 time in total.
I understand your reasoning for wanting to know the relative popularity within the group of users that have voted for similar things, but doesn't the old system (with a avg. scale of 0) already do this?Elias wrote:If number of users voted for anime is very love (like less than 5% from users) it can mean:
- this anime is very rare and will be very hard to get (this may be not good choice, if you want something to download rather fast and see)
- this anime is popular, but low (belowrated and only few (maybe only one) users voted higher for this file
- this anime is from genre, you are not interested (and thats why very few users with taste similar to yours voted for this title), it doesnt mean it is bad title, it may be great anime, but you may be bored watching it
That is the reason for having a scale, to allow people to have their own choice for how to get the results. If you make the other result also take into account the total number of users, then making a change is pointless.
One suggestion you had was adding a value for min_votes, which you tried to put into a formula. Rather than doing that, if a min_votes value is added, then just filter out animes with fewer than min_votes. If this is configurable, you can set this as high as you want and find the animes you desire....
Maybe i just have a strange taste, but when im use old method or new method there is allways in list of hints some animes (less in old method, more in new, different in both methods) i would rather avoid, so i wanted to make it possible to minimize number of such titles from my hints.egg wrote:I understand your reasoning for wanting to know the relative popularity within the group of users that have voted for similar things, but doesn't the old system (with a avg. scale of 0) already do this?
That is the reason for having a scale, to allow people to have their own choice for how to get the results. If you make the other result also take into account the total number of users, then making a change is pointless.
Ok, im egoistic, but maybe it will also help others.
And if already is added to hinting additional parameter 'avg. scale' i would make this parameter more usefull (now it works only as on/off switch).
setting min_values in rule will work better, filtering animes with low number of votes not so sharp than simple cutting off titles with lower number of votes. Example: If you set min_value to 10 it will effect not only for animes having below 10 votes, but also those having 11 or 15 or 20 votes (the more number of votes, the lower is this effect). And anime having less votes then this min_value, but with high votes may be placed better then anime with some more but lower votes.egg wrote:One suggestion you had was adding a value for min_votes, which you tried to put into a formula. Rather than doing that, if a min_votes value is added, then just filter out animes with fewer than min_votes. If this is configurable, you can set this as high as you want and find the animes you desire....
Lets back to your example, you checked that setting 1 as min_value has the best effect. But if you multiply yor example by 10 (90 votes total, a1 - 10 votes, a2 - 50 votes. etc.), same results with same changing places on list will be available when min_value is near 10.
It is true that at a value of 1 would turn it off completely, but a partial value would have it partially on, which would lead to undesireable (at least for me) results. It is true that I could limit the impact by setting the min_votes to 1 (or zero), but I think that a minimum value would be useful at higher levels.Elias wrote:And if already is added to hinting additional parameter 'avg. scale' i would make this parameter more usefull (now it works only as on/off switch).
Also, implementing min_votes as a filter may lessen the load on the server because it does not need to do as many calculations for those anime...
OK, how about a compromise:
Add two new fields:
min votes - A value to filter out animes with fewer votes than this. According to my interpretation of the logic posted in the FAQ this is supposed to be eight although in practice appears to be 1.
avg adjustment - A value greater than or equal to 0 that will be added to the denominator when calculating an animescore. When used in conjuction with the avg scale, this will give a much lower animescore to animes with fewer votes.
The formula would be:
animescore = score/(avg adjustment + numberofvotes*avg scale)
Note: with and avg adjustment == 0 and avg scale == 0 this would lead to a division by zero and this case would need to be handled.
I took out the '*(1-avg scale)' because I thought it did not add anything, a person could set this to 0 or 1 to get the desired result. If you want less of an impact when you increase the avg scale, you can modify the avg adjustment manually. Removing this makes the logic cleaner and does not remove functionality.
A person who wanted to use the old logic would set avg adjustment to 1 and avg scale to 0.
A person who wanted a pure average would set avg adjustment to 0 and avg scale to 1.
A person who wanted my logic (slight penalties for low votes) would set avg adjustment to 1.
It was added by me generally for solving divide by 0 problem (if only min_value is greater than 0) .egg wrote:I took out the '*(1-avg scale)' because I thought it did not add anything
But also in some way for better reacting to avg. scale (if avg. scale is low (user wants method nearly as older), than this part reduces even more dependance of numberofvotes, if avg. scale is high (user wants method nearly too new), than this part of rule is decreased, to make final score more as average score).
And after checking once again, i think it may be reduced to simpler form:
animescore = score /(parameter + numberofvotes)
where parameter (used instead of avg. score) = any value >= 0 (default may be 1).
It must be only be reserved value (like now 0 for avg. value) of this parameter (maybe -1) for old method.