How does Anime Hint work: Difference between revisions

Jump to navigation Jump to search
m
no edit summary
mNo edit summary
mNo edit summary
 
Line 5: Line 5:
Sorry.}}
Sorry.}}


The [[Anime Hint|anime hint]] page tries to get a list of possible anime recommendations by first comparing all YOUR anime votes with the anime votes of all other AniDB users. This is used to create a weight (or score) for each user in relation to you.<br>
The [[Anime Hint|anime hint]] page tries to get a list of possible anime recommendations by first comparing all YOUR anime votes with the anime votes of all other AniDB users. This is used to create a weight (or score) for each user in relation to you.


==Step #1, Find Similar Users and Assign a Relative Weight==  
==Step #1, Find Similar Users and Assign a Relative Weight==  
[[image:user_options.gif]]<br>
[[image:user_options.gif]]<br>
First a list is made of all the anime with your votes. Temporary and permanent votes are treated the same (if somehow there are multiple votes on an anime the permanent is taken).<br>
First a list is made of all the anime with your votes. Temporary and permanent votes are treated the same (if somehow there are multiple votes on an anime the permanent is taken).


Next a list of all users that have at least 50 [permanent?] votes for anime, 500 anime in their MyList and have a permanent vote for any anime in your vote list is made. Temporary votes are not used. Note, although both you and another user have voted for at least 30-50 anime, they may still show up in this list with only 1 anime in common.<br>
Next a list of all users that have at least 50 [permanent?] votes for anime, 500 anime in their MyList and have a permanent vote for any anime in your vote list is made. Temporary votes are not used. Note, although both you and another user have voted for at least 30-50 anime, they may still show up in this list with only 1 anime in common.


A weight is created for each of these users in this list. The weight is calculated by taking the list of anime that you have in common for that user, and calculating the difference between your permanent or temporary vote and their permanent vote, and assigning a value for that difference. These values are then added up to create the users weight. The lookup table used to determine the value are listed below and depend on if you chose a ‘strict’ or ‘loose’ weight style (default is ‘strict’).<br>
A weight is created for each of these users in this list. The weight is calculated by taking the list of anime that you have in common for that user, and calculating the difference between your permanent or temporary vote and their permanent vote, and assigning a value for that difference. These values are then added up to create the users weight. The lookup table used to determine the value are listed below and depend on if you chose a ‘strict’ or ‘loose’ weight style (default is ‘strict’).


Here is the weight style lookup table.<br>
Here is the weight style lookup table.
<pre>
<pre>
strict:  
strict:  
Line 26: Line 26:
</pre>
</pre>


For instance if you voted 10 on anime1, 9 on anime2 and 7 on anime3 and another user voted 9 on anime1, 9 on anime2 and 4 on anime3, the weight on the strict style would be 5 + 40 – 40 = 5.<br>
For instance if you voted 10 on anime1, 9 on anime2 and 7 on anime3 and another user voted 9 on anime1, 9 on anime2 and 4 on anime3, the weight on the strict style would be 5 + 40 – 40 = 5.


After the weights are calculated then all of the users with a score less than the min. weight (default is 100) you specify are filtered out.<br>
After the weights are calculated then all of the users with a score less than the min. weight (default is 100) you specify are filtered out.


==Step #2, Find Recommended Anime==
==Step #2, Find Recommended Anime==
[[image:anime_options.gif]]<br>
[[image:anime_options.gif]]<br>
Using the final list of users, now a list of anime is created.<br>
Using the final list of users, now a list of anime is created.


The initial list is all anime the list of users voted on with a vote >= min. vote (default = 3, old logic was hard coded to 8) specified by the user. This is a change from before, the original idea was just to get a list of anime that had high votes, and use the following logic to determine the relative ranking of these anime. The issue with this is it ignores the low votes of users that have similar tastes, so an anime with a few users that voted high and many users that vote low would still get recommended. The min. value remains so that people can use the old logic, if desired, and because many users believe that extreme votes should be filtered out.<br>
The initial list is all anime the list of users voted on with a vote >= min. vote (default = 3, old logic was hard coded to 8) specified by the user. This is a change from before, the original idea was just to get a list of anime that had high votes, and use the following logic to determine the relative ranking of these anime. The issue with this is it ignores the low votes of users that have similar tastes, so an anime with a few users that voted high and many users that vote low would still get recommended. The min. value remains so that people can use the old logic, if desired, and because many users believe that extreme votes should be filtered out.


