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

Algorithmes et structures de données Discussion :

Faire correspondre un ensemble de points à une somme de gaussiennes


Sujet :

Algorithmes et structures de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    je suis en stage pour mon projet de fin d'étude. Les données que je dois traiter sont des courbes dont l'équation est inconue et qui doivent être décomposer en une combinaison linéaire de gaussienne.

    J'ai tout d'abord essayé de coder moi-même la méthode d'expectation-maximization mais elle ne fonctionne pas.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut Faire correspondre un ensemble de points à une somme de gaussiennes
    L'algo EM sert à déterminer les paramètres d'une loi de probabilité connaissant des valeurs prises par une variable aléatoire. L'histogramme gris représenté en fond d'image n'est pas la "valeur" des données d'entrée mais leur distribution.

    L'algo EM ne sert pas à faire de l'ajustement de courbe (trouver les parametres d'une courbe en connaissant des "points de passages"). Pour cela, il faut plutot voir des algorithmes de curve fitting
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci pour cette précision sur la distribution des probabilités.
    L'erreur dans le graphique doit donc provenir du fait que j'ai affiché les valeurs obtenues et non la probabilité d'obtenir une certain valeur.

    Cependant, cette méthode est celle que je dois utiliser pour traiter ma courbe :
    "To estimate the numbers and characterics of the echoes in the waveforms, Gaussians distribution functions are fitted to the siganl. The waveforms are modelled as a sum of Gaussian distributions." Extrait d'un article scientifique

    Donc si j'ai bien compris, votre programme permet :
    - de générer un certain nombre de points dont les valeurs sont aléatoires
    - de créer l'histogramme de fréquence de ces valeurs
    - d'appliquer à cet histogramme l'algo EM afin de lui faire correspondre des gaussiennes.

    Dans quelle partie de votre code, l'histogramme est-il créé ?

    Cela me permettrait de modifier mes données initiales afin de les normaliser pour avoir des valeurs entre 0 et 1 et de n'utiliser que la partie EM de votre programme.

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Non. L'algo EM ne travaille pas sur les histogrammes. Il travaille directement sur les valeurs. C'est là toute sa force !

    Il n'y a donc pas besoin de calculer l'histogramme dans le code. Et heureusement, car une variable gaussienne peut prendre une infinité de valeurs (entre -infini et + infini), ce qui obligerait à créer un histogramme de taille infinie !

    J'ai dessiné l''histogramme ainsi que les gaussiennes uniquement pour "montrer" l'évolution de l'algorithme. Mais ce n'est pas ainsi que l'algo travaille. Il ne cherche pas à "ajuster" les gaussiennes sur l'histogramme.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Ok, l'histogramme n'est pas créé.
    J'ai transformé des données de bases pour les faire correspondre à un ensemble de variable aléatoire (correspondant à votre x= randon(nbvaleurs) ).
    Le programme fonctionne apparemment correctement.

    Il me reste un seul problème : le nombre de gaussienne déterminé n'est pas celui que je souhaiterai.
    Le fichier en PJ illustre ce problème. L'histogramme pourrait être assimilé à la courbe originelle en jaune. Le nombre de pics à détecter est de 2 et le nombre de gaussienne ajustées doit donc aussi être de 2. En pratique seule une seule gaussienne est véritablement déterminée (les autres ont un poids trop faible).

    Savez-vous s'il est possible d'introduire un seuil dans l'algorithme EM afin de résoudre mon problème ?
    Images attachées Images attachées  

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    L'algo EM est assez sensible aux conditions initiales (valeurs initiales des lois).

    Si vous savez au départ le nombre de gaussienne (2), le plus simple est de faire une première analyse rapide de l'histogramme pour déterminer les 2 plus hauts sommets, et de centrer les gaussiennes sur ces 2 sommets.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    j'avais déjà esasyé de centrer les gaussiennes sur les valeurs que je devais obtenir.
    Mais cela ne change rien sur le fait qu'une seule gaussienne est calculée.

    Je pense que mes pics sont trop rapprochés pour pouvoir être détectés comme 2 maximums de gaussiennes différents.
    Cela est-il possible ?

    J'ai essayé d'étaler mon histogramme sur un plus grand intervalle pour espacer les pics. Cela ne donne pas des résultats concluants. Y aurait-il un autre moyen de contourner ce problème ?

  8. #8
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par daurey68 Voir le message
    Y aurait-il un autre moyen de contourner ce problème ?
    Heu... arrêter de prendre l'algo EM pour faire ce genre de chose. Mais je l'ai déjà dit je crois.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Probleme pour faire une somme sous Excel
    Par Nicolas92 dans le forum Excel
    Réponses: 5
    Dernier message: 02/12/2005, 11h38
  2. Probleme pour faire une somme dans header ??
    Par snoop57 dans le forum Access
    Réponses: 7
    Dernier message: 01/12/2005, 13h40
  3. filtrer saisies et faire une somme globale
    Par mcellier dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/09/2005, 17h00
  4. faire une somme dans un état
    Par PAINCO dans le forum Access
    Réponses: 1
    Dernier message: 23/06/2005, 19h41
  5. Réponses: 3
    Dernier message: 12/06/2002, 19h03

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