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

Méthodes prédictives Discussion :

Choix de classifieur / méthode


Sujet :

Méthodes prédictives

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut Choix de classifieur / méthode
    Bonsoir à tous,

    j'ai des images radios de plusieurs patients, prises des deux côtés (gauche et droite) : soit donc 2 images par patient.
    Jusqu'au là, j'ai travaillé uniquement sur les images de droite pour déterminer la classe d'appartenance du nez du patient (3 classes en tout : A,B et C).

    Je veux enrichir ce travail en incluant maintenant les images de gauche. Je voudrai savoir s'il est possible de traiter ce problème via un classifieur précis (exemple les forêts aléatoires) ou une certaine méthode / approche pour avoir en résultat un ensemble de conclusion du type :

    - si à partir de l'image de droite l'appartenance est confirmée à plus de XX% à la classe A, alors passer à l'image de gauche dans le traitement.

    - si à partir de l'image de gauche l'appartenance est confirmée à plus de YY% à la classe B, arrêter le programme.

    En gros, les résultats d'un JPDA filter, mais d'une manière automatisée (je n'ai pas à introduire les hypothèses moi-même puisque je ne les connais pas).

    Je suis preneur pour toute suggestion

    Merci !

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Suis-je bien sur le bon Forum ou bien dois-je déplacer le sujet sur "Traitement d'images" ?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonjour,

    il suffit de fusionner les variables de l'image A et de l'image B pour obtenir une seule et même base de données. Pour avoir le genre de règle que tu souhaites obtenir, les arbres de décision sont particulièrement adaptés.

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    les forêts aléatoires sont une des méthodes les plus performantes à ce jour, mais il ne faut pas oublier les réseaux de neurones et les SVM.
    Je te conseille d'essayer plusieurs classifieurs car il n'y a jamais un classifieur universel.
    Tu as toute une bibliothèque disponible dans weka pour faire des tests.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Bonsoir à vous deux,

    merci pour les réponses. Juste une question : Fusionner c'est au lieu d'avoir des vecteurs représentatifs à 6 variables pour chaque image j'en obtiens un à 12 pour les deux images en même temps?
    Si je dois appliquer un algo sur ce vecteur, les déductions à faire seront elles fonction des résultats (reconnaissance des classes) ou des variables utilisées?

    Je ne vois pas trop comment lier (ou corréler si je peux dire) les résultats suivant le type de l'image?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonjour,

    l'arbre de décision te dira si ce que tu souhaites faire est pertinent. Par exemple, il va te dire, si la 1ere variable est supérieure à 0.9 et si la dernière variable est inférieure à 0.5 alors l'individu concerné est de classe A. Dans ton étude, cela revient à dire que si avec la première variable dans l'image 1 est supérieure à 0.9 et qu'en regardant la seconde image on constate que sa 6e variable est inférieure à 0.5, alors l'individu est de classe A (nez cassé non soignable par ex).

    ToTo13 a raison d'affirmer que les forêts aléatoires sont plus performantes que les arbres de décision basiques (les forêts aléatoires sont des forêts d'arbres de décision particuliers). Cependant, pour voir dans un premier temps si le fait de passer d'une image à l'autre à un sens pour chaque classe, les arbres de décision sont plutôt sympas car faciles à interpréter.

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Merci de ton retour Aleph69.

    Si je résume par rapport à ce que j'ai comme données :

    - 3 classes de nez : sain, soignable, non soignable.
    - 6 variables caractéristiques par nez.
    - 2 images par nez.
    - 125 échantillons.

    Cela me donnerait :
    - 250 individus ayant chacun 6 variables caractéristiques sur lesquels appliquer l'arbre de décision ou les forêts aléatoires?
    - 125 individus mais chacun ayant 12 variables caractéristiques?
    - Un classement des 250 images par classe, ensuite classification suivant un arbre de décision?
    - Appliquer l'arbre de décision sur un couple d'images et ainsi de suite jusqu'à arriver à 125 échantillons?

    C'est un peu confus je sais, mais j'essaie de cerner le problème du mieux que je peux!

  8. #8
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Lorsque tu dis avoir 125 échantillons, je suppose que tu veux dire 125 images de nez et donc parmi ceux-là, il y en a des trois classes.
    Est ce bien cela ?

    Faire un apprentissage sur un échantillon contenant les trois classes est bien, mais il est souvent préférable de faire des "One Class Classifiers". C'est-à-dire que tu crées de classement par classe, afin qu'il soit plus spécifique. Donc pour chaque classe, tu l'isoles et tu mélanges les deux autres en mettant la même étiquette afin de revenir à un modèle à deux classes. Cela facilite la détermination de la frontière de décision.


    Pour ce qui est de tes interrogations, tu as deux images par nez, donc il s'agit du même individu. Je te conseilles donc de mettre les deux fois six caractéristiques dans un même vecteur caractéristique (ce qui en ferait 12). Donc ton échantillon contiendrait 125 individus et non pas 2x125.

    A moins que les vues bien que différentes, apportent des informations identiques, auquel cas tu pourrais considérer chaque image comme un individu différent et ainsi doubler la taille de ton échantillon.
    Mais en général les vues différentes apportent des informations complémentaires.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Bonsoir Toto13,
    il s'agit effectivement de 125 images. Je suis déjà arrivé à faire du "One Against All" avec les forêts aléatoires et ça m'a donné un taux de reconnaissance de l'ordre de 94% pour les 3 classes.

    Je doute que les informations soient les mêmes pour les 2 vues, étant donné que des fois la fracture est visible d'un côté et non de l'autre.

    Et d'ailleurs vu que le nombre d'échantillons est relativement faible, je me limite à la validation croisée stratifiée.

    Si j'ai bien compris, tu me conseilles de mettre les 12 variables pour chaque individu et ensuite vérifier si les taux d'appartenance aux classes sont susceptibles d'être améliorés, pour déduire des relations de causes à effets entre les deux vues?

  10. #10
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    oui, mets tout ensemble.

    Pour la validation, vu le nombre d'individus, il faut un Leave One Out.

    Et généralement c'est bien/meilleur de ramener les problèmes de classement sur des problèmes binaires.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    De retour après quelques jours où j'ai du chercher les images radios de gauche correspondantes à celles que j'ai en ma possession.

    J'ai donc appliqué mon algorithme de classification optimal (d'après mes essais), qui consistaient à avoir un multiclassifieur à base de forêts aléatoires (le must de la précision par rapport aux autres techniques), tout en suivant la stratégie One Against All.

    Je suis très heureux des résultats obtenus (précision grandement améliorée). J'ai mis les anciens et les nouveaux ici : http://www.louizi.com/thesis/compare.html

    Pourriez-vous m'aider à voir quels pourraient être les enseignements à tirer à partir de là (relation vue de droite / vue de gauche)? Que pourrais-je faire de plus pour enrichir ce travail?

    D'avance merci!

  12. #12
    Membre éclairé
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Points : 752
    Points
    752
    Par défaut
    Moi j'essaierais aussi de retourner toutes les vues de gauche pour en faire des vues de droite.

    A l'entrainement utiliser toutes les vues comme si elles étaient indépendantes.
    Au test classifier les deux vues indépendamment et prendre la classification la plus pessimiste.

    Ou alors n'utiliser pour l'entrainement que les images qui permettent de réaliser le diagnostique et garder l'approche précédente pour la classification finale. Cela permettrait de ne pas donner au système des données "confuses" et de gérer implicitement le cas ou la fracture n'est visible que d'un côté.

    Et puis si tes données ne sont pas équilibrées (pas le même nombre d'exemple pour chaque classe), penser à pondérer le score d'"accuracy".

  13. #13
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Bonsoir Alexis.M,
    Si je prends un exemple concret : J'ai un nez de classe "soignable".
    Ce nez est reconnu soignable après l'algorithme d'extraction d'après la vue de droite, mais sain après l'algorithme d'extraction sur la vue de gauche.
    Ta dernière remarque veut-elle dire que je dois affecter un coefficient quelque part (je ne sais pas où exactement, désolé !) à la vue de droite pour que l'algorithme de classification ne prenne pas en compte la vue de gauche? Auquel cas comment se fera cette "déduction"?

    Mon souci est que mon nombre d'échantillons n'est pas important (127). Du coup je ne peux pas les subdiviser en deux parties : entraînement et test. Je pars toujours sur la validation croisée.

    Des pistes?

  14. #14
    Membre éclairé
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Points : 752
    Points
    752
    Par défaut
    imagine que je mette les valeurs : sain = 2, soignable = 1, pas soignable = 0.
    Le resultat final serait min(classif(droite),classif(gauche)). Si tu fais une validation croisée la séparation entrainement/test est faite pour chaque 'fold'.

    Par contre par expérience méfie toi des résultats que tu obtiens avec un nombre limité d'échantillon. Je ne connais pas exactement la méthode que tu as utilisée mais en apprentissage le sur-ajustement est un problème fréquent et il faut un protocole soigneux pour évaluer correctement les performances.

  15. #15
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Les performances en généralisation semblent être améliorées en ajoutant l'autre image. Cela veut dire que tu as ajouté de l'information pertinente à ton problème. Il faudrait tester l'autre image toute seule pour voir ce qu'il se passe.

    Sinon, je réitère ma suggestion de départ : utiliser un arbre de décision pour avoir une visualisation graphique plus facilement interprétable.

  16. #16
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Bonsoir,
    Alexis.M aurais-tu un exemple de ces protocoles d'évaluation?

    Aleph69, j'ai mis à jour les résultats en rajoutant les images de gauche seules :
    http://www.louizi.com/thesis/compare.html

    J'ai utilisé l'arbre de décision J48 de Weka, et j'ai mis les résultats graphiques obtenus ici :
    http://www.louizi.com/thesis/arbres.html

    J'espère que cela va aider!

  17. #17
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonsoir,

    en utilisant seulement l'image de gauche/droite, les performances sont dégradées. Je t'ai demandé de vérifier car si tu avais eu de meilleures performances en utilisant seulement l'image de gauche, alors ton étude des deux images n'avait pas de sens (toute l'information aurait été contenue dans celle de gauche).

    L'arbre de décision te fournit une démarche pour tes deux images. Tu commences par regarder la variable bounding dans l'image de droite (boundingR). Si elle est inférieure à 306, tu t'arrêtes : il s'agit d'un nez sain. Sinon, tu regardes extent dans l'image de gauche (extentL). Si c'est inférieur ou égal à 1.144505, le nez est soignable. Sinon, tu regardes compactness, toutjours dans l'image de gauche (compactnessL). Si c'est strictement supérieur à 0.005865, le nez n'est pas soignable. Sinon, tu repasses à l'image de droite et tu examines le périmètre (perimeterR) pour vérifier si le nez est soignable ou non soignable.

    Chose remarquable : l'examen de l'image de droite suffit à déterminer si le nez est sain ou pas.

    Si j'ai bien compris ta question initiale, c'est exactement ce genre de conclusions que tu recherches.

  18. #18
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    C'est exactement cela!

    Une question toute bête enfin : Si j'utilise l'arbre de décision J48 pour visualiser ces informations, y-a-t-il un rapport avec la méthode que j'ai appliquée (Multiclassifieur avec plusieurs forêts aléatoires) ? Parce que niveau performances, celles du J48 appliqué seul sont très médiocres. Cela n'a absolument rien à voir (et cela peut donc être pris en compte) ou bien je dois visualiser un graphique à partir des résultats du multiclassifieur?

    Encore merci!

  19. #19
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Il y a effectivement un lien entre les arbres de décision et les forêts aléatoires. Pour faire simple, une forêt aléatoire est une forêt d'arbres de décision mais chaque arbre n'a appris que sur un échantillon bootstrap des observations (tirage de n parmi n avec remise) et en ne tenant compte que d'un échantillon aléatoire de variables (par ex. racine(p) ou log(p), p étant le nombre de variables).

    Après apprentissage, la forêt aléatoire classe une observation quelconque en la montrant à chacun de ses arbres. Chaque arbre attribue une classe à l'observation. Ensuite, la "forêt" regarde quelle classe est apparue le plus de fois et on l'attribue à l'observation (vote majoritaire). C'est le principe du bagging.

    L'idée est de profiter de l'instabilité des arbres de décision (quand on modifie les observations/variables, les performances sont fortement modifiées), pour créer de la diversité dans l'ensemble formé par la forêt. Il faudrait que tu lises l'article "Bagging predictors" de Leo Breiman et que tu te renseignes sur la notion de diversité en classification ensembliste (compromis/dilemme biais-variance-covariance) pour voir vraiment de quoi il retourne.

    En ce qui me concerne, je ne connais pas de méthode visuelle pour les forêts aléatoires. Tu pourrais visualiser la forêt, c'est-à-dire chacun des arbres individuellement, mais vu que les observations et les variables ne sont pas les mêmes d'un arbre à l'autre, il est difficile d'en tirer des conclusions. A mon avis, c'est même plutôt risqué et source de beaucoup d'erreurs et de non-sens.

    C'est la raison pour laquelle Toto13 ne semblait pas trop chaud pour utiliser un arbre de décision seul plutôt qu'une forêt aléatoire : c'est en général beaucoup moins performant. Mais, au moins, cela t'as permis d'avoir un protocole pour passer d'une image à l'autre.

    Il existe peut-être des méthodes de visualisation pour les forêts aléatoires qui seraient adaptées à ton problème, c'est juste que je ne les connais pas.

  20. #20
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 164
    Points : 43
    Points
    43
    Par défaut
    Effectivement, une recherche sur les forums de Weka affirme que ce n'est pas possible de visualiser beaucoup d'arbres en même temps.
    Ce que je veux savoir, c'est est-ce que le schéma directeur obtenu (via l'arbre de décision) peut m'être utile en appliquant les pourcentages sur mon méta classifieur? Dois-je faire des expérimentations pour déterminer les "bons" pourcentages?

    EDIT : Il n'est possible de visualiser sous Weka que les erreurs du classifieurs
    www.louizi.com/thesis/wekavisualize.jpg Je vais essayer de faire des recherches en ce sens.

Discussions similaires

  1. choix de la méthode de resolution de flot optique
    Par assoumagh dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 26/10/2007, 19h26
  2. Polymorphisme - choix de la méthode
    Par Roy Miro dans le forum Langage
    Réponses: 5
    Dernier message: 23/06/2007, 17h18
  3. Mémoriser du texte | Choix de la méthode
    Par madnux dans le forum C++Builder
    Réponses: 9
    Dernier message: 16/05/2007, 14h31
  4. [Compilation] Choix d'une méthode d'analyse
    Par GrandFather dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 10/10/2005, 08h34
  5. Choix de la méthode d'update la plus performante
    Par nazap dans le forum Oracle
    Réponses: 3
    Dernier message: 01/02/2005, 13h24

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