⑴ 數據預處理之數據歸一化
數據預處理之數據歸一化
一、簡單縮放
分為:最大值縮放和均值縮放
在簡單縮放中,我們的目的是通過對數據的每一個維度的值進行重新調節(這些維度可能是相互獨立的),使得最終的數據向量落在[0,1]或[? 1,1]的區間內(根據數據情況而定)。
例子:在處理自然圖像時,我們獲得的像素值在[0,255]區間中,常用的處理是將這些像素值除以255,使它們縮放到[0,1]中。
二、逐樣本均值消減(也稱為移除直流分量)
如果你的數據是平穩的(即數據每一個維度的統計都服從相同分布),那麼你可以考慮在每個樣本上減去數據的統計平均值(逐樣本計算)。
例子:對於圖像,這種歸一化可以移除圖像的平均亮度值(intensity)。很多情況下我們對圖像的照度並不感興趣,而更多地關注其內容,這時對每個數據點移除像素的均值是有意義的。
注意:雖然該方法廣泛地應用於圖像,但在處理彩色圖像時需要格外小心,具體來說,是因為不同色彩通道中的像素並不都存在平穩特性。
例如
Caffe demo 里頭的 classification_demo.m腳本文件中對原始數據有這樣的處理
im_data = im_data - mean_data;
三、特徵標准化(使數據集中所有特徵都具有零均值和單位方差)
特徵標准化的具體做法是:首先計算每一個維度上數據的均值(使用全體數據計算),之後在每一個維度上都減
去該均值。下一步便是在數據的每一維度上除以該維度上數據的標准差。
簡單的說就是:減去原始數據的均值再除以原始數據的標准差
例子
x= [ones(m, 1), x];
%x包括2個特徵值和1個偏置項,所以矩陣x的規模是 x:[mX3]
sigma= std(x);%X的標准差;mu= mean(x);%X的均值;x(:,2)= (x(:,2) - mu(2))./ sigma(2);x(:,3)= (x(:,3) - mu(3))./ sigma(3);