R語言歸一化處理

獵手家園發表於2016-08-24

歸一化化就是要把你需要處理的資料經過處理後(透過某種演算法)限制在你需要的一定範圍內。首先歸一化是為了後面資料處理的方便,其次是保正程式執行時收斂加快。 

R語言中的歸一化函式:scale

 

資料歸一化包括資料的中心化和資料的標準化。

1. 資料的中心化
所謂資料的中心化是指資料集中的各項資料減去資料集的均值。
例如有資料集1, 2, 3, 6, 3,其均值為3,那麼中心化之後的資料集為1-3,2-3,3-3,6-3,3-3,即:-2,-1,0,3,0

2. 資料的標準化
所謂資料的標準化是指中心化之後的資料在除以資料集的標準差,即資料集中的各項資料減去資料集的均值再除以資料集的標準差。
例如有資料集1, 2, 3, 6, 3,其均值為3,其標準差為1.87,那麼標準化之後的資料集為(1-3)/1.87,(2-3)/1.87,(3-3)/1.87,(6-3)/1.87,(3-3)/1.87,即:-1.069,-0.535,0,1.604,0

資料中心化和標準化的意義是一樣的,為了消除量綱對資料結構的影響。在R語言中可以使用scale方法來對資料進行中心化和標準化。

 

scale函式是將一組數進行處理,預設情況下是將一組數的每個數都減去這組數的平均值後再除以這組數的標準差。

其中有兩個引數:
center=TRUE,預設的,是將一組數中每個數減去平均值,若為false,則不減平均值;
scale=TRUE,預設的,是將一組數中每個數除以標準差。

 

scale預設情況下:將一組數的每個數都減去這組數的平均值後再除以這組數的標準差。

> scale(ss)
           [,1]
[1,] -1.3805850
[2,] -0.6371931
[3,]  0.1061988
[4,]  0.8495908
[5,]  1.5929827
[6,]  0.1061988
[7,] -0.6371931

attr(,"scaled:center")
[1] 2.857143

attr(,"scaled:scale")
[1] 1.345185

 

相關文章