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

MATLAB Discussion :

Utiliser la méthode de KPPV (k-plus proches voisins)


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Utiliser la méthode de KPPV (k-plus proches voisins)
    Bonjour tout le monde,
    mon problème est le suivant:
    je veux utiliser la méthode de KPPV (k-plus proches voisins) sous Matlab pour chercher parmi les lignes d'une matrice celle la plus proche (plus similaire) à un vecteur.
    par exemple :
    soit la matrice
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    m=[3,2,0,0,0,1
    0,2,0,0,3,1
    3,0,0,2,0,1
    3,2,1,0,0,0
    3,1,0,0,0,2
    3,1,0,0,0,2
    0,2,0,0,3,1
    0,2,0,0,3,1
    3,0,0,2,0,1
    3,2,1,0,0,0
    3,1,0,0,0,2
    3,1,0,0,0,2
    0,2,0,0,3,1
    0,2,0,3,0,1
    3,0,0,2,0,1]
    le vecteur donc l'avant dernière ligne de la matrice m correspond le mieux (similarité exacte) au vecteur q.
    je suis à l'attente de vos aides et de vos propositions

  2. #2
    Membre habitué
    Profil pro
    Doctorant
    Inscrit en
    Mars 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 147
    Points : 196
    Points
    196
    Par défaut
    Est ce que cette discussion répond à ta question ?

    Matersss

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Merci Matersss, le lien que tu m'as donné traite exactement le même problème. il est important pour moi comme premier pas.
    je signale que j'ai déjà essayé une autre méthode pour calculer la similarité entre le vecteur et les différentes lignes de la matrice. ça a l'aire de fonctionner bien, mais je veux un exemple fait avec la méthode de KPPV (K-plus proche voisins) pour pouvoir comparer les résultats et choisir la meilleure méthode.
    voila le code Matlab pour calculer la similarité (je suis débutant en Matlab)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    %similarité entre un vecteur et les ligne d'une matrice
    %m est la matrice
    %q est le vecteur
     
    function f=simis(m,q)   
    som=0;
    m=[3,2,0,0,0,1
    0,2,0,0,3,1
    3,0,0,2,0,1
    3,2,1,0,0,0
    3,1,0,0,0,2
    3,1,0,0,0,2
    0,2,0,0,3,1
    0,2,0,0,3,1
    3,0,0,2,0,1
    0,2,0,0,3,1
    0,2,0,3,0,1];
    %taille de la matrice m
    [L C]=size(m);
    %le vecteur q
    q=[0,2,0,3,0,1];
    %initialisation de vecteur résultat
    f=zeros(1,L)';
    %calcul de la similarité
          for i=1:L,
     
               for j=1:C,
     
                          if q(j)==m(i,j),som=som+q(j);
                          end
               end
               f(i)=(som/(1+som));
               som=0;
     
          end
    Merci d’enrichir cette discution

  4. #4
    Membre habitué
    Profil pro
    Doctorant
    Inscrit en
    Mars 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 147
    Points : 196
    Points
    196
    Par défaut
    Je pense qu'il faut que tu commences par définir ta distance et le nombre de plus proches voisins que tu choisis.

  5. #5
    Membre habitué
    Profil pro
    Doctorant
    Inscrit en
    Mars 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 147
    Points : 196
    Points
    196
    Par défaut
    On va dire que tu prends la norme euclidienne et que tu veux 3 éléments :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    A=m-repmat(q,size(m,1),1); % retranche q à chaque ligne de m
    b=transpose(sum(transpose(A.*A))); % fait le calcul selon la distance
    c=sort(b); % trie les éléments du plus petit au plus grand
    c(1:3) % prend les 3 plus petits
    J'espère que ça va t'aider !
    Maters

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup Maters pour votre précieuse aide, ça m'a bcp aidé, je vais suivre le piste

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Bonjour,
    encore besoin d'aide SVP
    maintenant comme faire une représentation graphique des données pour visualiser les k plus proches?

  8. #8
    Membre habitué
    Profil pro
    Doctorant
    Inscrit en
    Mars 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 147
    Points : 196
    Points
    196
    Par défaut
    Je ne pense pas que la visualisation soit facile vu qu'on dépasse la dimension 3... Attendons de voir d'autres réponses

Discussions similaires

  1. [Sources/Macros] Imputation des valeurs manquantes par la méthode des K plus proches voisins
    Par Haache dans le forum Contribuez
    Réponses: 0
    Dernier message: 14/04/2015, 12h07
  2. [Débutant] Méthode k plus proches voisins
    Par rabahauto85 dans le forum MATLAB
    Réponses: 3
    Dernier message: 22/02/2014, 16h37
  3. méthode des k plus proche voisin en matlab
    Par koukitta dans le forum Images
    Réponses: 4
    Dernier message: 15/05/2009, 18h47
  4. Recherche des plus proches voisins dans un espace variable à K dimensions parmis N
    Par JeromeBcx dans le forum Algorithmes et structures de données
    Réponses: 34
    Dernier message: 26/06/2008, 18h46
  5. Réponses: 3
    Dernier message: 12/04/2007, 10h32

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