2017-10-06 5 views
0

Ich bin mit Artikel auf einer Website arbeiten und Tags (ihre Beziehung ist n: m). Ein wichtiger Teil der Website ist das Filtern der Artikel nach Tags. Die Tags haben bestimmte Gewichte, die ihre relative Wichtigkeit darstellen. Die Gewichte ändern sich im Laufe der Zeit (auf einer täglichen Basis), abhängig davon, wie oft sie zum Filtern von Artikeln verwendet wurden (Treffer)).Algorithmus für die Verfolgung von relativen Trends

Welchen Algorithmus sollte ich verwenden, um die Gewichte zu berechnen? Schlüsselkriterien:

  • Basierend auf historischen Daten (Hits), aber ziemlich kurzfristig (~ letzten 10-20 Tage)
  • Die Relevanz der Daten aus der Vergangenheit geht im Laufe der Zeit (Hits aus gestern sind wichtiger als Hits von vor 10 Tagen)
  • den „individuellen Trends“ von Tags Respektierung (einen Tages, das von 100 bis 200 Treffern innerhalb eines Tages ging gewinnt über einen Tag, das
  • 200 Hits 2 Tage hatte
  • in einer Reihe) Respektiere neue Tags (ohne historische Treffer)
  • Respect-Tags, die in den letzten Tagen nicht viele Treffer erhalten haben (Tags mit hohen Gewichten erhalten natürlich mehr Treffer, so dass "schwächere" Tags immer noch "den Kreis brechen" sollten)

Antwort

0

ich würde die folgende Formel für Tag Gewicht vorschlagen:

Score = c1 * Hits(today) + c2 * (Hits(today) - Hits(yesterday)) + c3 * Random 
Weight = a * Score + (1 - a) * Weight(yesterday) 

Wo

  • Zufall - Zufallswert 0..1
  • c1, c2, c3, ein - geeignete konstante Werte, 0<a<1
Verwandte Themen