대신 5 별 등급 시스템을 수행하기 위해 윌슨의 알고리즘을 조작하려고합니다. 왜 당신은 다른 알고리즘을 들여다 보지 않겠습니까? 이것은 imdb가 자신의 상위 250 개에 사용하는 것입니다 : Bayesian Estimate
Wilson의 알고리즘에 대한 설명은 아래 첫 번째 게시물의 링크에 게시되었습니다. 루비로 작성되었습니다. http://www.derivante.com/2009/09/01/php-content-rating-confidence/
편집 :
require 'statistics2'
def ci_lower_bound(pos, n, power)
if n == 0
return 0
end
z = Statistics2.pnormaldist(1-power/2)
phat = 1.0*pos/n
(phat + z*z/(2*n) - z * Math.sqrt((phat*(1-phat)+z*z/(4*n))/n))/(1+z*z/n)
end
다른 예를 원하는 경우
, 여기에 PHP의 하나입니다 derivante.com 주위에 더 이상없는 것 같다. archive.org -
https://web.archive.org/web/20121018032822/http://derivante.com/2009/09/01/php-content-rating-confidence/에서 원본 기사를 볼 수 있으며 아래 기사에서 코드를 추가했습니다.
class Rating
{
public static function ratingAverage($positive, $total, $power = '0.05')
{
if ($total == 0)
return 0;
$z = Rating::pnormaldist(1-$power/2,0,1);
$p = 1.0 * $positive/$total;
$s = ($p + $z*$z/(2*$total) - $z * sqrt(($p*(1-$p)+$z*$z/(4*$total))/$total))/(1+$z*$z/$total);
return $s;
}
public static function pnormaldist($qn)
{
$b = array(
1.570796288, 0.03706987906, -0.8364353589e-3,
-0.2250947176e-3, 0.6841218299e-5, 0.5824238515e-5,
-0.104527497e-5, 0.8360937017e-7, -0.3231081277e-8,
0.3657763036e-10, 0.6936233982e-12);
if ($qn < 0.0 || 1.0 < $qn)
return 0.0;
if ($qn == 0.5)
return 0.0;
$w1 = $qn;
if ($qn > 0.5)
$w1 = 1.0 - $w1;
$w3 = - log(4.0 * $w1 * (1.0 - $w1));
$w1 = $b[0];
for ($i = 1;$i <= 10; $i++)
$w1 += $b[$i] * pow($w3,$i);
if ($qn > 0.5)
return sqrt($w1 * $w3);
return - sqrt($w1 * $w3);
}
}
SQL에서이 작업을 수행 할 때 SQL에는 이미 라이브러리에있는 모든 수학 함수가 포함되어 있습니다. 내가 너라면 너의 응용 프로그램에서 이걸 할거야. 이 작업을 수행하는 대신 응용 프로그램을 매우 자주 (시간? 일)마다 업데이트해야합니다. 그렇지 않으면 응용 프로그램이 매우 느리게됩니다.
페이지 모자에 오라클 PL/SQL 구현을 업로드 = 확률 변수 페이지의 당신의 추정합니다. \ n 대한 중요성을 차단 – twolfe18
+1 예수 물고기 = 알파, 뒤로 물고기가 오리엔테이션을 가지고있는 것처럼 "뒤쪽 예수 물고기". – ash