http://www.d.umn.edu/~deoka001/Normalization.html
This web page introduce that..(wrote by Siddharth Deokar)
-------------------------------------------------------------------------
Normalization by Standard Deviation
We normalize the attribute values by using standard deviation.
For Example:
Consider 5 instances which has attribute A with the follwing values: {-5, 6, 9, 2, 4}
First we calculate the mean as follows:
Mean = (-5+6+9+2+4) / 5 = 3.2
Second, we subtract the mean from all the values and square them:
(-5-3.2)^2 = 67.24
(6-3.2)^2 = 7.84
(9-3.2)^2 = 33.64
(2-3.2)^2 = 1.44
(4-3.2)^2 = 0.64
Then we find the deviation as follows:
Deviation = sqrt ((67.24 + 7.84 + 33.64 + 1.44 + 0.64) / 5) = 4.71
Now we normalize the attribute values:
x => (x - Mean) / Deviation
-5 => (-5 - 3.2) / 4.71 = -1.74
6 => (6 - 3.2) / 4.71 = 0.59
9 => (9 - 3.2) / 4.71 = 1.23
2 => (2 - 3.2) / 4.71 = -0.25
4 => (4 - 3.2) / 4.71 = 0.17
-------------------------------------------------------------------------
This is sample source code:
// int i,j,z; double sum=0; double Mean; //sum, mean for(j=0; j< Height; ++j) { for(i=0; i< Width; ++i) { sum = sum + Pdata[i][j]; } } Mean = sum/(Height*Width); //Deviation double dSum=0; double deviation; double std_dev; for(j=0; j< Height; ++j) { for(i=0; i< Width; ++i) { Pdata[i][j] = (Pdata[i][j] - Mean); dSum = dSum + (Pdata[i][j]*Pdata[i][j]); } } deviation = dSum / (Width*Height); std_dev = sqrt(deviation); //Normalization for(j=0; j< Height; ++j) { for(i=0; i< Width; ++i) { Pdata[i][j] = (Pdata[i][j] / std_dev); } }
No comments:
Post a Comment