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

MATLAB Discussion :

Programmer des chaines de Markov Cachées


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 34
    Points
    34
    Par défaut Programmer des chaines de Markov Cachées
    Bonjour, à tous.
    Je suis actuellement en stage.
    J'utilise une méthode statistique appelée SVM (séparateur à vaste marge) pour prédire des types de roches.
    J'ai deux jeux de données un pour l'apprentissage de mon modèle et l'autre pour tester mon modèle les résultats sur les données test ne sont pas suffisament satisfaisant et on me demande donc d'utiliser des chaînes de markov cachées sur mes données tests pour essayer d'améliorer tout ça. J'utilise le logiciel Matlab.
    Le seul problème c'est que je ne connaît absolument pas les chaînes de Markov Cachées et que je n'ai aucune idée de comment programmer tout ça avec matlab.
    J'aurais vraiment besoin que quelqu'un vienne à mon secour ....
    MERCI

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Bonjour,

    si je comprends bien tu as d'abords essayé les SVM en considérant un problème de classification supervisée ?. As-tu régler correctement les hyper-paramètres ?(à savoir C et \sigma, en général sur un 3ième ensemble de données ...).

    Si tu bascules sur les HMM tout d'abord, tu passes en classification non-supervisée, mais par compte tu vas imposer une forme paramétrique des densités (en général des Gausiennes multivariées ...). Prend la toolboxe de Kevin Murphy pour les HMM... (google est ton ami)


    Si les SVM n'ont pas bien fonctionné, plusieurs raisons (liste non-exhaustif)

    -Présence d'un bruit d'étiquette important
    -Classe(s) sous représentée en population dans ta base d'apprentissage
    -Grande dimension des données par rapport au nombre d'élément dans ta base. Dans cas, tu peux faire soit une Features selection ou une projection des données avant la classification.


    Sébastien




    Citation Envoyé par 8twilight8 Voir le message
    Bonjour, à tous.
    Je suis actuellement en stage.
    J'utilise une méthode statistique appelée SVM (séparateur à vaste marge) pour prédire des types de roches.
    J'ai deux jeux de données un pour l'apprentissage de mon modèle et l'autre pour tester mon modèle les résultats sur les données test ne sont pas suffisament satisfaisant et on me demande donc d'utiliser des chaînes de markov cachées sur mes données tests pour essayer d'améliorer tout ça. J'utilise le logiciel Matlab.
    Le seul problème c'est que je ne connaît absolument pas les chaînes de Markov Cachées et que je n'ai aucune idée de comment programmer tout ça avec matlab.
    J'aurais vraiment besoin que quelqu'un vienne à mon secour ....
    MERCI

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 34
    Points
    34
    Par défaut Salut
    Merci de répondre si vite.
    Je dois préciser que je fais des SVM en multi classe qui me serve à prédire des types de roches.

    J'ai utiliser tout d'abord utiliser plusieur noyau (RBF=Gaussien, Polynomial de degrès 1 et linéaire). J'ai testé pour les noyaux RBF les paramètres suivants:
    sigma = 1 C = 1
    sigma = 1 C = 10
    sigma = 1 C = 50
    sigma = 1 C = 100
    sigma = 1 C = 1000

    sigma = 10 C = 1
    sigma = 10 C = 10
    sigma = 10 C = 50
    sigma = 10 C = 100
    sigma = 10 C = 1000

    sigma = 50 C = 1
    sigma = 50 C = 10
    sigma = 50 C = 50
    sigma = 50 C = 100
    sigma = 50 C = 1000

    sigma = 100 C = 1
    sigma = 100 C = 10
    sigma = 100 C = 50
    sigma = 100 C = 100
    sigma = 100 C = 1000

    sigma = 1000 C = 1000

    Pou le noyau polynomial j'ai pris un degrès 1 et C = 1.
    Pour le noyau linéaire, j'ai pris C = 1 à 10.

    Une fois que j'ai fais tout ça j'ai pris les noyaux avec les paramètres qui donnaient les meilleurs taux de bien classés sur mes données tests et j'ai utilisé une validation croisée pour essayer d'obtimiser les paramètres.

    Mon tuteur de la fac qui m'a dit d'utiliser des chaînes de markov cachée une fois que j'ai fais ma SVM pour améliorer le taux de bien classé.

    Je suis larguée donc si tu pouvais m'aider tu as l'air de bien connaître.
    MERCI

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Hummm, attention à ta procédure de validation.

    1) Divise ta base en 2 sous-ensemble. L'un avec 80% des données (E1), l'autre (E2) avec 20% en faisant attention que dans chacun tes classes sont bien représentées.

    2) Sur ce premier sous-ensemble (E1), tu vas faire du K cross-validation (avec typiquement K= 5 ou 10), en le redivisant encore en 2 pour donner E11 et E12. Tu apprends le modèle SVM avec un jeu d'hyperparamètre fixé (C et sigma) sur E11 et tu calcules ton critère de perf sur E12. Tu sélectionnes (C et sigma) qui minimise ton critère sur E12.

    3) Tu réapprends le modèle sur E1 (en entier) mais avec les valeurs de C et sigma précédement trouvé puis tu calcules ton critère de perf sur E2...


    Concernant l'utilisation des HMM à la suite des SVM, je comprends pas trop l'interêt.


    Citation Envoyé par 8twilight8 Voir le message
    Merci de répondre si vite.
    Je dois préciser que je fais des SVM en multi classe qui me serve à prédire des types de roches.

    J'ai utiliser tout d'abord utiliser plusieur noyau (RBF=Gaussien, Polynomial de degrès 1 et linéaire). J'ai testé pour les noyaux RBF les paramètres suivants:
    sigma = 1 C = 1
    sigma = 1 C = 10
    sigma = 1 C = 50
    sigma = 1 C = 100
    sigma = 1 C = 1000

    sigma = 10 C = 1
    sigma = 10 C = 10
    sigma = 10 C = 50
    sigma = 10 C = 100
    sigma = 10 C = 1000

    sigma = 50 C = 1
    sigma = 50 C = 10
    sigma = 50 C = 50
    sigma = 50 C = 100
    sigma = 50 C = 1000

    sigma = 100 C = 1
    sigma = 100 C = 10
    sigma = 100 C = 50
    sigma = 100 C = 100
    sigma = 100 C = 1000

    sigma = 1000 C = 1000

    Pou le noyau polynomial j'ai pris un degrès 1 et C = 1.
    Pour le noyau linéaire, j'ai pris C = 1 à 10.

    Une fois que j'ai fais tout ça j'ai pris les noyaux avec les paramètres qui donnaient les meilleurs taux de bien classés sur mes données tests et j'ai utilisé une validation croisée pour essayer d'obtimiser les paramètres.

    Mon tuteur de la fac qui m'a dit d'utiliser des chaînes de markov cachée une fois que j'ai fais ma SVM pour améliorer le taux de bien classé.

    Je suis larguée donc si tu pouvais m'aider tu as l'air de bien connaître.
    MERCI

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 34
    Points
    34
    Par défaut Salut
    Je voudrais savoir si quelqu'un à un code concernant des chaîne de Markov cachée avec MATLAB pour que je puisse comprendre comment faire.
    Je ne connaît absolument pas les chaîne de Markov et suis assez nulle en MATLAB.
    J'ai vraiment besoin d'aide
    MERCI

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Pour les codes tous faits c'est là : FEX. En cherchant Markov Chain.
    Mais même ainsi sans comprendre ce que tu manipules je ne vois pas très bien comment tu peux y arriver.
    Ton tuteur ne peux pas au moins un peu t'aiguiller ou te faire utiliser des concepts/langages que tu maitrises ?

    Je ne comprends pas pourquoi on oblige les étudiants à utiliser des choses dont ils ne comprennent ni ne connaissent rien

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 34
    Points
    34
    Par défaut Salut
    Merci pour tes infos je vais regarder tout ça.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 34
    Points
    34
    Par défaut Salut
    J'ai regardé le site que l'on m'a précédemment conseillé et je dois avoué que sans comprendre ce que je manipule je ne comprends pas grand chose.
    Quelqu'un pourrait-il m'expliquer s'il vous plaît.
    MERCI

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 34
    Points
    34
    Par défaut RE
    J'ai regardé sur internet, j'ai vu qu'on pouvait utiliser la boîte à outil HMM pour faire des chaines de markov cachée. Si quelqu'un a déjà utilisé cette boîte à outils je serais ravie qu'il m'explique.
    MERCI

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Tu as définir 3 paramètres pour une HMM

    1) Les probabilités a priori de l'état à l'instant k = 0, i.e. Pr(x_{0}=i), i=1,...,N
    2) La matrice de probabilités de transition d'états Pr(x_{k+1}=j|\x_{k}=i), i,j=1,...,N
    3) Ta matrice de vraisemblance d'observation conditionnelle à l'état, i.e.
    L(z_k|x_k=i).

    Là ca va dépendre un peu de ton équation de mesure. Par exemple pour une loi mélange de Gaussienne

    z_k = sum(i=1,...,V)(w_i*N(M_i,R_i), alors

    L(z_k|x_k=i) = normcdf(M_i,R_i) ...

    Il faut alors connaitre les paramètres de moyennes M_I et les covariances R_I..


    Tu peux avoir une équation de mesures à valeur discrètre, dans ce cas, L(z_k|x_k=i) se déduit facilement également ...





    Citation Envoyé par 8twilight8 Voir le message
    J'ai regardé sur internet, j'ai vu qu'on pouvait utiliser la boîte à outil HMM pour faire des chaines de markov cachée. Si quelqu'un a déjà utilisé cette boîte à outils je serais ravie qu'il m'explique.
    MERCI

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 34
    Points
    34
    Par défaut
    Merci,
    tu n'aurais pas des programmes pour que je comprenne un peu.
    Je ne connais pas les Chaines de Markov cachées et je suis assez larguée avec tout ça.
    Je comprends les choses mais il font me les expliquer longtemps des fois.
    Je suis désolée de faire mon boulet.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Tu as la toolboxe de Kevin Murphy qui est pas mal ...


    Citation Envoyé par 8twilight8 Voir le message
    Merci,
    tu n'aurais pas des programmes pour que je comprenne un peu.
    Je ne connais pas les Chaines de Markov cachées et je suis assez larguée avec tout ça.
    Je comprends les choses mais il font me les expliquer longtemps des fois.
    Je suis désolée de faire mon boulet.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 34
    Points
    34
    Par défaut
    ok je vais regarder et avec cette boîte à outils t'as pas des prog que je vois comment ça fonctionne?

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 34
    Points
    34
    Par défaut
    Je n'arrive pas à trouver la boite à outils Kevin Murphy où on pas la télécharger?

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 34
    Points
    34
    Par défaut Salut
    J'ai vraiment que quelqu'un m'aide sur mon problème de programmation de chaine de markov cachée avec matlab.
    MERCI

Discussions similaires

  1. chaines de markov cachées
    Par cameleone31 dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 20/05/2012, 21h50
  2. [Débutant] chaines de markov cachées
    Par cameleone31 dans le forum MATLAB
    Réponses: 2
    Dernier message: 04/04/2011, 23h43
  3. [TP] Application utilisant modèle des Chaînes de Markov Cachées ?
    Par williamdunord dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 17/02/2008, 22h19
  4. chaine de markov cachés(HMM)
    Par nejla_gr dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 18/01/2008, 13h47

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