Implement PCA
This commit is contained in:
		
							parent
							
								
									5f3f65c69c
								
							
						
					
					
						commit
						2b98bd80f0
					
				
					 1 changed files with 29 additions and 31 deletions
				
			
		
							
								
								
									
										60
									
								
								ex7/pca.m
									
										
									
									
									
								
							
							
						
						
									
										60
									
								
								ex7/pca.m
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,31 +1,29 @@
 | 
			
		|||
function [U, S] = pca(X)
 | 
			
		||||
%PCA Run principal component analysis on the dataset X
 | 
			
		||||
%   [U, S, X] = pca(X) computes eigenvectors of the covariance matrix of X
 | 
			
		||||
%   Returns the eigenvectors U, the eigenvalues (on diagonal) in S
 | 
			
		||||
%
 | 
			
		||||
 | 
			
		||||
% Useful values
 | 
			
		||||
[m, n] = size(X);
 | 
			
		||||
 | 
			
		||||
% You need to return the following variables correctly.
 | 
			
		||||
U = zeros(n);
 | 
			
		||||
S = zeros(n);
 | 
			
		||||
 | 
			
		||||
% ====================== YOUR CODE HERE ======================
 | 
			
		||||
% Instructions: You should first compute the covariance matrix. Then, you
 | 
			
		||||
%               should use the "svd" function to compute the eigenvectors
 | 
			
		||||
%               and eigenvalues of the covariance matrix. 
 | 
			
		||||
%
 | 
			
		||||
% Note: When computing the covariance matrix, remember to divide by m (the
 | 
			
		||||
%       number of examples).
 | 
			
		||||
%
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
% =========================================================================
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
function [U, S] = pca(X)
 | 
			
		||||
%PCA Run principal component analysis on the dataset X
 | 
			
		||||
%   [U, S, X] = pca(X) computes eigenvectors of the covariance matrix of X
 | 
			
		||||
%   Returns the eigenvectors U, the eigenvalues (on diagonal) in S
 | 
			
		||||
%
 | 
			
		||||
 | 
			
		||||
% Useful values
 | 
			
		||||
[m, n] = size(X);
 | 
			
		||||
 | 
			
		||||
% You need to return the following variables correctly.
 | 
			
		||||
U = zeros(n);
 | 
			
		||||
S = zeros(n);
 | 
			
		||||
 | 
			
		||||
% ====================== YOUR CODE HERE ======================
 | 
			
		||||
% Instructions: You should first compute the covariance matrix. Then, you
 | 
			
		||||
%               should use the "svd" function to compute the eigenvectors
 | 
			
		||||
%               and eigenvalues of the covariance matrix.
 | 
			
		||||
%
 | 
			
		||||
% Note: When computing the covariance matrix, remember to divide by m (the
 | 
			
		||||
%       number of examples).
 | 
			
		||||
%
 | 
			
		||||
 | 
			
		||||
Sigma = 1/m * X'*X;  % covariance matrix
 | 
			
		||||
 | 
			
		||||
[U, S, V] = svd(Sigma);
 | 
			
		||||
 | 
			
		||||
% =========================================================================
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue