「関連性」の順に、2+ファクターの加重ソートを提供する必要があります。ただし、1つ以上の要素が他の要素の「緊急性」(重み)に影響を与えるようにしたいという点で、要素は完全に分離されていません。
例:投稿されたコンテンツ(記事)は賛成/反対投票できるため、評価があります。投稿日があり、カテゴリもタグ付けされています。ユーザーは記事を書いて投票することができ、自分自身に何らかのランキング(専門家など)がある場合とない場合があります。おそらくStackOverflowに似ていますよね?
タグでグループ化され、「関連性」でソートされた記事のリストを各ユーザーに提供したいと思います。関連性は記事の評価と年齢に基づいて計算され、著者のランキングの影響を受ける可能性があります。IEは、数年前に書かれた高ランクの記事が、昨日書かれた中ランクの記事ほど関連性があるとは限りません。また、専門家が記事を書いた場合、「ジョー・シュモー」が書いた記事よりも関連性が高いものとして扱われる可能性があります。
もう1つの良い例は、ホテルに価格、評価、アトラクションで構成される「メタスコア」を割り当てることです。
私の質問は、多因子ソートに最適なアルゴリズムは何ですか?これはその質問の複製かもしれませんが、私は任意の数の要因(より合理的な期待は2〜4の要因)の一般的なアルゴリズム、できれば私がする必要のない「完全自動」関数に興味がありますユーザー入力を微調整または要求すると、線形代数と固有ベクトルの奇抜さを解析できません。
私がこれまでに見つけた可能性:
注:S
は「ソートスコア」です
- 「線形加重」 -次のような関数を使用します。ここで、任意に割り当てられた加重であり、因子の値です。また、正規化する必要があります(つまり)。これは、 Lucene検索の仕組みのようなものだと思います。
S = (w1 * F1) + (w2 * F2) + (w3 * F3)
wx
Fx
F
Fx_n = Fx / Fmax
- 「Base-N加重」 -加重よりもグループ化に似ており、加重が基数10の倍数で増加する線形加重であるため(CSSセレクターの特異性と同様の原則)、より重要な要素が大幅に高くなります 。
S = 1000 * F1 + 100 * F2 + 10 * F3 ...
- 推定真の値(ETV) -これは明らかにGoogle Analyticsがレポートで導入したものであり、ある要素の値が別の要素に影響を与えます(重み)-結果として、より「統計的に有意な」値でソートされます。リンクはそれをかなりよく説明しているので、ここに方程式があります: ここで、は「より重要な」要因(記事の「バウンス率」)であり、「重要性の変更」要因(記事の「訪問」)です。
S = (F2 / F2_max * F1) + ((1 - (F2 / F2_max)) * F1_avg)
F1
F2
- ベイズ推定値-ETVに非常によく似ています。これは、IMDbが評価を計算する方法です。説明については、このStackOverflowの投稿を参照してください; 方程式:、ここで、は#3と同じであり、「有意性」係数の最小しきい値制限です(つまり、X未満の値は考慮されません)。
S = (F2 / (F2+F2_lim)) * F1 + (F2_lim / (F2+F2_lim)) × F1_avg
Fx
F2_lim
オプション#3または#4は、#1および#2のように任意の重み付けスキームを選択する必要がないため、非常に有望に見えますが、問題は、2つ以上の要因に対してこれをどのように行うかです。
また、2要素均等化アルゴリズムのSQL実装に出くわしました。これは、基本的に、最終的に作成する必要があるものです。