1. 程式人生 > >資料預處理之標準化

資料預處理之標準化

    近來趁專案間隔期,工作不是太多,也在利用空餘時間把資料分析的完整流程用Python實現一遍,也恰好整理下這幾年手頭的一些資料,順序可能比較亂,後期再慢慢調整。

    資料的標準化(normalization)是將資料按照一定規則縮放,使之落入一個小的特定區間。這樣去除資料的單位限制,將其轉化為無量綱的純數值,便於不同單位或量級的指標能夠進行比較和加權。其中最典型的就是0-1標準化和Z標準化,當然,也有一些其他的標準化方法,用在不同場景,這裡主要介紹幾種常用的方法。

1、Min-Max標準化(Min-Max normalization)

    也稱離差標準化,是對原始資料的線性變換,使結果落到[0,1]區間,轉換函式如下:


    其中max{xj}為樣本資料的最大值,min{ xj }為樣本資料的最小值。這種方法有一個缺陷就是當有新資料加入時,可能導致maxmin的變化,需要重新定義。

2、Z-score 標準化(zero-mean normalization)

    也叫標準差標準化,經過處理的資料符合標準正態分佈,即均值為0,標準差為1,其轉化函式為:


    其中x為所有樣本資料的均值,s 為所有樣本資料的標準差。

    經過 Z-score 標準化後,各變數將有約一半觀察值的數值小於0,另一半觀察值的數值大於0,變數的平均數為0,標準差為1。經標準化的資料都是沒有單位的純數量。它是當前用得最多的資料標準化方法。如果特徵非常稀疏,並且有大量的0(現實應用中很多特徵都具有這個特點),Z

-score 標準化的過程幾乎就是一個除0的過程,結果不可預料。

3正則化(Normalization

    正則化的過程是將每個樣本縮放到單位範數(每個樣本的範數為1),如果後面要使用如二次型(點積)或者其它核方法計算兩個樣本之間的相似性這個方法會很有用。               Normalization主要思想是對每個樣本計算其p-範數,然後對該樣本中每個元素除以該範數,這樣處理的結果是使得每個處理後樣本的p-範數(L1-norm,L2-norm)等於1。

    p-範數的計算公式:


    該方法主要應用在文字分類和聚類中。例如,對於兩個TF-IDF向量的L2-norm進行點積,就可以得到這兩個向量的餘弦相似性。