IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Statistiques, Data Mining et Data Science Discussion :

Moyenne "intelligente" de temps de traitement


Sujet :

Statistiques, Data Mining et Data Science

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 19
    Par défaut Moyenne "intelligente" de temps de traitement
    Bonjour a tous,

    Première fois que je poste dans cette section, avec un problème peut être (et j'espère) simple à résoudre.

    Un peu de contexte : Nous avons développé un système de répartition de traitements, qui envoie ces fameux traitements sur des machines lorsqu'elles sont disponibles. En gros on a une interface de soumission de traitements, un moteur qui s'occupe d'envoyer le traitement à réaliser sur une machine disponible, et la machine de traitement fait son boulot. L'interface de soumission monitore alors les traitements en train de tourner.

    Pour chaque traitement on va enregistrer la date / heure de démarrage (lorsque la machine de traitement recoit le traitement a effectuer) ainsi qui la date / heure de fin de traitement.

    Maintenant qu'on a un peu de données (le système tourne depuis plus d'un an), on souhairetait se servir de tout ca pour donner une estimation du temps de traitement à l'utilisateur. On a réfléchi aux possiblités pour donner un temps le plus réaliste possible à l'utilisateur.

    Bien entendu la première solution envisagée était la moyenne, qui s'est vite avérée être imparfaite, car trop influencée par des anomalies de traitement, qui peuvent foutre en l'air le calcul. En gros il se peut qu'un traitement se bloque sur une machine, ce qui fait que l'on a des enregistrement aberrants en base. Imaginons ce cas :

    Range de temps 10s à 15s 15s à 20s 20s à 25s ... 150s à 155s
    Nombre de temps 1 5 20 ... 3

    En partant du principe qu'on supprime un peu de précision, et qu'on prenne la moitié des ranges comme valeur (12.5, 17.5, 22.5, 152.5), ca nous donne une moyenne de (12.5+5×17.5+20×22.5+152.5×3) / 29 = environ 34s.

    Nous ce qu'on voudrait, c'est qu'étant donné qu'on a beaucoup plus de traitements qui ont duré entre 20 et 25 secondes, on ait un temps estimé qui soit très proche de cette tranche, et que les 3 traitements ayant duré plus de 150 secondes aient peu d'impacts.


    J'ai pensé à une solution, mais je n'arrive pas à aller jusqu'au bout. L'idée serait de donner un poids "dynamique" à chacun des ranges, en prenant comme référence le range ayant le plus de valeurs, et en baissant le poids des autres ranges en fonction de la distance qui les séparent du range de référence. Par exemple (avec les temps de traitement rapprochés du multiple de 5 le plus proche) :

    Range arrondi 5 10 15 20 25 30 35 40 45 50 55 60
    Nombre 0 0 0 1 5 10 2 0 0 1 0 1
    Poids relatif au plus grand nombre 1 2 3 4 5 6 5 4 3 2 1 0

    Avec ca je pense pouvoir donner plus d'importance aux valeurs qui reviennent le plus souvent, et être moins influencé par les anomalies. Mais voila, je ne sais pas comment obtenir un résultat de cette affaire.

    Il y a aussi un défaut, c'est que je ne prend pas en compte les nombres dans les ranges hors du range de référence, qui fait forcément une estimation fausse. On pourrait alors décider d'utiliser les poids suivants :

    Range arrondi 5 10 15 20 25 30 35 40 45 50 55 60
    Nombre 0 0 0 1 5 10 2 0 0 1 0 1
    Poids relatif au plus grand nombre -3 -1 0 -2 -3 -3

    Mais dans ce cas, je ne tiens plus compte des distances, et du coup je peux donner un poids trop important aux valeurs éloignées...

    Bref, j'ai l'impression que je ne suis pas loin de quelque chose en cumulant tout ca, mais je manque de connaissances dans le domaine pour savoir comment l'appliquer. Pourriez vous m'apporter la lumière ? Merci d'avance.

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Janvier 2012
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2012
    Messages : 325
    Par défaut
    Le problème en pondérant arbitrairement comme ça, c'est que la valeur que tu calcules ne veut plus dire grand chose (pourquoi ces poids plutôt que d'autres?).

    Je resterais sur quelque chose de plus simple :
    -médiane ou autre quantile.
    -moyenne en excluant les valeurs extrêmes.
    -et/ou la table que tu as mis dans ce post (éventuellement sous forme d'histogramme).

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 19
    Par défaut
    La moyenne excluant les valeurs extrêmes peut effectivement fonctionner dans mon cas. Je vais aussi me renseigner sur le quantile, que je ne connais pas du tout.

    Merci.

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 231
    Par défaut
    Bonjour,

    Si tu veux faire des choses compliquées, ou par pure curiosité intellectuelle pour creuser sur ces poids dynamiques que tu as commencé à mettre en place, tu peux taper 'Estimateur bicarré Tukey' sur ton moteur de recherche.

    Sinon, pour les quantiles, à partir du moment où tu veux seulement un indicateur de type 'Moyenne' ou 'Moyenne corrigée', mais pas d'indicateur de dispersion, le seul quantile qui peut t'intéresser est la médiane

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une petite réponse à la va-vite, mais qui pourrait quand même servir.
    Si tu es en SQL, moi ce qui me vient à l'esprit c'est

    - Réaliser une Vue(view) Z de tes données, en excluant tous les enregistrements qui ont une val>x, avec x qui est une valeur que tu estimes être le seuil d'erreur. (Exemple : Soit x le Range de temps >150s = Seuil Franchi)

    - Ensuite, tu peux faire une requête de moyenne en SQL sur ta vue Z.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. optimisation de temps de traitement xml/xslt
    Par Erwy dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/05/2004, 16h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo