2016-08-28 17 views
-4

Ich versuche, einige Statistiken rund um die Kurse in einem Lernportal aufgeführt zu bekommen. einer davon ist, die 4 beliebtesten Kurse unter drei Faktoren basieren auf erhalten: für den KursAlgorithmus zur Berechnung der beliebtesten Kurse

  • Anzahl der Abonnenten
  • Anzahl der Bewertungen Durchschnittliche Bewertung

Ich war über die Lösung für eine Weile nachdenken, aber nicht in der Lage, den besten Ansatz zu erreichen, um oben zu erreichen.

Kann mir bitte jemand vorschlagen, wie ich diese Faktoren nutzen kann, um die genauesten Daten zu beliebten Kursen zu erhalten?

Jede Hilfe wird sehr geschätzt.

Dank

+0

Zeigen Sie uns Ihre Vorgehensweise. – jbsu32

+1

Es ist nur eine Frage der Meinung, was der richtige Weg ist.Zum Beispiel, ein Kurs mit 1000 Abonnenten und Durchschnittliche Bewertung 4/5 und 20 Bewertungen. Ist das besser oder schlechter als eins mit 900 Abonnenten, 5/5 Av. Bewertung und 5 Bewertungen? Es gibt keine absolute richtige/falsche Antwort. –

+0

@PaulHankin Ich verstehe, es ist nur eine Frage der Meinung, aber wollte immer noch zu verstehen, wie Lernportale wie Course, Udemy usw. populäre Kurse basierend auf diesen Faktoren anzeigen? – user3400887

Antwort

0

Sie diese Formel versuchen können ->

popularity = 50*((NumSub/maxNumSub) + (RateAvg/RateMax)*(NumReview/NumSub)) 

Hier

NumSub = Number of Subscribers in the Course. 
maxNumSub = Maximum Number of Subscribers in all the Courses. 
RateAvg = Average Rating of the Course. 
RateMax = The Highest rating a course can get. 
NumReview = Number of reviews of the course. 

So erhalten Sie einen Wert für popularity aus 100 bekommen.

e.g: 

Nehmen wir an, sich für einen Kurs,

NumSub = 80 
maxNumSub = 100 
RateAvg = 4.5 
RateMax = 5 
NumReview = 24 

also nach der Formel,

popularity = 50 * ((80/100) + (4.5/5)*(24/80)) 
      = 50 * (0.8 + 0.9*0.3) 
      = 53.5 

Somit wird der Popularität Wert für den Kurs 53.5 ist.

0

Dies ist, wie ich es tun würde:

  1. Put Abonnenten, Berichte und Bewertungen in 3 separaten Listen
  2. Verwenden Sie eine Funktion wie max() den größten Wert in der Liste zu finden, dann diesen Wert löscht aus die folgende Liste, tun dies 4mal, den größten Wert auf eine neue Liste jedes Mal (wenn Sie möchten)
  3. diese

auch für jede Liste hinzufügen Sie, welche Sprache verwenden Sie? Ich weiß, dass dies für mich funktionieren würde, aber es kann etwas anders sein, abhängig von der Sprache

1

Bevor Sie eine subjektive Formel darüber geben, würde Ich mag Ihnen ein paar Links weisen darauf hin, über bayesian statistics und wie IMDb rates films

Wie Sie die Gewichte für Ihre einzelnen Parameter auswählen, scheint in Ihrem Anwendungsfall sehr subjektiv zu sein. Sie haben nicht zu viele Parameter, mit denen Sie nicht spielen können. Zum Beispiel haben Sie die Anzahl der Bewertungen ... aber bedeutet das, dass alle von ihnen gute Kritiken sind?

+0

Nein. Nach Anzahl der Bewertungen habe ich alle Arten von Bewertungen gemeint. – user3400887

Verwandte Themen