Now a score is created for each anime by taking the sum of (user weight*((vote-rec. vote)/5)) for every user that voted for that anime. Where rec. vote (default 8, old logic was hard coded to 5) is the recommended vote level. What this does is make votes the recommended vote level the point at which higher votes will give an anime a higher score, and lower votes will lower the score of an anime.<br>
Now a score is created for each anime by taking the sum of (user weight*((vote-rec. vote)/5)) for every user that voted for that anime. Where rec. vote (default 8, old logic was hard coded to 5) is the recommended vote level. What this does is make votes the recommended vote level the point at which higher votes will give an anime a higher score, and lower votes will lower the score of an anime.


For instance, if 3 users are voting on the same anime, user1 has a weight of 200 and a vote of 5, user2 has a weight of 100 and a vote of 9 and user3 has a weight of 100 and a vote of 10, the score is (200*((5-8)/5)) + (100*((9-8)/5) + (100*((10-8)/5) = 200*(-.6) + 100*.2 + 100*.4 = -120 + 20 + 40 = -60. Since the user that had the closest match with you voted fairly low on the anime, the overall score is low even though two other users recommended it. Lowering the rec. vote value diminishes the impact low votes have on the overall score.<br>
For instance, if 3 users are voting on the same anime, user1 has a weight of 200 and a vote of 5, user2 has a weight of 100 and a vote of 9 and user3 has a weight of 100 and a vote of 10, the score is (200*((5-8)/5)) + (100*((9-8)/5) + (100*((10-8)/5) = 200*(-.6) + 100*.2 + 100*.4 = -120 + 20 + 40 = -60. Since the user that had the closest match with you voted fairly low on the anime, the overall score is low even though two other users recommended it. Lowering the rec. vote value diminishes the impact low votes have on the overall score.


Now the scores have been calculated, an averaging scheme is applied. This makes the scores less dependant on the number of users that have voted on an anime, otherwise an anime with a lot of moderate votes can outweigh an anime with fewer very high votes. The following formula is used to average the scores, animescore = score/(avg. adjustment + numberofvotes*avg. scale). Avg. adjustment (default 5) is used to balance out the average somewhat, this prevents an anime with a single 10 vote (although highly rated, if not many users have voted for it there must be a reason) to outweigh an anime with a few high votes. Anime with low votes will have very low scores, but anime with more votes will not be affected as much. Avg. scale (default 0.5) is how much of an average you want, a value of 1 is a strict average and a value of 0 does not average.<br>
Now the scores have been calculated, an averaging scheme is applied. This makes the scores less dependant on the number of users that have voted on an anime, otherwise an anime with a lot of moderate votes can outweigh an anime with fewer very high votes. The following formula is used to average the scores, animescore = score/(avg. adjustment + numberofvotes*avg. scale). Avg. adjustment (default 5) is used to balance out the average somewhat, this prevents an anime with a single 10 vote (although highly rated, if not many users have voted for it there must be a reason) to outweigh an anime with a few high votes. Anime with low votes will have very low scores, but anime with more votes will not be affected as much. Avg. scale (default 0.5) is how much of an average you want, a value of 1 is a strict average and a value of 0 does not average.


Below are examples of how the averages act. Assume that we have a scenario with anime whose average score would be 100 (regardless of the number of users). The following tables show the affects of the average scale and average adjustment.<br>
Below are examples of how the averages act. Assume that we have a scenario with anime whose average score would be 100 (regardless of the number of users). The following tables show the affects of the average scale and average adjustment.<br>
1,633

edits

Navigation menu

MediaWiki spam blocked by CleanTalk.
MediaWiki spam blocked by CleanTalk.