Tzi Software

Forum

   Home   Help Search Login Register  
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

News:

 
Pages: [1] 2
Print
Topic: I've updated AutoRate.  (Read 6833 times)
« on: January 30, 2009, 01:14:52 AM »
Brandon Offline
Jr. Member

View Profile
**
Posts: 62



I've had some frustrations with the way in which Autorate keeps assigning 0 ratings to my music and seems to be overly pessimistic about its ratings. So I took a look at the source and made some fairly significant changes to the algorithm that calculates the ratings for both the frequency and count methods. I don't know much about GUI integration in XCode so there is no way to change the parameters from the GUI but if the author were to implement my code in his next release it should be very quick and easy to do.

Summary of changes:

1. The formula to combine skip counts and play counts in formulating a rating made no sense. The skip count was being subtracted form the rating value (out of 100) rather than the play count itself. I've removed this line of code in favour of the following.

2. ratings are based on ((play count)-(skip count)-(min count))/((max count) - (min count)) where min and max refer to the 2-standard deviation intervals around the mean. And similarly for the play frequency.

3. I have implemented a way to adjust the minimum and maximum values assigned as ratings while maintaining a linear spread between the min and max values.

4. I have implemented an way to force the software to be more or less optimistic with its ratings, separately for each of the two algorithms. For example I find the frequency method a little pessimistic overall but more reflective of how much I like newer music in my library.

5. I have implemented a way to increase (or decrease) the importance of a skip towards the resultant rating (ie is a skip more important than a play? 2 plays? 10?, 1/2 ?)

After these changes, I am significantly more satisfied with the results of a rating pass of my entire library. It also seams to run faster. That may just be due to local compilation.

I have versioned this build 1.4.2.1 and have it on my machine only. I will leave it up to the author whether or not he wants to publish this or just leave it at this. In any case let me know if you want the source code.
Logged
« Reply #1 on: January 30, 2009, 01:24:22 AM »
Michael Offline
A Tasty Pixel
Administrator View Profile
Posts: 56



Fantastic work, Brandon, and thanks!  I'd love to see the source code so I can integrate your changes. Perhaps you could email it to me? mike [at] tzisoftware.com
Logged
« Reply #2 on: January 30, 2009, 08:28:58 AM »
Brandon Offline
Jr. Member

View Profile
**
Posts: 62



Will do, later this evening. I'll comment it a little more first too.
Logged
« Reply #3 on: February 19, 2009, 02:14:23 PM »
heyes Offline
Newbie

View Profile
*
Posts: 19



Has there been any further progress with this?  I too find that I am getting ratings that are really not what I expect. Is there a way to get this "unorthodox" version of autorate, or is there a plan for the changes to be beta tested or implemented?
Logged
« Reply #4 on: February 19, 2009, 04:05:01 PM »
Brandon Offline
Jr. Member

View Profile
**
Posts: 62



Its ready and fully functional on the backend, but the GUI isn't done yet. So if you feel comfortable editing a preference file to change the settings you can use it, but its unsupported until we release it.

I'll make it available in a few hours.
Logged
« Reply #5 on: February 19, 2009, 05:54:24 PM »
Michael Offline
A Tasty Pixel
Administrator View Profile
Posts: 56



Nicely done Brandon - I'll put the GUI together over the next few days.
Logged
« Reply #6 on: February 19, 2009, 07:29:12 PM »
Brandon Offline
Jr. Member

View Profile
**
Posts: 62



Just for completeness sake I'll post here a summary of changes made since 1.4.2

