2010-12-29 9 views
0

会員がトップ10のランキングまたは上位10位のランキングを提出して、いくつかのアルゴリズムで結果を組み合わせるようにしました。そこに何かそこのようなものがありますか?ユーザーが投稿したランキング

ありがとうございます!

+6

これは私がこれまで見たことのない漠然とした質問だと思います。少なくとも10位以内 – Oded

+0

一度に不明瞭で具体的です。 "アルゴリズム上のランク付けは、まともな上位10リストの集計に最も適していますか?"それを開いたままにしておくと、答えは価値があるはずです。 –

+0

実生活のアプリケーションでは、大学のサッカーはランキングを決定するためにAPとコーチの組み合わせランキングを使用します。私はランキングを組み合わせるために使用するものを明らかにするものは見つけられませんでしたが、基本的に同じことをしたいと思います。 – killerbarney

答えて

0

ユーザーが指定したランキングの各項目を合計して並べ替えることができます。

はすなわち:

A = (a,b,c) 
B = (a,c,b) 
C = (b,a,c) 
D = (c,b,a) 
E = (a,c,b) 
F = (c,a,b) 

a = 1 + 1 + 2 + 3 + 1 + 2 = 10 
b = 2 + 3 + 1 + 2 + 3 + 3 = 14 
c = 3 + 2 + 3 + 1 + 2 + 1 = 12 

したがって、

  1. C
  2. B
1

えーえ、それはオープンエンド大丈夫です。のは2つだけの人が投票の単純なケースを考えてみましょう:

1 ALPHA 
2 BRAVO 
3 CHARLIE 

1 ALPHA 
2 DELTA 
3 BRAVO 

我々は、カウントによって純粋に行くことができない... ALPHAは明らかに勝つ必要があり、それはBRAVOと同じ票を持っているのに。しかし、1位の投票がわずか10位の大票を占める場合は避けなければならない。これを行うために、私は次のことをお勧め:

$score = log($num_of_answers - $rank + 2) 

まず場所は、ただ一点以上のビット、および10位価値があるだろう.3ポイントになるだろう。その対数スケーリングは、ばかげた支配を防ぎますが、依然としてランキングに重要な役割を果たします。これらの例題の票から、あなたが10のリストの上位3であると仮定すると、次のようになります。

ALPHA: 2.08 
BRAVO: 1.95 
DELTA: .1 
CHARLIE: .95 

なぜですか?それは主観的です私は非常に長いリストの中で、10位賞の4,000票が1,000票以上の1位投票に値すると感じています。ログのベース(自然、2など)を変更したり、別のシステムを選択したりすることによって、異なるスケールにすることができます。

-1

私はあなたが次のことを想定し、ランキング集約を作成するには、max flow algorithmを使用することで、この問題を解決することができると思う:

  1. 項目のリストから一意の各項目は、グラフ内のノードです。例えば。投票するものが10個ある場合、10個のノードがあります。
  2. _single user submitted_ rankingの* a *が* b *の直前の場合、エッジはノード* a *からノード* b *になります。
  3. エッジを有することになる_singleユーザsubmitted_ランキングから作成された最後のノード*シンク*に向け
  4. _singleユーザsubmitted_ランキングから作成された最初のノードは、*ソース*からの着信エッジを有することになる

集約トップ10のリストを取得する必要があります。

+0

私はそれがどのように関連しているかを完全に理解していません。彼はそれらのランク付け方法を尋ねていますが、ステップ2ではランキングが決定されたと想定しています。 –

+0

ステップ2では、あなたが書いたようにランキングが「1 ALPHA、2 BRAVO、3 CHARLIE」になります。私は私の答えを言い返すだろう。それが理にかなっていないかどうか私に教えてください。 – Davidann

関連する問題