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

Mathématiques Discussion :

Distance entre deux ensembles de points


Sujet :

Mathématiques

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Distance entre deux ensembles de points
    Bonjour,

    je travaille actuellement sur un projet à la fac en fouille de données. L'objectif est de prédire la classe (positive ou négative) d'un certain nombre d'instances d'une base de validation, à partir d'instances d'une base d'apprentissage pour lesquelles la classe est connue.

    J'ai choisi d'utiliser un algorithme de type proches voisins pour faire ma prédiction. Je calcule donc la distance entre l'instance à classer et les instances de ma base d'apprentissage et je procède par un vote à la majorité parmi les plus proches voisins pour choisir la classe de l'instance à classer.

    Je crois comprendre qu'on appelle distance de Minkowski une distance telle que :


    J'ai essayé de calculer mes distances avec différentes valeurs de p mais les résultats ne changent pas beaucoup en fonction de p. J'aimerais donc tester d'autres distances.

    Ma question est donc la suivante : savez-vous s'il existe d'autres formules pour calculer la distance entre deux ensembles de valeurs ? (Les valeurs sont essentiellement des entiers)

    Merci de m'avoir lu !

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

    Citation Envoyé par sonyc91 Voir le message
    Je crois comprendre qu'on appelle distance de Minkowski une distance telle que :
    Cette distance est définie à partir de la norme de l'espace des suites l^p :
    ||x||_p=(|x1|^p+|x2|^p+...+|xn|^p)^{1/p}
    Cela pourra éventuellement t'aider de regarder les propriétés de cet espace normé sur google.

    Citation Envoyé par sonyc91 Voir le message
    Ma question est donc la suivante : savez-vous s'il existe d'autres formules pour calculer la distance entre deux ensembles de valeurs ? (Les valeurs sont essentiellement des entiers)
    La première chose est de savoir si tes entiers correspondent à des variables quantitatives ou qualitatives. Dans le dernier cas, utiliser des distances n'a pas vraiment de sens. On utilise plutôt des dissimilarités, dont les distances ne sont que des cas particuliers : une dissimilarité ne vérifie ni l'axiome de séparation, ni l'inégalité triangulaire. Elle est seulement symétrique, alternée et positive.

    La distance canonique entre deux ensembles est l'infinimum parmi les quantités dist(x,y) où x appartient au premier ensemble et y au second. Je te conseille de regarder ce qui se fait dans le cadre de la classification hiérarchique par agrégation (typiquement la classification ascendante hiérarchique). Tu trouveras plein d'exemples de dissimilarités et de distances entre individus et ensembles.

  3. #3
    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
    Tu as la famille des distances de type Mahalanobis.
    d(x,y)^2 = (x-y)^T M (x-y)

    La distance de Mahalanobis correspond à M = S^-1
    où S^-1 est l'inverse de la matrice de covariance des points de
    données.

    Avec M=I (l'identité) tu as la distance euclidienne habituelle.

    Il existe aussi des algorithmes qui apprennent explicitement la matrice M de sorte à regrouper au mieux les classes. Tu as par exemple
    "Large Margin Nearest Neighbors" ou "Pairwise constrained component analysis".

  4. #4
    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
    Sinon tu peux construire des mesures de distances basées sur des noyaux (semi-définis positfs) autre que le noyau linéaire.

    Pour un noyau SDP k(x,y), la distance correspondante est:

    d(x,y)^2 = k(x,x) + k(y,y) - 2*k(x,y)

    Dans le cas linéaire, le noyau est simplement k(x,y) = x^T y est la distance
    correspondante est simplement la distance euclidienne.

    Sinon pour des histogrammes du peux utiliser le noyau chi^2:
    k(x,y) = \sum_i 2*x_i*y_i / (x_i + y_i)
    ce qui donne la distance
    d(x,y)^2 = \sum_i (x_i - y_i)^2/(x_i + y_i)
    (attention au cas d(0,0))


    Un noyau très utiles car plus "local" est le noyaux gaussien

    k(x,y) = exp( - alpha * d(x,y)^2 )

    qui utilise typiquement la distance d(x,y) euclidienne où tout autre mesure de distance plus adaptée comme la mesure de distance issue du noyau chi^2 dans le cas d'histogrammes.

    Faire attention a normaliser correctement les données si besoins (norme l1 pour les histogrammes, par exemple)

    Sinon il existe d'autres méthodes de classification que les plus proches voisins, comme les machines à vecteurs supports (SVM), qui utilisent soit la distance euclidienne soit différents noyaux.

  5. #5
    Membre habitué Avatar de M.Max
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 90
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par sonyc91 Voir le message
    Ma question est donc la suivante : savez-vous s'il existe d'autres formules pour calculer la distance entre deux ensembles de valeurs ? (Les valeurs sont essentiellement des entiers)
    Fais des recherches de type "Shape matching", la littérature est pléthorique.

    D'ailleurs cet article liste qlq formules de calcul de distance, cela pourrait t'intéresser : Shape Matching: Similarity Measures and Algorithms,Remco C. Veltkamp

Discussions similaires

  1. Distance entre deux groupes de points pour faire des binomes
    Par ImagingAllthe dans le forum MATLAB
    Réponses: 3
    Dernier message: 21/09/2012, 17h25
  2. Calcul de distance entre deux points
    Par atlantis123 dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 02/06/2011, 00h36
  3. calcul de distance entre deux points.
    Par jamsgoodon dans le forum Bioinformatique
    Réponses: 0
    Dernier message: 31/05/2010, 15h06
  4. [Base de données Spatial] Distance entre deux points
    Par Pumpkins dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/11/2006, 12h18
  5. Calcul de distance entre deux points en WGS84
    Par marieR dans le forum Langage
    Réponses: 5
    Dernier message: 03/08/2006, 17h07

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