0
$\begingroup$

I have a set of users that also have two parameters :

  • Their number of twitter followers
  • Their campany ranking, worldwide, given by Alexa.

I'd like to generate a score based on those two numbers, but I'm having an hard time coming up with something viable.

The two issues I'm facing are :

  1. I'd like to give more weight to the twitter followers since it represents the user directly
  2. The company ranking must be inverted because the higher the number, the less important the company is.

So I can't simply do a followers * ranking. I must at least invert the ranking.

My second idea was to find the highest number in my set for the ranking, and substracting it (to get the oposite). So this becomes :

followers * (Hihgest company ranking - company ranking)

Unfortunately, some users doesn't have a company ranking, but have a high number of followers. In that case, they quickly go at the end of the list because any other user that have a ranking for the domain gets bigger.

Also, the ratio between the number is not close at all :

  • For Twitter, the highest number I have in my set is 41816
  • Whereas the highest ranking number is 160335053

So I'm turning here to ask for your help, hoping there is a solution :)

Thank you!

1 Answers 1

1

I think first you could first normalise your follower score via Z score normalisation.

For normalising the ranking function, you may use the the inverse ($\frac{1}{rank}$) or normalise every score between 0 and 1 ($\frac{rank_i}{max\ rank}$).

Now to combine these two normalized rankings, you could either use an unsupervised approach such as rank product/averaging or supervised approach such as Cranking/ensemble. In supervised approach, you create your own list of the users based on your experience (or few user pairs and give 0/1 score) and then learn the ranking weights of the two features.