Méthode statistique de séparation et/ou de classification
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Méthode statistique de séparation et/ou de classification



  1. #1
    invite7473b9f4

    Méthode statistique de séparation et/ou de classification


    ------

    Bien le bonjour,

    Avant de poster, j'ai cherché sur le forum si ma question avait été posée, mais je n'ai rien trouvé.

    Voici mon problème :

    Je dispose d'une matrice de données composée de N mesures de 2 valeurs, F et A. Lorsqu'on représente A en fonction de F, voici ce que l'on obtient :


    Je sais que dans ce nuage de points se cachent 2 tendances qui suivent une loi du type
    Je sais également que les coefficients et sont positifs.
    Je sais aussi que les mesures sont bruitées. On peut faire l'hypothèse que le bruit est Gaussien.


    Je souhaiterais pouvoir extraire les points qui suivent ces 2 tendances. L'idée est au moins de séparer le nuage en 2 ; dans l'idéal en 4, si l'on sépare aussi le bruit. Pour cela, je pense utiliser une méthode statistique de classification.

    J'ai déjà testé l'analyse en cluster, mais ce n'est pas satisfaisant. D'autant qu'on ne spécifie pas la tendance que l'on souhaite suivre. Comme je suis une bille en stats, je m'en remets à vous, afin que vous puissiez m'indiquer une voie à suivre.

    Merci !

    -----

  2. #2
    invitea29b3af3

    Re : Méthode statistique de séparation et/ou de classification

    Salut

    Tu peux reposter ton image ? (la mettre en pièce jointe)

  3. #3
    invite7473b9f4

    Re : Méthode statistique de séparation et/ou de classification

    Oups, désolé pour l'image. La voici :

    http://www.ecole.ensicaen.fr/~jperon/docs/LoiAmo1.png

    J'ai simplifié le cas. Ce sont des points obtenus par synthèse, dont je connais les paramètres. Donc, pas de bruit ici.
    Les courbes peuvent se croiser, ou pas.

    Merci à vous.

  4. #4
    invitea29b3af3

    Re : Méthode statistique de séparation et/ou de classification

    Je remets l'image en pièce jointe par sécurité, car les modérateurs risque de supprimer ton lien.

    Question : j'espère que tu n'espères pas résoudre ça analytiquement (à la main, j'entends) ?

    Bon, je pars du principe que non. Admettons que tu fasses ça sous Matlab. Personnellement je ferais comme ça:
    J'utiliserais l'algorithme RANSAC (http://fr.wikipedia.org/wiki/RANSAC). Si tu sais pas comment ça marche, en gros: l'algo par du principe que tu as des points. Certains collent à un modèle (les "inliers"), les autres sont du bruit (les "outliers"). Vu que toi tu as 2 tendances, tu fais un RANSAC pour la 1ère, puis tu enlèves les inliers que tu as trouvés et tu refais un RANSAC pour la 2e. Comment on trouve les inliers: par exemple tu as 100 points au total. Tu en choisis 20 au hasard et tu essaie de leur coller un modèle A(F) comme t'as décrit (y'a des fonction dans MATLAB pour ça, par exemple lsqcurvefit). Le modèle est calculé seulement pour ces 20 points. Puis tu "supposes" que ce modèle est le bon (les bons paramètres alpha_G et alpha_R) et tu calcules l'erreur entre TOUS les points (les 100) et le modèle. Et tu gardes provisoirement ce modèle en copie comme étant ton "meilleur modèle pour l'instant". Puis tu recommences: tu reprends 20 points au hasard (complètement au hasard, même si certains points ont déjà été pris la 1e fois) et tu colle un modèle dessus (juste sur ces 20 là). Puis tu calcules l'erreur entre le modèle et TOUS les points. Si l'erreur est plus petite que celle d'avant, alors ce modèle devient ton "meilleur modèle pour l'instant", sinon c'est toujours l'autre. Et tu recommences, tu prends 20 points au hasard, etc... En faisant ça un très grand nombre de fois, il y aura certainement une fois où parmi tes 20 points se trouveront une grande majorité d'inliers de ta première tendance, donc le modèle sera bien estimé et quand tu calculera l'erreur, elle sera minimale. Si t'as pas tout compris, lis l'article de Wikipédia, en particuliers le pseudocode, c'est très clair.
    Et si t'as pas envie de tout écrire sous Matlab y'a un type qui a implémenté RANSAC pour Matlab : http://www.csse.uwa.edu.au/~pk/research/matlabfns/ y'a un fichier ransac.m sous "Model Fitting and Robust Estimation". T'as juste à mettre les bons paramètres et le truc te sors le modèle (c'est à dire les paramètres alpha, la liste des points qui collent ce modèle (les inliers) et la liste des points qui le collent pas (les outliers)).
    Images attachées Images attachées  

  5. A voir en vidéo sur Futura
  6. #5
    invite7473b9f4

    Re : Méthode statistique de séparation et/ou de classification

    Merci pour ce conseil. T'inquiètes pas, j'ai 2 outils costauds à disposition : Matlab et SPSS (Et un calculateur si besoin )

    J'ai testé la méthode (depuis une toolbox matlab, car le programme que tu m'as linké, j'ai pas réussi à le faire marcher).
    Bilan : Pour un cas d'école, ou la/les tendances se démarquent du reste des points, ça fonctionne. Quand la tendance n'est pas visible, et qu'on a plutôt un genre de nuage de points, c'est pas forcément génial.


    J'ai 2 nouvelles pistes : soit un filtrage de Wiener généralisé (à mon avis, faut quand même avoir une tendance marquée aussi pour que ça marche), soit une analyse statistique par clustering à noyaux (Je ne sais pas encore ce que c'est, mais parait que ça peux marcher).


    Merci encore. Au passage, j'ai trouvé ton explication on-ne-peut plus claire.

  7. #6
    invitea29b3af3

    Re : Méthode statistique de séparation et/ou de classification

    C'est clair que si y'a énormément de bruit (chaque tendance étant en plus du bruit pour l'autre) RANSAC risque de foiré...

    T'arrives à mettre en pièce jointe tes données, que je vois à quoi ça ressemble. Mais je te dis honnêtement n'attends pas trop de moi, je suis de loin pas expert Le clustering à noyaux se dit "kernel clustering" en anglais (au cas où, si tu veux chercher de la doc), mais j'en sais pas vraiment davantage.

  8. #7
    invite7473b9f4

    Re : Méthode statistique de séparation et/ou de classification

    Héhé, tu m'as déjà bien aidé! Je te mets en pièce jointe 2 cas, un "sympa" ou on pourrait presque distinguer les tendances à l’œil, et un "pas sympa"..

    On va dire que l'ensemble de mes données varient entre ces 2 cas, et sont plus souvent proches du cas "pas sympa"...

    Je ne peux pas vraiment améliorer les données. Un prétraitement à déjà permis de diviser par 2 le nombre de points, en éliminant une grande partie du bruit.
    Images attachées Images attachées

  9. #8
    invitea29b3af3

    Re : Méthode statistique de séparation et/ou de classification

    Ah ok ouais quand même

    Bon.... bonne chance
    Non plus sérieusement désolé, là je peux pas t'aider plus.

  10. #9
    invite7473b9f4

    Re : Méthode statistique de séparation et/ou de classification

    Héhé

    Merci quand même
    Je te tiens au courant si jamais le clustering par noyaux fonctionne (J'connais quelqu'un qui peut me briefer dessus).

  11. #10
    invitea29b3af3

    Re : Méthode statistique de séparation et/ou de classification

    Ok cool

  12. #11
    invite7473b9f4

    Re : Méthode statistique de séparation et/ou de classification

    Au passage, si jamais quelqu'un rencontre le même genre de problème que moi :

    le filtrage de Wiener ne peut pas fonctionner ici. Il faut un échantillonnage constant pour l'appliquer. Si vous avez confiance, vous pouvez tenter d'interpoler vos données, et les rééchantillonner par la suite. Dans mon cas, vu la tronche des données, cela introduirait d'avantage de bruit.

  13. #12
    invite7473b9f4

    Re : Méthode statistique de séparation et/ou de classification

    J'avais promis de répondre il y a quelques temps... Mieux vaut tard que jamais. Bon, concernant le Kernel clustering :

    L'idée c'est d'appliquer une transformation non linéaire par une "fonction noyau" (ou Kernel function) sur les vecteurs de base d'un espace. On obtient alors une nouvelle représentation de nos points dans un nouvel espace. Ce qu'on peut espérer, c'est qu'un choix optimal de kernel function puisse déformer suffisamment l'espace pour séparer nos données...

    En théorie, c'est chouette. En pratique, ça peut s'avérer extrêmement efficace. Dans mon cas, je n'ai pas pu conclure. Le fait est qu'il faut réaliser une étude très complète afin de déterminer précisément quel noyau utiliser. De plus, les fonctions noyaux ne sont pas en nombre fini : on peut les créer soi-même. Pour information, voici un listing des fonctions courantes :
    http://crsouza.blogspot.com/2010/03/...-learning.html

    En plus du choix de la fonction noyau, il faut choisir une norme. Dans mon cas, j'ai choisi la norme Euclidienne, par défaut. Encore une fois, ce choix demande une étude précise, que je n'ai pas le temps de réaliser.

    Je vous joins un exemple de ce que l'on peut obtenir.
    - Le premier graphe représente mes données d'origine sur un exemple de synthèse. Je souhaite complètement séparer les points rouges et les bleus.
    - Le second graphe est obtenu par Clustering classique sur ces données. Un cluster par couleur : c'est nul.
    - Le troisième est le résultat du kernel clustering. Les points sont représenté dans le nouvel espace. On en conclut rien.


    Bon courage à ceux qui liront ceci et qui pensent utiliser ces techniques. C'est surement très efficace, mais faut avoir le temps et la motivation de faire une étude précise.
    Images attachées Images attachées

  14. #13
    invitea29b3af3

    Re : Méthode statistique de séparation et/ou de classification

    Ok, ben en tout cas merci pour les explications. Est-ce que t'aurais pas meilleur temps d'essayer une kernel exponentielle ? Ou plutôt logarithmique ? Puisque t'as une loi A(F) qui est exponentielle... enfin je sais pas, je dis ça un peu comme ça au bol

  15. #14
    invite7473b9f4

    Re : Méthode statistique de séparation et/ou de classification

    Oui oui, j'y ai pensé, et j'ai testé. Hélas, ça ne donne pas de meilleurs résultats...
    C'est un problème complexe... Du coup, j'essaye une nouvelle approche (Je passe les explications, car ça va être long).

    En tout cas, merci fiatlux

Discussions similaires

  1. méthode de séparation en cryogénie
    Par invitec16304ec dans le forum Chimie
    Réponses: 2
    Dernier message: 18/03/2011, 16h28
  2. Méthode de separation de variables
    Par invitec14ef5d7 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 13/11/2009, 09h45
  3. Méthode de séparation
    Par invite38cbfd52 dans le forum Chimie
    Réponses: 0
    Dernier message: 24/01/2009, 14h47
  4. Changement d'état ou méthode de séparation ?
    Par invite14ace06c dans le forum Chimie
    Réponses: 3
    Dernier message: 20/10/2008, 12h29
  5. Classification de Linné = méthode scientifique??
    Par invite311be255 dans le forum TPE / TIPE et autres travaux
    Réponses: 8
    Dernier message: 16/11/2007, 21h20