[解決済み] クラウドソーシングで100万枚の画像をランク付けする方法
質問
風景写真のコレクションを、サイト訪問者が評価できるようなゲームを作ってランキングし、人々が最も魅力的だと思う画像を見つけたいと思います。
そのための良い方法は何でしょうか?
- ホット・オア・ノット・スタイル ? すなわち、1つの画像を表示し、ユーザーに1~10までのランク付けを求めます。私が思うに、これはスコアを平均化することを可能にし、私はすべての画像にわたって投票の均一な分布を得ることを確実にする必要があります。実装は非常に簡単です。
- AかBを選ぶ ? つまり、2つの画像を表示し、より良い方を選んでもらう。これは、数値的なランキングではなく、単なる比較なので、魅力的です。しかし、どのように実装すればいいのでしょうか?私が最初に考えたのは、クイックソートのように、比較操作を人間が行い、完了したらソートを無限に繰り返すだけというものでした。
どのようにしたら あなた をするのでしょうか?
数字が必要な場合は、毎日 20,000 人の訪問者があるサイトで、100 万枚の画像について話しています。議論のために、私が 1 日に 2,000 件の人間の並べ替え操作を生成できるとしましょう! これは非営利のウェブサイトであり、好奇心旺盛な人は私のプロフィールから見つけることができるだろう:)
どのように解決するのですか?
他の方もおっしゃっているように、人によってレベルが違うので、1~10のランキングはそれほどうまくいきません。
の問題点は AかBを選ぶ メソッドの問題点は、システムが推移的であることが保証されていないことです(AはBに勝つことができますが、BはCに勝ち、CはAに勝つことができます)。 非遷移的な比較演算子を持つとソートアルゴリズムが壊れる . クイックソートでは、この例に対して、ピボットとして選択されていない文字は、互いに対して誤ってランク付けされることになります。
任意の時点で、あなたはすべての絵の絶対的な順位を求めます(一部/全部が同点であっても)。 また、順位が変化しないようにしたい の投票がない限り .
私なら AかBを選ぶ(または同点) メソッドと同じように順位を決定します。 Eloレーティングシステム という、2人用ゲーム(元々はチェス)のランキングに使われるに似た方法でランキングを決定します。
<ブロッククオートElo プレイヤーレーティングシステムは は、プレイヤーの試合記録と対戦相手の試合記録を比較し 対戦相手の戦績を比較し を比較し、その対戦に勝利する確率を算出するものです。 勝率を算出します。この この確率によって この確率によって、各対戦の結果、選手のレーティングが何点上がるか、下がるか 各試合の結果によって を決定する。レーティングが高い相手に勝つと より高いレーティングの相手に勝つと より高いレーティングの相手に勝つと、より高くレーティングされます。 レーティングの高い相手に勝つと、レーティングの低い相手に勝つよりも レーティングが上がる(プレイヤーはレーティングの低い相手を倒すべきなので より低いレーティングの相手を倒すべき レーティングを上げることができます。)
Eloシステム。
- すべての新規プレイヤーは、基本レーティングが 1600
- 勝率 = 1/(10^((相手の現在のレーティング-プレイヤーの現在のレーティング)/400) + 1)
- ScoringPt = 試合に勝てば1点、負ければ0点、引き分けなら0.5点。
- プレイヤーの新しいレーティング = プレイヤーの古いレーティング + (K-Value * (ScorePt-プレイヤーの勝利確率))
player" を写真に置き換えることで、両方の写真のレーティングを数式に基づいて調整する簡単な方法があります。 そして、その数値のスコアを使用してランキングを行うことができます。(ここでいうK値は、大会のレベル("Level")です。 地元の小さな大会では8〜16、大きな招待大会や地域大会では24〜32となります。 20のような定数を使用することもできます)。
この方法では、各写真について 1 つの番号を保持するだけでよく、他の写真に対する各写真の個別のランクを保持するよりもはるかに少ないメモリ消費量です。
編集:コメントに基づいて、もう少し肉を追加しました。
関連
-
[解決済み] アルゴリズムの教科書では、ソートされた配列について「増加」ではなく「非減少」を使っているのはなぜですか?
-
[解決済み] ヒープ構築のトップダウン・アプローチはボトムアップよりも成長度合いがO(n)よりもO(log n)低いにもかかわらず、なぜ効率が悪いのでしょうか?
-
[解決済み] 山積みされた靴下を効率よく組み合わせるには?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] List<T>をオブジェクトのプロパティでソートする方法
-
[解決済み] データフレームの行を複数の列でソート(並び替え)する。
-
[解決済み] 多次元配列の値によるソート方法
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] 辞書をキーでソートするにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】決定木(比較ソートアルゴリズム)の葉の最短の深さ)
-
[解決済み] Octave : ロジスティック回帰 : fmincg と fminunc の違い
-
[解決済み] Bogosort (a.k.a Monkey Sort)よりも悪いソートアルゴリズムはあるのか?[クローズド]
-
[解決済み] 解いてみてください。T(n) = T(n-1) + n [重複] とする。
-
[解決済み] 線形時間でのソート?[クローズド]
-
[解決済み] 与えられた数列の中に現れない最小の正の整数を求めよ。
-
[解決済み] リストの並べ換えをすべて生成するアルゴリズム?
-
[解決済み] 並べ換え→数→並べ換えの高速マッピングアルゴリズム
-
[解決済み] MapReduceのソートアルゴリズムはどのように動作するのですか?
-
[解決済み] ヒューリスティックとアルゴリズムの違いは何ですか?