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 :

compute delaunay and cross validation


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 34
    Par défaut compute delaunay and cross validation
    Bonjour à tous,

    Je dois creer un algorithme me permettant de prédire un point via une transformation affine en passant par une triangulation de delaunay

    J'ai une matrice de 212 lignes structurées comme suit

    [x y x1 y1]

    x et y sont les cordonnées de mes points en lambert 2 et x1 et x2 sont les coordonnées image.

    Je dois donc générer une triangulation et calculer une transformation affine pour mon premier triangle, puis le deuxième et ainsi de suite...
    Egalement, je souhaiterais retirer une ligne à chaque fois (212 fois donc) pour calculer une nouvelle triangulation.
    Et pour valider, il faudrait que je recupere mon x1 et y1 retirées pour les transformer (cela suscite donc de retrouver le triangle dans lequel est ce point) et estimer la différence avec les x et y de cette même ligne retirée.

    Merci d'avance

    MG

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Où est la question dans tout cela ?
    As-tu commencé à coder quelque chose ? Quel est le point précis qui te pose problème ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 34
    Par défaut
    Re,

    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
    load croisement.txt;
    for n=1:212;
        V = [croisement(1:n-1,:);croisement(n+1:212,:)];% je crée une sous matrice
        x = V(:,3:4);
        y = V(:,1:2);
        [x Mx mx]=scale(x);
        [y My my]=scale(y);
        a = y(:,1);
        b = y(:,2);
        TD = delaunay(a, b);
        T = TD.';
        uv = zeros(numel(T),2);
        uv(:,1) = a(T(:));
        uv(:,2) = b(T(:));
        c = x(:,1);
        d = x(:,2);
        uv(:,3) = c(T(:));
        uv(:,4) = d(T(:));
        e = uv(:,1);
        f = uv(:,2);
        g = uv(:,3);
        h = uv(:,4);
        one=ones(length(uv),1);
        K = [g h one]; % voici ma nouvelle matrice de transformation (comportes les coordonnées x et y pour l'ensemble des sommets de chaque triangle)
        H = [e f];% vecteur a multiplier par K pour obtenir mes coefficients
        for i=1:3:length(K)
            P = (K(i,: )'*K(i,: ))\(K(i,: )'*H(i,:));
            temp = K(i,: )*P; % c'est la que dois multiplier P par la ligne retirée auparavant dans "croisement" pour avoir les x1 et y1 (dc je dois retrouver dans quel triangle il se trouve)
            yp = descale(temp, My, my);
        end
        rmse =sqrt(mean(sum((temp-croisement(n,3:4)).^2,2)));% et là je dois calculer la rmse entre le points prédit et sa coordonnée correspondante
        RMS = mean(rmse);
    end
    Je ne vois pas comment retrouver la ligne retirée à chaque fois et la multiplier par la matrice P (obtenue à l'aide des trois premières lignes de la matrice K donc les trois sommets du premiers triangle et ainsi de suite).

    Merci d'avance

    MG

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'ai du mal à voir ce qui te bloque
    La ligne que tu as retirée là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    V = [croisement(1:n-1,:);croisement(n+1:212,:)];
    est simplement croisement(n,:)

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 34
    Par défaut
    En fait, j'aimerais connaitre le triangle dans lequel se trouve le point retiré pour calculer la prédiction de ce point.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/06/2014, 11h22
  2. [Débutant] choisir les paramètre de Svm utilisant k-folds cross validation
    Par pretyy dans le forum Images
    Réponses: 0
    Dernier message: 14/05/2014, 12h28
  3. [Débutant] La cross validation
    Par Mimorano dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/03/2013, 13h25
  4. Sous matrice Cross Validation
    Par magictol53 dans le forum MATLAB
    Réponses: 9
    Dernier message: 31/05/2012, 18h35
  5. Utiliser la méthode de validation croisée à k plis
    Par abidineb dans le forum Méthodes prédictives
    Réponses: 7
    Dernier message: 15/11/2010, 02h00

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