Crunching the Math On iTunes
markmcb writes "OmniNerd has posted an interesting article about the statistical math behind iTunes. The author makes some interesting observations concerning the same song playing twice in a row during party shuffle play, the impact that star ratings have on playback, and comparisons with plain old random play (star ratings not considered)." From the article: "To test the option's preference for 5-stars, I created a short playlist of six songs: one from each different star rating and a song left un-rated. The songs were from the same genre and artist and were changed to be only one second in duration. After resetting the play count to zero, I hit play and left my desk for the weekend. To satisfy a little more curiosity, I ran the same songs once more on a different weekend without selecting the option to play higher rated songs more often. Monday morning the play counts were as shown in Table 1."
From their results, I'd venture a guess as to the underlying algorithm:
Each song is given a number of points equal to (rating + 1). Then the probability of the song being played is (song rating)/(total points).
Or, to put more succinctly:
prob(song) = (rating)/(n + sum(i=1..n)(rating(i)))That yields probabilities in the given test case of:
5 star - .285 .238 .190 .143 .095 .048
4 star -
3 star -
2 star -
1 star -
0 star -
Which is reasonably close to what the author found. Heck, if I were implementing that feature, it's what I'd try first...
A way to calculate the odds that 2% will be played in the next 50 songs doesn't work 50* (2/100) = 100% as the author does, and neither 25*(2*100) = 50% is correct.
The correct calculations are: 1-(98/100)^50 = 63% and 1-(98/100)^25 = 39%.
This way you calculate the odds a song will be played at least once in the next 50 or 25 songs.
If you want to calculate the odds the song will be played exactly once in the next 50 or 25 songs:
50 * (2/100) * ((98/100)^49) = 37% or 25 * (2/100) * ((98/100)^24) = 31%.
I guess that's all..