2017-06-20 11 views
0

Yahoo!ムービーデータセットでは、レーティングスケールは1から13までです。ここで1は良いレーティングを表し、13はレーティングに最も低いレーティングを表します。 0の場合は、そのユーザーがその映画を評価していないことを表します。評価を1から5の目盛で正規化する方法は?

rating { 13 12 11 10 9 8 7 6 5 4 3 2 1 0} OR 
rating { A+ A A- B+ B B- C+ C C- C+ D D- F 0} 

eg. user m1 m2 m3 
    1 2 3 13 
    2 0 1 7 

が、私は5 に1の規模に13の1のスケールで評価を正規化する方法を知らないだけで、私は一つのことを行うことができますすなわち

{A+,A,A-} = 5 
{B+,B,B-} = 4 
{C+,C,C-} = 3 
{D+,D,D-} = 2 
{F}  = 1 

は、いずれかがあります他の方法や任意の数式を使用して?

答えて

0

浮動小数点数が許可されている場合は、単純に5/13を乗算します。必要に応じてフルナンバーに丸めます。

5が最良の場合は、6から結果を引きます(if節でハンドル0)

+0

ありがとうございます。 浮動小数点値は使用できません。比較の際にバグが発生します。 –

+0

次に、実行時にラウンドするか、手動で計算された配列を定義する必要があります。 [0,1,1,2,2,2,3,3,3,4,4,4,5,5] 残念ながら、 1..5のすべての値を1..13の同じ数の値からマッピングすることはできません。 13が5の倍数ではないため、これは変更できません 古いスコアを持つ配列にインデックスとしてアクセスするだけで、正規化するだけです。 –

関連する問題