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. #21
    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
    A priori, cela va être difficile d'exploiter le schéma directeur d'un arbre de décision dans une forêt aléatoire. De plus, je ne suis pas sûr que cela ait un grand intérêt puisque cela revient finalement à exploiter un modèle simple dans un modèle qui lui est supérieur. Dans l'absolu, tu peux visualiser une forêt aléatoire mais elle va être difficile à interpréter. Après réflexion, il doit tout de même être possible de fusionner plusieurs arbres ensemble pour obtenir un nombre plus limité d'arbres de décision, mais équivalent à la forêt initiale. Cela dit, je ne pense que cela ait été fait pour le moment. Tu peux t'intéresser au problème, il est loin d'être inintéressant.

    Je me souviens que tu avais également utilisé les rotation forests dans Weka. Je ne connais pas bien cette méthode mais je crois me souvenir que les ensembles de variables sont disjoints d'un arbre à l'autre (contrairement aux random forests). Si c'est le cas, la visualisation risque d'être plus simple et surtout plus facilement interprétable. C'est peut-être une bonne piste. Il me semble que les rotation forests ont été faites par Kuncheva et al : il faudrait examiner l'article pour vérifier tout cela. En plus, du point de vue des performances, tu risques d'être gagnant.

  2. #22
    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,

    J'ai essayé tant bien que mal de représenter les forêts aléatoires sous forme d'arbre plus facile à interpréter. Hélas sans trop d'avancement. Breiman lui-même avoue que c'est assez inutile de le faire.

    J'en reviens donc à l'idée des Rotation Forest. Il s'agit d'un méta classifieur si je ne me trompe, qui est basé, dans sa version de base, sur des arbres de décisions J48 (élagués, pour éviter le sur-apprentissage).

    Il est possible d'obtenir via cette version basique des informations pertinentes. Du même type que celles déjà trouvées avec un arbre de décision "simple".

    Le pourcentage de réussite est un tout petit peu inférieur à celui obtenu par la combinaison de plusieurs forêts aléatoires.

    Je suis un peu sous la contrainte de temps pour pouvoir réellement investir ce problème plus profondément, alors je voudrai avoir vos avis sur les points suivants :

    - Est-ce que je pars sur les Rotation Forest, qui m'ont permis d'avoir des résultats plus interprétables de ce genre http://www.louizi.com/thesis/example.jpg et sachant que si je change le J48 par les forêts aléatoires ça me fait retourner au point de départ niveau interprétation? Je peux même chercher des améliorations côté algorithme d'extraction pour que la balance penche de leur côté

    - Avec la validation croisée, j'ai pu obtenir des résultats très probants avec un outil dénommé "Orange". Cet outil permet la visualisation des Random Forest. D'après ce que j'ai compris, c'est une synthèse globale, mais rien ne dit (forum très peu documenté) que ce n'est pas un arbre choisi au hasard.
    Ici : http://www.louizi.com/thesis/orange.jpg Une idée?

    - Si je pars sur la compression des modèles, 1- je n'ai pu trouver jusqu'à présent qu'un seul algorithme (non implémenté), ce qui réduit ma marge de manœuvre 2- Devrais-je justifier que la compression de modèle est bénéfique? Et donc partir sur plusieurs comparatifs sur des bases de test?

    - Enfin, supposons que dans ma forêt aléatoire il y a 20 arbres, si je trouve que 15 d'entre eux ont une structure quasi identique, cela suffirait-il pour prendre en compte CETTE structure ?


    Merci d'avance pour vos retours !


    EDIT : Orange n'affiche qu'un seul arbre (pas de synthèse ou de regroupement, c'est le dernier arbre généré)

  3. #23
    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
    J'ai pensé à changer les RandomForest dans le métaclassifieur par les RotationForest, et là le score obtenu est sans appel. Une précision accrue. Je vais donc m'orienter vers cet algorithme. Est-ce possible de m'aider à interpréter les résultats obtenus, que j'ai mis en forme ici http://www.louizi.com/thesis/results.rtf

    Merci!

  4. #24
    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
    J'aimerai avoir votre avis sur un point précis. Ces rotation forests sont composées d'arbres qui sont disjoints. Pour faire une représentation "globale", dois-je regrouper tous ces arbres ensemble ou bien faire les moyennes des arbres similaires (mêmes niveaux) et rajouter ceux qui sont différents?

    Je reste encore obsédé par cette représentation finale sous forme d'arbre de décision et le peu de travaux traitant des Rotation Forests soit montrent leur efficacité par rapport à d'autres classifieurs, soit mettent l'accent sur la technique de séparation entre les arbres.

    Toute aide serait vraiment la bienvenue! Merci!

  5. #25
    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,

    je ne connais pas suffisamment les rotation forests pour pouvoir t'aider beaucoup mais ce dont je suis sûr c'est que tu ne dois pas faire une moyenne des arbres, mais bien les regrouper, pour obtenir une visualisation finale. A noter que tu n'obtiendras pas à un arbre (sauf cas particulier).

  6. #26
    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
    Hello Aleph69,
    je vais dessiner tous les arbres côte à côte et voir ce que cela va donner. Peut-être que ce n'est pas aussi complexe que ça.

    ++

  7. #27
    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
    Non, ce n'est pas compliqué si tu ne cherches pas à automatiser. Le faire à la main pour un exemple particulier ne devrait pas poser trop de problèmes. Pour automatiser, il faut faire un peu de logique. Il existe en effet des algorithmes permettent de simplifier des séquences d'algèbre booléenne utilisant des quantificateurs élémentaires (non, et, ou, si, alors, ...). Je peux essayer de retrouver la source que j'avais utilisée à l'époque (un livre) et éventuellement le code Java que j'avais implémenté si ça t'intéresse. Si tu veux juste le faire pour tes données, je te déconseille de partir dans cette voie parce que c'est quand même assez compliqué. Pour le faire sur papier, tu devrais essayer d'oublier l'aspect graphique et d'écrire tes résultats sous forme de propositions "si condition alors classe" : ça devrait être plus simple pour la fusion.

  8. #28
    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
    Tout à fait d'accord. Le faire automatiquement n'aurait pas un si grand apport pour moi. Je préfère partir sur quelque chose à la main et ensuite, peut être, soustraire un modèle.

    Bref. Quand tu dis "classes", cela veut-il dire, par exemple :

    J'ai cela : 0.697SolidityR+0.626BoundingR+0.349PerimeterL <= 0.523414 (nez sain)

    Je le transforme en : (Si (0.697X+0.626Y+0.349Z) <=0.523414) ALORS A

    Et ensuite j'essaie d'appliquer des règles de fusion? (cela fait un bout de temps que je n'ai pas touché à la logique).

    Au final, le pattern obtenu doit tout de même être retesté pour voir si c'est vraiment efficace ou pas?

    Merci

  9. #29
    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
    Pour un arbre de décision, les règles se lisent plutôt sous la forme
    "(SolidityR<0.697 et BoundingR<0.626 et PerimeterL<0.349) => nez sain"
    il y a bien sûr plusieurs propositions de ce type par arbre et il faut parcourir tous les chemins possibles en partant de la racine pour les obtenir.

  10. #30
    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 beaucoup. Je pense que je vais partir sur les théorèmes de la logique floue. Y en a certainement un qui irait Je me rappelle de la théorie de l'évidence...

    Je vous tiens au courant.

  11. #31
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Si intéressé par un cours d'intro rapide sur la logique floue : http://franck-dernoncourt.developpez...logique-floue/

  12. #32
    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 Franck,
    merci pour ce cours bref et concis. Je te fais part de mes interrogations :

    - La logique floue c'est un ensemble d'input, d'output et de règles. Dans mon cas précis, quels seraient les inputs? les arbres eux-mêmes avec leurs ensembles de règles? Dans ce cas vais-je avoir 20 arbres avec chacun 13 sous catégories? (20 arbres au total dans mes rotation forest avec mes 13 variables "linguistiques" (périmètreGauche, surfaceGauche, périmètreDroite...)?

    - J'ai utilisé beaucoup d'outils pour modéliser mon problème. Matlab est à priori le plus simple à utiliser. Sauf que, il me propose à chaque fois de saisir un intervalle pour mes inputs ainsi qu'un "poids" à la règle. Je pense que ce poids sera toujours égal à un vu que je ne sais pas quelle importance accorder à telle ou telle règle. Je ne comprends pas ici comment je pourrais ajouter une valeur aux inputs (ex : 0.678Surface)

    - Aurais-tu des exemples d'outils / tutoriaux à essayer/suivre qui permettraient de facilement schématiser tout ce beau monde?

    - Penses-tu que la defuzzification est nécessaire pour aboutir au final à des valeurs concrètes pouvant être prises en compte par mon algorithme de classification?

    - Dernière question () : Est-ce logique d'avoir des valeurs négatives dans des arbres (sachant que dans mes données il n'y en a aucune)? Dans ce cas comment les représenter?

    (ex:
    -0.737BoundingR+0.567CompactnessR-0.367BoundingL <= -0.433142: soignable
    -0.737BoundingR+0.567CompactnessR-0.367BoundingL > -0.433142: sain
    )

    Voilà, fin de ma soirée Logique Floue. Merci pour votre attention

  13. #33
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Citation Envoyé par blackmisery Voir le message
    Bonsoir Franck,
    merci pour ce cours bref et concis. Je te fais part de mes interrogations :

    - La logique floue c'est un ensemble d'input, d'output et de règles. Dans mon cas précis, quels seraient les inputs? les arbres eux-mêmes avec leurs ensembles de règles? Dans ce cas vais-je avoir 20 arbres avec chacun 13 sous catégories? (20 arbres au total dans mes rotation forest avec mes 13 variables "linguistiques" (périmètreGauche, surfaceGauche, périmètreDroite...)?
    Désolé, semaine chargée, je ne pourrai pas lire le thread en entier avant ce week-end au moins :-/

    Citation Envoyé par blackmisery Voir le message
    - J'ai utilisé beaucoup d'outils pour modéliser mon problème. Matlab est à priori le plus simple à utiliser. Sauf que, il me propose à chaque fois de saisir un intervalle pour mes inputs ainsi qu'un "poids" à la règle. Je pense que ce poids sera toujours égal à un vu que je ne sais pas quelle importance accorder à telle ou telle règle. Je ne comprends pas ici comment je pourrais ajouter une valeur aux inputs (ex : 0.678Surface)

    - Aurais-tu des exemples d'outils / tutoriaux à essayer/suivre qui permettraient de facilement schématiser tout ce beau monde
    As-tu regardé la Fuzzy Logic Toolbox de MATLAB ?

    Citation Envoyé par blackmisery Voir le message
    - Penses-tu que la defuzzification est nécessaire pour aboutir au final à des valeurs concrètes pouvant être prises en compte par mon algorithme de classification?
    Je n'ai pas lu le problème mais je pense que oui, sans defuzzification on ne peut pas faire grand-chose en général.

  14. #34
    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
    Pas de soucis. Je continuerai à creuse de mon côté en attendant tes retours

  15. #35
    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,
    Dans la plupart des papiers concernant la logique floue, je n'ai pas trouvé la meilleure manière de représenter mon problème.
    Je le reformule ici, espérant avoir de vos lumières

    J'ai une vingtaine d'arbres de décisions, indépendant l'un de l'autre, donc pas de racine commune. Chaque arbre a ses propres règles, mais il n'est pas rare de trouver des similitudes entre ces arbres.

    Mon seul souci actuel est de pouvoir représenter des ensembles d'ensembles de règles, et non un seul ensemble de règles.

    Voilà, pour le reste j'ai normalement plusieurs pistes à exploiter.

    Merci!

  16. #36
    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
    Franck Dernoncourt tu m'as oublié?

  17. #37
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Désolé, succession de grosses journées, pas eu encore le temps de réfléchir au problème

  18. #38
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    En gros, pour être sûr que j'ai bien compris, l'idée est de comparer l'expressivité d'un ensemble d'arbres de décision par rapport à l'expressivité de la logique floue ?

    Egalement, dans ta vingtaine d'arbres de décisions, comment prends-tu la décision finale ? Vote majoritaire comme le suggérait Aleph69 ?

    (non, je n'ai pas pris 20 minutes pour répondre, le téléphone s'est excité entre-temps )

  19. #39
    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
    je te réponds un grand OUI à tes deux questions (entre tes deux coups de fil)

  20. #40
    Membre émérite
    Avatar de Franck Dernoncourt
    Homme Profil pro
    PhD student in AI @ MIT
    Inscrit en
    Avril 2010
    Messages
    894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PhD student in AI @ MIT
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 894
    Points : 2 464
    Points
    2 464
    Par défaut
    Fixes-tu les règles de décision a priori ou tu dois les apprendre ?

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