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 :

[kmean] Poids des variables


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Par défaut [kmean] Poids des variables
    Bonjour,

    Je voudrais effectuer une classification à partir d'une matrice ou chaque variable a un certain poids, existe-t-il un moyen de mettre la matrice de poids en paramètre?

    Merci beaucoup.

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Par défaut
    Si je crois la Doc de ma version (7.0) , tu ne peux pas injecter d'information sur le poids .

    Sinon, voici le code d'un K-mean cluster basique que j'avais fait. Tu peux pi etre l'adapter à ton cas:

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    function [ clusterimage ] = kmean_cluster_seg(image, k)
    % K-mean cluster
    % 
     
    % Init 
    colors = 255*rand(k,1);
    clusterimage = zeros(size(image));
    image = cast(image, 'double');
    %
    Errors = inf;
     
    % (1%) allow
    while (Errors > 0.01*size(image,1)*size(image,2)) 
     
        kSize = zeros(k,1);
        kSum = zeros(k,1);
        Errors = 0;
        % Set Colors
        for i=1:size(image,1)
            % Init
            for j=1:size(image,2)
     
                % Min 
                MatDiff = abs(colors-image(i,j));
                [colorDiff colorMin] = min(MatDiff);
     
                % Diff with Older 
                if colorMin ~= clusterimage(i,j)
                   Errors = Errors +1;
                end
     
                % Set Map
                clusterimage(i,j) = colorMin;
     
                % Add Result 
                kSize(colorMin) = kSize(colorMin) + 1;
                kSum(colorMin) = kSum(colorMin) + image(i,j); 
            end
        end
        % Compute colors Means 
        colors =  kSum./kSize;
    end
     
    clusterimage = cast(round(clusterimage*255/k),'uint8');

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Par défaut
    Avant d'utiliser la fonction kmean de matlab, il est nécéssaire de normaliser tes données. Il suffit ensuite de pondérer la variable de ton choix.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Poids des variables J2ME
    Par casper83 dans le forum Java ME
    Réponses: 0
    Dernier message: 25/09/2008, 17h48
  2. Réponses: 4
    Dernier message: 15/12/2002, 04h19
  3. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 12h44
  4. [VB6] [Fichier] Enregistrer des variables de structure
    Par de.bo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/10/2002, 11h09
  5. Réponses: 4
    Dernier message: 18/07/2002, 13h32

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