By leoklein on
I'm trying to figure out if I'm doing this correctly. I want people to vote on Nodes using FiveStar then I want the "Most Popular" to show up in a View.
No problem with hooking this up. In fact, I already have it in place (see "Popular Sites"):
http://libSite.org
I'm just not sure if I'm adding this up correctly. With Voting API I've got three figures to work with:
- Individual Vote as a Percentage
- Total Number of Votes Cast
- Average of All Votes
So basically the Sort Order for most popular is: Total Votes Cast then Average.
Does this seem right? Is there a better way of doing this?
Comments
I think average is the more
I think average is the more important figure. You could have a node which everyone hates so it will get a ton of votes...but they'll be low.
Best solution? Rank by average but only on nodes that have received at least X votes to exclude nodes that get 5 stars on just 2 votes (author and his mom!).
Thanks
Now I have to think about the "floor" below which I won't count the votes.
Surely you just want to sort
Surely you just want to sort by average?
--
Jonathan Brown
http://jonathanpatrick.me/
But If There's Only One Person & He Votes 100%...
Well, first of all, like I know what I'm doing...
That said, the other poster above brought up the fact that if you do the average but someone just voted 100% for their favorite, that kind of skews things.
I understand that you need a "basement" or floor of votes -- in other words a certain number.
So I guess the trick is to determine the floor.
Yeah - this really isn't
Yeah - this really isn't trivial at all. Its probably a textbook statistics problem. The voting api module should really have a field available to views that solves this problem.
--
Jonathan Brown
http://jonathanpatrick.me/
Maybe this should not be
Maybe this should not be just a simple "basement" or "floor" but rather a step function. ie, sort by average but only for nodes with 1000+ votes, then sort on average for nodes with 100+ votes, then on average for nodes with 10+ votes, then average of rest or something like that. This way you don't have a node sitting at the bottom and then gets one vote above floor and jumps right to the top even if it still has a huge difference in the number of votes compared to the most popular nodes.
Another issue is that something that gets a lot of low votes maybe because people disagree with what it says and not because they find it uninteresting, or the simple fact that pretty much everyone else has seen it may be reason enough that should should at leat take a look so again average may not always be the most appropriate. Sorting content based on which a reader would gain most value from is certainly no trivial task.
What we want is
The average vote value, divided by the total number of voters - or something... I've suddenly got a piece of a3 covered in numbers...
Anyone know how to config this in views?
Just asking ourselves the same question as you...
We were just discussing the exact same question and did a search and found this discussion - I'm afraid my maths is not very good though!! Looking forward to hearing from someone who managed to stay away during maths classes at school :)
Kevan