Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Reviewalgoritme/formule

Pagina: 1
Acties:

  • Travelan
  • Registratie: Februari 2002
  • Laatst online: 14:58
Hoi Tweakerts!

Op mijn website wil ik gebruikers sporthallen laten reviewen, door in een aantal categorieen (bereikbaarheid, koffiekwaliteit, hygiene, kleedkamers, etc) de bekende 1-5 sterren toe te wijzen. Om uiteindelijk tot een totaalscore te komen, al dan niet met toepassing van weging, lukt mij natuurlijk wel.

Op de voorpagina wil ik de ranglijst van de beste sporthallen laten zien, dus gewoon sorteren die hap op score, en klaar... toch?

Ik wil juist de volgende situatie voorkomen:
Sporthal 1 heeft score 4, met 100 reviews dus een erg betrouwbare score. Sporthal 2 heeft score 5, maar dat is puur doordat de eigenaar zijn eigen sporthal overal 5 sterren heeft gegeven, en er verder geen reviews zijn. Op de naieve manier zou sporthal 2 bovenaan komen.

Is er een algemene aanpak voor dit soort dingen? Ik zie door de bomen het bos niet meer...

Alvast bedankt!!

Bas

  • almar
  • Registratie: Februari 2004
  • Laatst online: 24-04-2024
Gewoon ook hierop weging toepassen?

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Een simpele oplossing zou zijn door alleen sporthallen te tonen met meer dan tien reviews.

  • indexample
  • Registratie: April 2002
  • Niet online
of een betrouwbaarheidsinterval berekenen voor elke score (bijv gemiddeld 4, interval tussen 3 en 5 met 95% zekerheid), en standaard afronden naar de onderkant van de interval [min(scoreinterval) = 3]
hoe meer reviews je hebt, hoe smaller dat betrouwbaarheidsinterval wordt (bijv 3,8 tot 4,2 met 95% zekerheid) en dus hoe hoger de minimale score.

(ben geen programmeur maar wel psycholoog ;) )

[ Voor 14% gewijzigd door indexample op 17-10-2013 09:43 ]


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 21-11 15:31

TheNephilim

Wtfuzzle

Aantal reviews en/of verschil van cijfers meewegen.

  • Travelan
  • Registratie: Februari 2002
  • Laatst online: 14:58
TheNephilim schreef op donderdag 17 oktober 2013 @ 15:31:
Aantal reviews en/of verschil van cijfers meewegen.
Ja, dat snap ik ;) maar hoe?

  • naitsoezn
  • Registratie: December 2002
  • Niet online

naitsoezn

Nait Soez'n!

Betrouwbaarheidsfunctie (functie van aantal reviews) genereren, en vervolgens sorteren op het product van de uitkomst van die functie en de gemiddelde score. Betrouwbaarheidsfunctie kan ook een lookup-tabel zijn, bijvoorbeeld (#reviews, betrouwbaarheid) = {(1,0), (2,0.5), (3, 0.75), (5, 0.9), (10, 0.95), (50, 0.99), ...} of een functie bedenken om een soortgelijke verloop te krijgen.

[ Voor 7% gewijzigd door naitsoezn op 17-10-2013 16:10 ]

't Het nog nooit, nog nooit zo donker west, of 't wer altied wel weer licht


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:08
Ik vermoed dat een formule als deze wel aardig werkt:

rating = (avg_score × avg_reviews + sum_scores)/(avg_reviews + num_reviews)

Waarbij avg_score de gemiddelde score is die wordt toegekend door reviewers (dat hoeft niet altijd 2.5 te zijn — hangt een beetje van je rievewers af), avg_reviews het gemiddelde aantal reviews per product, sum_scores de som van de scores voor dit product, en num_reviews het aantal reviews voor dit product. (s/product/sporthal/g in dit geval.)

Het idee van die formule is dat een sporthal zonder reviews bij het gemiddelde begint, en dat naarmate er meer reviews zijn, het gemiddelde van de daadwerkelijke reviews zwaarder gaat meewegen.

Je kunt overwegen de waarden avg_score en avg_reviews te hardcoden, want die variëren meestal niet zoveel. Dat maakt het makkelijker om de rating van een product efficiënt te herberekenen wanneer een review wordt gepost. (Ook kun je daarmij finetunen hoe snel een nieuw product in rating kan stijgen/dalen.)

[ Voor 4% gewijzigd door Soultaker op 17-10-2013 16:15 ]

Pagina: 1