2013-11-22 1 views
0

a/b 테스트 라이브러리를 작성하고 테스트 중입니다. Math.Random (...) 호출을 사용하여 변형 사이에서 방문자를 분할합니다.A/B 테스트를 통해 방문자가 균등하게 나뉩니다.

그러나 이것은 제대로 작동하지 않습니다. variationA와 variationB의 디스플레이 차이는 20 %를 넘었습니다.

차이점이 X %보다 큰 경우 디스플레이를 비교하고 Math.Random을 호출하지 않고 다른 유사 콘텐츠를 표시하기로 결정하는 것 외에 다른 사람이 더 나은 옵션을 알고 있습니까?

답변

2

A/B/A/B/A/B 응답보다 무작위로 유지하려는 경우 확률을 낮출 수 있습니다 무작위로 생성 된 A 또는 B의 최소 구성원 수가있는 그룹으로 당신이이 설정을 변경하면

variation = if(Random() > 0.5) { variationA } else { variationB } 

(nrOfA/B = 시간 A/B가 선택되었다) : 임의의 0과 1 사이의 숫자를 반환하는 경우

예를 들어, 당신은의 라인을 따라 뭔가있을 것 :

variation = if(Random() > (nrOfB/(nrOfA + nrOfB))) { variationA } else { variationB } 

그러면 A 또는 B의 가능성은 다른 것과 비교하여 얼마나 큰지에 달려 있습니다. 큰 B가 A와 비교 될 때, 기회 A가 선택되고 그 반대도 마찬가지입니다.

+0

감사합니다. 멋진 아이디어입니다! – ra00l

2

A와 B 사이의 조회수가 100 %가되도록하려면 유사 콘텐츠에 마지막 유사 콘텐츠가 할당 된 캐시/db에 저장해야합니다. 그런 다음 각 요청에 대해 다른 대안을 할당하십시오. 이 방법으로 A/B/A/B/A/B 등을 갖게됩니다.