2010-07-01 6 views
9

사람이 투표를하거나 투표를 할 수있는 시스템이있어서 그 결과를 5 성급 등급으로 표시하고 싶습니다.바이너리 등급 시스템에 베이지안 평균 알고리즘을 구현하는 방법

나는 베이지안 레이팅 알고리즘을 사용하여 herehere을 시도했지만 성공하지 못했습니다.

예를 들면 : 나는 3 개 내 데이터베이스의 항목 (A, B 및 C)이 있습니다

A = 500 UP 및 투표 아래 B = 0 UP 1000 표 아래 500 C = 0, 1000 아래 표를 참조하십시오.

각 항목의 베이지안 평균 평점을 계산하여 점수가 1에서 5 사이가되도록하려면 어떻게합니까?

+0

가능한 중복 [가장 득점 항목을 계산하는 가장 좋은 알고리즘 무엇입니까?] (http://stackoverflow.com/questions/2134504/what-is-the-best-algorithm-to-calculate-the-most -scored-item) –

답변

3

간단한 대수 :의

AvgVotes 모든 항목의 = 모든 투표의 합계/합계

AvgRating = 합계 모든 투표의 투표까지의 모든 항목에 대한 * 5 ​​/ 합계의

CurVotes = 번호 현재 항목에 현재 항목에 투표

CurRating 투표까지의 = 합계 * 현재 항목에 투표 5/수

TotalVotes의 = 합계 현재 항목

((AvgVotes * AvgRating) + (CurVotes * CurRating)) *에 투표 모든 투표 + 합계 5/TotalVotes

그래서 A의 무게를 평가하여 번호에 연결 ...

AvgVotes = 1000

AvgRating = 0

CurVotes = 1000

,536,913 (이 계산에서 평가하는 항목 수를 포함하지 않는 기억) 63,210

CurRating = 500 * 1천분의 5 = 2.5

총 추천 = 2000 + 1000 = 3000

(* 2.5 (1,000 * 0) + (1000)) * 3천분의 5 = 4.166

추가하는 것을 잊어 버렸습니다. 위의 계산이나 합계에 투표하지 않은 항목을 포함시키지 마십시오. 그렇지 않으면 가중치가 적용되지 않습니다.

편집 - 간체 솔루션 :

내가 수행 할 수있는 문제에 대한 간단한 해결책이 있음을 알아 두셔야합니다. 나는 이해를 위해 필기체 형식만을 시연했다. 압축 알고리즘 보이는 같은

설명 : 표 0보다 큰 전류 평가 대상 관련되지

SET = 건.

대상 = 요소는 당신이 현재 평가하기 위해 노력하고있다

25 * ((SET 최대 - 투표)의 (합계/(SET 항목의 합)) + TARGET의 (합계 최대-투표를))/(TARGET 투표 SET 투표의 + 합계)의 합계

다시 번호 설명과 증거에 대해 'A'를 평가에 연결 :

(25 * ((0/2) +500))/(1000 + 2000) = 4.166

+0

쉽게 읽을 수 있도록 위의 편집 게시물에 내 의견을 추가했습니다. –

관련 문제