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

Algorithmes et structures de données Discussion :

[Algo] Les K voisins les plus proches


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Par défaut [Algo] Les K voisins les plus proches
    Salut a tous !

    Je rencontre un problème : je souhaite classer un texte dans un classe A ou B. Je dispose de deux tableaux de X cases qui contiennent les distances du texte que je veux classer avec des textes témoins de deux classes A et B. Pour déterminer la classe du texte, j'applique l'algo des K plus proches voisins. Cependant, par exemple si K vaut 11, qu'on trouve 6 voisins de classe A et 5 de classe B, naïvement on classe le texte dans la classe A. Seulement, il se peut que les 5 voisins de la classe B soient bien plus proches que les 6 de l'autre classe. Mon problème : il me faudrait pondérer ces résultats pour prendre en compte ça ! Et je sais pas du tout comment m'y prendre, vous auriez une idée svp ? J'ai bien regardé sur le net, et effectivement chaque fois qu'il est question de K voisins, y'a une histoire de pondération, mais quelle est exactement l'opération à appliquer??

    J'espère avoir été clair !

    Merci pour vos (nombreuses, j'espère )futures réponses !

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    heu...

    Il suffit de ponderer chaque voisin par une fonction inverse de la distance: plus la distance au voisin est faible, plus le poids est fort. non ?

    par exemple: Poid(voisin) = 1 / ( 1 + distance(voisin) )
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre éclairé Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Par défaut
    Ok merci pour ta réponse, et dans le cas ou j'ai le contraire c'est a dire qu'a la place d'avoir les distances (c'est a dire plus la distance est grande moins les fichiers se ressemblent) j'ai un contenu commun en information (plus ce contenu est grand, plus les fichiers se ressemblent) il me suffit de faire ça :

    1/(1+ContenuCommun) et la, plus le poinds va être faible, plus les 2 fichiers se ressemblent ???

    PS : je suis une quiche a ce niveau

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    (Ca ne donen pas envie, ce manque de réflexion...)

    1/(1+x) augmente quand x tend vers 0, donc plus les points sont proches, plus le poids est fort (cours de terminale...)

  5. #5
    Membre éclairé Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Par défaut
    Oui non j'entend bien, mais dans le cas ou je n'ai pas une distance mais l'inverse d'une distance (plus la valeur est grande plus les points sont proches) si je fais
    1/1+MaValeur, <------- plus ça, ça va être petit, plus les points seront proches alors, mea culpa peut être me suis je mal exprimé, mais j'aimerai savoir si y'a une autre opération a faire dans le cas ou on a l'inverse d'une distance.

    Merci.

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    ...
    C'est pas pour rien que c'est la distance qu'on met ici. Ca a presque le même comportement que si tu mets à la place l'inverse de la distance.

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par GyZmoO
    j'aimerai savoir si y'a une autre opération a faire dans le cas ou on a l'inverse d'une distance.
    et bien utilise cette valeur directement comme un poids.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Voisin le plus proche
    Par galostroy dans le forum R
    Réponses: 1
    Dernier message: 14/01/2015, 16h00
  2. Réponses: 3
    Dernier message: 27/04/2012, 02h05

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