Aide pour les ACP en matlab
Résolu
cixidetroy
-
traitement d'image Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Acp matlab
- Gnu octave matlab - Télécharger - Édition & Programmation
- Telecharger matlab ✓ - Forum Logiciels
- Matrice matlab - Forum Matlab
- Fonction matlab - Forum Matlab
- Différence ACP et régression linéaire multiple ✓ - Forum Excel
3 réponses
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
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
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.
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.
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;
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;
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