Question

Pour rechercher des sujets d'actualité, j'utilise le score standard en combinaison avec une moyenne mobile:

z-score = ([current trend] - [average historic trends]) / [standard deviation of historic trends]

(merci beaucoup, Nixuz )

Jusqu'à présent, je le fais comme suit:

Quelle que soit l'heure, pour les tendances historiques, je retourne simplement 24h. En supposant que nous ayons le 12 janvier à 15h45 maintenant:

current_trend = hits [11 janvier de 15h45 - 12 janvier de 15h45]

historic_trends = hits [10 janv., 15h45 - 11 janv., 3:45] + hits [9 janv., 15h45 - 10 janv., 3:45] + hits [8 janv., 15:45 - 9 janv. , 3:45] + ...

Mais est-ce vraiment adéquat? Ne serait-il pas préférable que je commence toujours à 00h00? Par exemple cette manière pour les mêmes données (15h45):

current_trend = hits [11 janv. 00:00 - 12 janv. 00:00]

historic_trends = hits [10 janv., 0:00 - 11 janv., 0:00] + hits [9 janv., 0:00 - 10 janv., 0:00] + hits [9, 9h00 - 9 janv. , 0: 0] + ...

Je suis sûr que les résultats seraient différents. Mais quelle approche vous donnera de meilleurs résultats?

J'espère que vous avez compris ma question et que vous pourrez m'aider. :) Merci d'avance!

Était-ce utile?

La solution

Je pense que le problème que vous pouvez rencontrer avec votre mise en œuvre actuelle est que les sujets qui étaient d'actualité il y a 23 heures influencent votre classement à l'heure actuelle. Le problème que je vois dans votre nouvelle mise en œuvre proposée est que vous effacez l'ardoise à minuit. Ainsi, les sujets qui étaient chauds tard hier soir ne sembleront pas être chauds tôt le lendemain matin (mais ils le devraient).

Je vous suggère d’envisager de mettre en œuvre un algorithme de type Digg dans lequel l’actualité d’un sujet décline avec l’âge. Vous pouvez le faire en comptant le nombre de hits / heure pour chacune des dernières 24 heures puis en divisant chaque score par le nombre d'heures écoulées. Additionnez les 24 périodes pour obtenir le score.

hottness = (score24 / 24) + (score23 / 23) + ... + (score2 / 2) + score1

Où score24 est le nombre de & hits; hits " qu’un sujet ait été abordé au cours de la période d’une heure qui s’est déroulée il ya 24 heures (peut-être pas exactement les hits, mais le score normalisé pour cette heure).

De cette façon, les algorithmes d'actualité chauds compteront toujours dans votre algorithme, mais pas autant que ceux qui l'étaient il y a une heure.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top