1

これが私の挑戦です。次のようなスプレッドシートがあります。

prod_id | pack  | value | durable | feat | ease | grade  | # of ratings
1         75      85      99        90     90     88       1
2         90      95      81        86     87     88       9
3         87      86      80        85     82     84       37
4         92      80      68        67     45     70       5
5         93      81      94        93     90     90       4
6         93      70      60        60     70     70       1

各製品には、個別のグレード基準(パッケージ化-使いやすさ)、全体的な平均グレード、および製品が受けた評価の数があります。

私が持っているデータセット全体では、製品の68%が80〜89グレードの範囲内にあります。製品の評価数を考慮してグレードを再計算する必要があるため、平均評価数の合計をはるかに下回る製品はランクが低くなります(そしてグレードが低くなります)。基本的に、グレードが84および100の製品は、グレードが95で5つの評価しかない製品よりもランクが高くなります。

これが理にかなっていることを願っています、事前に助けてくれてありがとう!

4

2 に答える 2

1

電卓なしでは正確にはわかりませんが、次のようになります。

Grade = AVG(pack, value, durable, feat, ease)

その場合は、「総平均評価数を大幅に下回る」と定義するだけです。平均からの標準偏差に重みを付けます-これはまともなアルゴリズムである場合とそうでない場合があります(私は統計学者ではありません)。しかし、これは正確に平均 = 1 の評価を意味し、そこから +/- を取得します。

WeightedGrade = Grade * ABS((Rating - AVG(H:H)) / STDEV(H:H))
于 2009-05-01T22:54:12.150 に答える
1

必要なのは、重み付けのための意味のあるアルゴリズムです。自分にとって意味のあるものを選択できますが、要件に基づいて最初に試すことは、未加工のグレードに加重係数を掛けることです。評価の数を評価の合計数で割った比率を計算すると、次のように答えが得られます。

prod id raw grade   # ratings   weight          weighted grade
1         88          1           0.01754386      1.543859649 
2         88          9           0.157894737     13.89473684
3         84          37          0.649122807     54.52631579
4         70          5           0.087719298     6.140350877
5         90          4           0.070175439     6.315789474
6         70          1           0.01754386      1.228070175
                       57       

これが問題に当てはまるかどうかはわかりませんが、要件を満たしています。重み付けされたグレードを正規化して、prod id # 3 が 100 になるようにし、残りをそこからスケーリングすることができます。

他のアイデアについては、「集合知」をご覧ください

于 2009-05-01T22:55:20.900 に答える