In case anyone is curious, after much wringing of hands and gnashing of teeth, I've arrive at what I think is a workable formula for my calculated scoring system.
First, I wanted to weigh the overall score to reflect both my rating of the song, how many times it's been played, and when the last time it was played. I ended up with:
50% - Rating
30% - Last Played
20% - Times Played
A couple of notes here: I set the Last Played variable to max out after 45 days. I also compare the title's number played to the title I've played the most to arrive at a relative number.
For the rating, I didn't want to use a straight scale. Instead I wanted to weigh the rating to favor the high rated songs and penalize the low rated ones. To do this, I created an equation in which an 5 star song equated to a value of 1, a 0 star song equated to -1 but where the even point (weighted rating = 0) was at ~3.5 stars.
The formula I arrived at was:
Code: Select all
Weighted Rating = .5*Rating^3 + .5*Rating^2 + Rating - 1
I subtracted 1 to arrive at a percentage value between 100% (5 star) and -100% (0 star).
I then feed this weighted rating into the overall equation to arrive at my weighted score which, for neatness sake, I limit to a number between 0 and 100.
In case anyone is curious, after much wringing of hands and gnashing of teeth, I've arrive at what I think is a workable formula for my calculated scoring system.
First, I wanted to weigh the overall score to reflect both my rating of the song, how many times it's been played, and when the last time it was played. I ended up with:
50% - Rating
30% - Last Played
20% - Times Played
A couple of notes here: I set the Last Played variable to max out after 45 days. I also compare the title's number played to the title I've played the most to arrive at a relative number.
For the rating, I didn't want to use a straight scale. Instead I wanted to weigh the rating to favor the high rated songs and penalize the low rated ones. To do this, I created an equation in which an 5 star song equated to a value of 1, a 0 star song equated to -1 but where the even point (weighted rating = 0) was at ~3.5 stars.
The formula I arrived at was:
[code]Weighted Rating = .5*Rating^3 + .5*Rating^2 + Rating - 1[/code]
I subtracted 1 to arrive at a percentage value between 100% (5 star) and -100% (0 star).
I then feed this weighted rating into the overall equation to arrive at my weighted score which, for neatness sake, I limit to a number between 0 and 100.