The NUMA Histogram
Posted: 2009.01.16 (21:22)
There's a debate going on at Uservoice about the user histograms on NUMA. I am bringing the debate to the forums because the uservoice limit of 400 characters is really tough to work with.
Please note that the histogram deals with the exact rating of a map, not the rounded rating that shows up.
So, on the one side, player_03 and myself suggest that the histogram intervals should be:
[0.0 - 0.5) [0.5 - 1.5) [1.5 - 2.5) [2.5 - 3.5) [3.5 - 4.5) [4.5 - 5.0]
That makes 6 bars for the 6 possible ratings a map can have (0-5). Simple, right?
Well, on the other side, Arachnid wants to keep the histogram the way it is:
[0 - 1) [1 - 2) [2 - 3) [3 - 4) [4 - 5]
The problem is that the full labels don't fit, so he just used the first # to label each interval. Arachnid mainly thinks this is better because it results in 5 intervals of equal size. He has a real problem with the two half-intervals on the ends of our suggested histogram.
Arachnid, here's the strongest case I can make for our suggestion:
What is the purpose of that histogram? I would say that it is to show how many maps of each rating a user has. I think that's a solid statement, but let me know if you disagree with this, since it's the foundation of my whole argument. With that purpose in mind, let's consider how many different ratings a map can receive. Of course, the overall rating is an average, and as such it can take on a multitude of different values. However, for display purposes, the average rating is rounded, resulting in only 6 possible ratings: 0, 1, 2, 3, 4, 5. For all intents and purposes, all those exact values simply become a set of integers. This is not an interpretation, it's a fact. From the perspective of the user, all average ratings are integers.
Therefore, given our stated purpose, the histogram should be a graphical tally for the 6 possible discrete values.
For example, let's say a user has 5 maps with the following exact ratings: 2.9, 3.2, 3.6, 4.1, 4.5. Those maps will show ratings of 3, 3, 4, 4, 5. Thus the histogram for that user should be (0,0,0,2,2,1), with labels 0, 1, 2, 3, 4, 5. Let's consider the current system, which looks at the exact average ratings. That system would result in the histogram (0,0,1,2,2), with the labels 0-1, 1-2, 2-3, 3-4, 4-5. To be sure, that histogram functions properly, but in this case it doesn't display things the way the user expects. It doesn't correlate with the way the rest of the site handles average ratings.
Of course, the fact that the site deals with the exact values for the average ratings means that the histogram is working with essentially continuous values, not discrete values. But that's not a big problem. All one has to do is handle those continuous values like the rest of the site handles them. That is, just emulate rounding, namely by using the following intervals: [0.0 - 0.5) [0.5 - 1.5) [1.5 - 2.5) [2.5 - 3.5) [3.5 - 4.5) [4.5 - 5.0]. The half-sized intervals on the end aren't wrong or misleading because the histogram is emulating the site's conversion of (essentially) continuous values into discrete values.
And that's the entirety of my argument. Please let me know if you have questions and I will do my best to clarify.
Edit: It appears that perhaps Arachnid's system is not quite what I said it is above. Perhaps Arachnid is rounding the average first, and then using the bounds [0 - 1) [1 - 2) [2 - 3) [3 - 4) [4 - 5]. But even so, that's really equivalent to this: [0.0 - 0.5) [0.5 - 1.5) [1.5 - 2.5) [2.5 - 3.5) [3.5 - 5.0], which involves unequal widths. In any case, the argument only changes a little to become: split that last interval into 2 intervals!
Please note that the histogram deals with the exact rating of a map, not the rounded rating that shows up.
So, on the one side, player_03 and myself suggest that the histogram intervals should be:
[0.0 - 0.5) [0.5 - 1.5) [1.5 - 2.5) [2.5 - 3.5) [3.5 - 4.5) [4.5 - 5.0]
That makes 6 bars for the 6 possible ratings a map can have (0-5). Simple, right?
Well, on the other side, Arachnid wants to keep the histogram the way it is:
[0 - 1) [1 - 2) [2 - 3) [3 - 4) [4 - 5]
The problem is that the full labels don't fit, so he just used the first # to label each interval. Arachnid mainly thinks this is better because it results in 5 intervals of equal size. He has a real problem with the two half-intervals on the ends of our suggested histogram.
Arachnid, here's the strongest case I can make for our suggestion:
What is the purpose of that histogram? I would say that it is to show how many maps of each rating a user has. I think that's a solid statement, but let me know if you disagree with this, since it's the foundation of my whole argument. With that purpose in mind, let's consider how many different ratings a map can receive. Of course, the overall rating is an average, and as such it can take on a multitude of different values. However, for display purposes, the average rating is rounded, resulting in only 6 possible ratings: 0, 1, 2, 3, 4, 5. For all intents and purposes, all those exact values simply become a set of integers. This is not an interpretation, it's a fact. From the perspective of the user, all average ratings are integers.
Therefore, given our stated purpose, the histogram should be a graphical tally for the 6 possible discrete values.
For example, let's say a user has 5 maps with the following exact ratings: 2.9, 3.2, 3.6, 4.1, 4.5. Those maps will show ratings of 3, 3, 4, 4, 5. Thus the histogram for that user should be (0,0,0,2,2,1), with labels 0, 1, 2, 3, 4, 5. Let's consider the current system, which looks at the exact average ratings. That system would result in the histogram (0,0,1,2,2), with the labels 0-1, 1-2, 2-3, 3-4, 4-5. To be sure, that histogram functions properly, but in this case it doesn't display things the way the user expects. It doesn't correlate with the way the rest of the site handles average ratings.
Of course, the fact that the site deals with the exact values for the average ratings means that the histogram is working with essentially continuous values, not discrete values. But that's not a big problem. All one has to do is handle those continuous values like the rest of the site handles them. That is, just emulate rounding, namely by using the following intervals: [0.0 - 0.5) [0.5 - 1.5) [1.5 - 2.5) [2.5 - 3.5) [3.5 - 4.5) [4.5 - 5.0]. The half-sized intervals on the end aren't wrong or misleading because the histogram is emulating the site's conversion of (essentially) continuous values into discrete values.
And that's the entirety of my argument. Please let me know if you have questions and I will do my best to clarify.
Edit: It appears that perhaps Arachnid's system is not quite what I said it is above. Perhaps Arachnid is rounding the average first, and then using the bounds [0 - 1) [1 - 2) [2 - 3) [3 - 4) [4 - 5]. But even so, that's really equivalent to this: [0.0 - 0.5) [0.5 - 1.5) [1.5 - 2.5) [2.5 - 3.5) [3.5 - 5.0], which involves unequal widths. In any case, the argument only changes a little to become: split that last interval into 2 intervals!