New in Version 1.5:

  • Rating scale for each of the play/skip frequency and play/skip count algorithms now determined by one of two optional methods:
    • Rated on a scale of (Average - 2 standard deviations) to (Average + 2 standard deviations)
      This is the same as version 1.4.2
    • Rated on a scale of the 0.025 percentile value to 0.975 percentile value. This is now the default.
      These limits are adjustable, but the middle 95% of values is the recommended scale. Note that this method is (in my opinion) better at representing the distribution of play counts/frequencies in a music library in which these values are NOT normally distributed, which I think, is virtually always.
  • Ratings now make [better] use of skip counting.
    Skips are applied against plays to negate them towards the result. The relative weight of a skip versus a play is adjustable. For instance I like to use a weight of about 3, meaning that 1 skip cancels out 3 plays. Note that this is incorporated into the statistics calculated (the "Cache") to come up with the rating scales. As an example, with the weight set to 2.5, a track with a play count of 101 and a skip count of 40 would end up with a lower rating (via the count method) than a track in the same library with a play count of 2 and no skips (101-40*2.5 < 2-2.5*0)
  • Added an adjustable level of optimism of the results, separately for each of the play/skip count and play/skip frequency methods of rating.
    There are 2 3 numbers to adjust for each method:
    • Skew Coefficient 0
      This value is a global shift of the results up (or down), in "stars" from -2 to +2 @ 1/2 star increments. This is most useful for offsetting some of the potent low-end skewing effect of the Skew Coefficient 2 or the high-end increases resulting from scaling with Skew Coefficient 1 . See below.
    • 1st order optimism factor. Skew Coefficient 1
      This is a linear scale factor that scales up (or down), in "stars" from -2 to +2 @ 1/2 star increments.  This scales about the minimum rating value.
    • 2nd order optimism factor. Skew Coefficient 2

      This is a non-linear function parameter that tends to skew low ratings upward toward the middle of the scale, in "stars" from 0 to +2 @ 1/2 star increments. I tried to get it so that each half star increment had roughly the same effect but it isn't quite so. A setting of 1 is more than twice as potent as a setting of 0.5 whilst a setting of 2 is not that much more potent than 1.5. This may get corrected in the future but for now live with it.

      If you are only going to use only one of these two values, which is probable but not necessary, than this is the the one that will likely better give you the results you want. I blatently assume this because it does for me, which is exactly why I created it. Essentially this increases the number of mid-range ratings without drastically increasing the number of highly rated songs. Basically it makes it easier for a track to get to a medium rating from a low rating without making it easier to get to a high rating. This lends large benifit to libraries with lots of songs played only a few times and a relatively smaller number that have been played substantially more.
      Of course you can use it in the opposite sense as well: to lower the number of mid-rated results.
      Frankly I find this works so much better than the linear scale factor that I considered replacing the linear one with this. Instead both are in use and can be used jointly. Think of it like the brightness and gamma settings on a monitor, where brightness is analogous to the linear scale and gamma to the second order scale. This is probably a poor analogy because most people aren't as big of a loser as I am (or you are if you truely understood that).


      With the latest changes, this value only skews ratings upward toward the mid range from the lowest, particularly from very low ratings to middle ratings. Being hyperbolic in nature, the start and end points of the function (at the min and max rating values) always fall on the result of the linearly scale.
  • Added the ability to log a list of all the play counts and frequencies, adjusted for skips, that were used in the generation of the rating scale statistics. This is only useful for those who are ridiculous enough to want to plot the distribution of these values, for any reason... Like me. This may not get a GUI switch but is adjustable in the preference file.
  • Added the ability to adjust the maximum and minimum assigned rating (and therefore the scale used in between).
  • Added the option to reserve 1/2 star ratings for tracks that have a greater weighted skip count than play count and therefore are tracks you probably really don't care for in that extra special sense.
  • Added a stipulation that all (and only) tracks that have a play count of 0 AND a skip count of 0 get a rating of zero regardless of any scaling or the library min and max values as determined form the analysis.
  • Percentile based analysis and rating will only work on OS X installations that have the unix "sort" command. That should be pretty much everyone. Call me ignorant but I don't know if that is everyone or if those who opt out of installing the BSD subsystem on an OS reinstall mightn't have this command available.


For additional details, to look at the code, visit http://autorate.googlecode.com
« Last Edit: March 05, 2009, 07:51:36 PM by Brandon » Logged
« Reply #7 on: February 21, 2009, 10:35:27 PM »
heyes Offline
Newbie

View Profile
*
Posts: 19



Wow!  That's a whole lot of functionality there, can't wait to play with it!  Thank you guys so much!
Logged
« Reply #8 on: February 23, 2009, 04:54:48 PM »
Michael Offline
A Tasty Pixel
Administrator View Profile
Posts: 56



Hi guys,

Just letting you know, the new version should be out in the next few days, hopefully - it should be finished by now, but there's a bug in the framework I was using to build a proper preferences dialog and it's completely busted the interface, so I'll need to start again.  Dammit.
Logged
« Reply #9 on: February 23, 2009, 10:08:27 PM »
heyes Offline
Newbie

View Profile
*
Posts: 19



Waiting with bated breath.
But seriously, I hope apple hires you to write this straight into itunes.
Cuz you rock.
Logged
« Reply #10 on: February 28, 2009, 07:29:15 AM »
heyes Offline
Newbie

View Profile
*
Posts: 19



Pester?
Logged
« Reply #11 on: February 28, 2009, 06:25:39 PM »
Brandon Offline
Jr. Member

View Profile
**
Posts: 62



I wouldn't bother  Wink

I had to make some major changes to the math that skews up the mid range ratings. Resultantly there are some parameter changes and Mike will have further GUI updates. Be patient, its coming soon.
Logged
« Reply #12 on: March 02, 2009, 06:53:02 PM »
Michael Offline
A Tasty Pixel
Administrator View Profile
Posts: 56



I'd give it a day or two, and it'll be ready to ship =)
Logged
« Reply #13 on: March 10, 2009, 08:36:04 PM »
heyes Offline
Newbie

View Profile
*
Posts: 19



I'm pretty demanding for someone who hasn't actually paid for the software - but I love it so!  Any news on the update?
Logged
« Reply #14 on: March 10, 2009, 08:41:15 PM »
Michael Offline
A Tasty Pixel
Administrator View Profile
Posts: 56



Hehe, I'm sorry about that - there were a couple of holdups on my end. I'm nearly there with it, shouldn't be more than a week.
Logged
Pages: [1] 2
Print
Jump to:  

© 2006 A Tasty Pixel Forum
blackTed Skin © 2006 HobbyBag Group (hbSkins) | Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC