Aide pour les ACP en matlab

Résolu
cixidetroy -  
traitement d'image Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis tres (tres) debutante en informatique, et manque de bol.... je me trouve en stage en informatique... apres une semaine passee a ramer en perl, mon maitre de stage m'a demande de trouver un programme "tout fait" sur internet pour calculer les ACP(que avant ce matin je n'avais jamais entendu parler...)en matlab... bien sur, je n'ai pas trouve, aussi j'essaie de le faire...
je pense que ce que j'ai fait est bien naif pour un oeil averti, mais pour moi, c'est tres opaque....(function[]=acp(X) ;
n=length(X)
for i=1:n
B(i)=std(X): end
S=B*B'/(n+1);
[V,D]=eig(S);


d'abord... comment fonctionne la fontion std pour une matrice? que faut il mettre en argument? ( j'ai essaye de lire l'aide, ;ais g pas compris...) et la fonction eig?

est-ce qu'il vaut mieux utiliser ces fonctions ou bien en refaire mieux adaptees?

je n'ai vraiment aucune idee de comment commencer.....

merci d'avance

Sophie

3 réponses

Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   1 835
 
Salut

std calcule l'écart type.
Si l'argument est un vecteur X, ben ça calcule l'écart type σ de la série représentée par les valeurs du vecteur, c'est-à-dire σ²=E[(X-E[X])²]
Si l'argument est une matrice X, std(X) est un vecteur ligne dont les valeurs sont les écarts type de chaque colonne de X.
Après tu peux préciser d'autres cochonneries en option.

eig calcule les valeurs propres d'une matrice.
Donc pour une matrice carrée X, eig(X) est un vecteur colonne contenant les valeurs propres de X.
Si en plus tu veux avoir les vecteurs propres, tu tapes [P,D] = eig(X).
D sera le vecteur colonne des valeurs propres. Les colonnes de P sont les vecteurs propres correspondant, c'est-à-dire X*P = P*D
Il y a d'autres trucs qu'on peut faire avec aussi, mais bon... j'espère que ça te suffira pour le moment.

A plus
2
mina
 
salut,

moi aussi j'utilise l'ACP en Matlab, j'ai pu calculer vecteur des moyennes, vecteur des ecarts-types, Centrage des données, Matrice diagonale des 1/ect, Matrice des données centrées et réduites, Matrice des corrélations, Vecteurs et valeurs propres et Coordonnées des individus sur les axes

ma question est comment en déduire la matrice réduire?

merci d'avance pour votre réponse
0
vince2505
 
La matrice des composante principale est le produit de la matrice des données centrées réduites par la matrice des vecteurs propres.

J'aurais moi même une question :
une fois les composantes principales obtenues, comment reconstruire le signale à partir des composantes pertinentes, que ce soit pour supprimer du bruit ou supprimer l'influence une variable gênante ?
Merci.
0
traitement d'image Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
bjr
je travail sur un sujet en traitement d image et je dois utiliser cette fonction ACP g le programme mais g du mal à comprendre les étapes est ce quil ya kkn qui pourra me donner un petit coup de main merci d'avance et bonne journée voici la fonction
function [Evalues, Evectors, x_mean]=PCA(x)
% PCA using Single Value Decomposition
% Obtaining mean vector, eigenvectors and eigenvalues
%
% [Evalues, Evectors, x_mean]=PCA(x);
%
% inputs,
% X : M x N matrix with M the trainingvector length and N the number
% of training data sets
%
% outputs,
% Evalues : The eigen values of the data
% Evector : The eigen vectors of the data
% x_mean : The mean training vector
%
%
s=size(x,2);
% Calculate the mean
x_mean=sum(x,2)/s;

% Substract the mean
x2=(x-repmat(x_mean,1,s))/ sqrt(s-1);

% Do the SVD
[U2,S2] = svds(x2,s);
Evalues=diag(S2).^2;
Evectors=U2;
0