feature normalization

I was doing Coursera—machine learning(Andrew Ng)第二週編程作業
reading this
線性迴歸--Octave實現
Coursera機器學習-Week 2-編程作業:Linear Regression
Coursera—machine learning(Andrew Ng)第二週編程作業

I don't really get this

sigma = std(X, 1, 1);

despite it says ...still don't get it

                                                                                            
>> help std
'std' is a function from the file E:\Octave\Octave-4.4.1\share\octave\4.4.1\m\statistics\std.m

 -- std (X)
 -- std (X, OPT)
 -- std (X, OPT, DIM)
     Compute the standard deviation of the elements of the vector X.

     The standard deviation is defined as

          std (X) = sqrt ( 1/(N-1) SUM_i (X(i) - mean(X))^2 )

     where N is the number of elements of the X vector.

     If X is a matrix, compute the standard deviation for each column
     and return them in a row vector.

     The argument OPT determines the type of normalization to use.
     Valid values are

     0:
          normalize with N-1, provides the square root of the best
          unbiased estimator of the variance [default]

     1:
          normalize with N, this provides the square root of the second
          moment around the mean

     If the optional argument DIM is given, operate along this
     dimension.

     See also: var, bounds, mad, range, iqr, mean, median.

Additional help for built-in functions and operators is
available in the online version of the manual.  Use the command
'doc <topic>' to search the manual index.

But it seems the code can be simple like this..
I don't know whether I am right here though..

function [X_norm, mu, sigma] = featureNormalize(X)
%FEATURENORMALIZE Normalizes the features in X 
%   FEATURENORMALIZE(X) returns a normalized version of X where
%   the mean value of each feature is 0 and the standard deviation
%   is 1. This is often a good preprocessing step to do when
%   working with learning algorithms.

% You need to set these values correctly
X_norm = X;
mu = zeros(1, size(X, 2));
sigma = zeros(1, size(X, 2));

% ====================== YOUR CODE HERE ======================
% Instructions: First, for each feature dimension, compute the mean
%               of the feature and subtract it from the dataset,
%               storing the mean value in mu. Next, compute the 
%               standard deviation of each feature and divide
%               each feature by it's standard deviation, storing
%               the standard deviation in sigma. 
%
%               Note that X is a matrix where each column is a 
%               feature and each row is an example. You need 
%               to perform the normalization separately for 
%               each feature. 
%
% Hint: You might find the 'mean' and 'std' functions useful.
%       
mu = mean(X);
sigma = std(X);
disp('mu'),disp(mu);
disp('sigma'),disp(sigma);

sigma= std(X);
X_norm = (X-mu) ./ sigma;
  
disp('X_norm'),disp(X_norm);



% ============================================================

end
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章