資料標準化處理

2021-09-14 00:16:05 字數 2663 閱讀 6990

python資料分析與資料化運營      宋天龍  著

資料標準化是乙個常用的資料預處理操作,目的是處理不同規模和量綱的資料,使其縮放到相同的資料區間和範圍,以減少規模、特徵、分布差異等對模型的影響。除了用作模型計算,標準化後的資料還具有了直接計算並生成復合指標的意義,是加權指標的必要步驟。

z-score標準化是基於原始資料的均值和標準差進行的標準化,假設原轉換的資料為x,新資料為x',那麼x'=(x-mean)/std,其中mean和std為x所在列的均值和標準差。這種方法適合大多數型別的資料,也是很多任務具的預設標準化方法。標準化之後的資料是以0為均值,方差為1的正態分佈。但是zscore方法是一種中心化方法,會改變原有資料的分布結構,不適合用於對稀疏資料做處理。某些情況下,假如資料集中有離群點,我們可以使用z-score進行標準化,但是標準化後的資料並不理想,因為異常點的特徵往往在標準化之後便容易失去離群特徵。此時,可以使用robustscaler針對離群點做標準化處理,該方法對資料中心化和資料的縮放健壯性有更強的引數控制能力。

max-min標準化方法是對原始資料進行線性變換,假設原轉換的資料為x,新資料為x',那麼x'=(x-min)/(max-min),其中min和max為x所在列的最小值和最大值這種標準化方法的應用非常廣泛,得到的資料會完全落入[0,1]區間內(z-score則沒有類似區間),這種方法能使資料歸一化而落到一定的區間內,同時還能較好地保持原有資料結構 。

最大值絕對值標準化(maxabs)即根據最大值的絕對值進行標準化,假設原轉換的資料為x,新資料為x',那麼x'=x/|max|,其中max為x所在列的最大值。maxabs方法跟max-min用法類似,也是將資料落入一定區間,但該方法的資料區間為[-1,1]。maxabs也具有不破壞原有資料分布結構的特點,因此也可以用於稀疏資料、稀疏的csr或csc矩陣。

data = np.loadtxt('data6.txt', delimiter='\t') # 讀取資料

# z-score標準化

zscore_scaler = preprocessing.standardscaler() # 建立standardscaler物件

data_scale_1 = zscore_scaler.fit_transform(data) # standardscaler標準化處理

# max-min標準化

minmax_scaler = preprocessing.minmaxscaler() # 建立minmaxscaler模型物件

data_scale_2 = minmax_scaler.fit_transform(data) # minmaxscaler標準化處理

# maxabsscaler標準化

maxabsscaler_scaler = preprocessing.maxabsscaler() # 建立maxabsscaler物件

data_scale_3 = maxabsscaler_scaler.fit_transform(data) # maxabsscaler標準化處理

# robustscaler標準化

robustscalerr_scaler = preprocessing.robustscaler() # 建立robustscaler標準化物件

data_scale_4 = robustscalerr_scaler.fit_transform(data) # robustscaler標準化標準化處理

# 展示多網格結果

data_list = [data, data_scale_1, data_scale_2, data_scale_3, data_scale_4] # 建立資料集列表

scalar_list = [15, 10, 15, 10, 15, 10] # 建立點尺寸列表

color_list = ['black', 'green', 'blue', 'yellow', 'red'] # 建立顏色列表

merker_list = ['o', ',', '+', 's', 'p'] # 建立樣式列表

title_list = ['source data', 'zscore_scaler', 'minmax_scaler', 'maxabsscaler_scaler', 'robustscalerr_scaler'] # 建立標題列表

for i, data_single in enumerate(data_list): # 迴圈得到索引和每個數值

plt.subplot(2, 3, i + 1) # 確定子網格

plt.scatter(data_single[:, :-1], data_single[:, -1], s=scalar_list[i], marker=merker_list[i], c=color_list[i]) # 自網格展示散點圖

plt.title(title_list[i]) # 設定自網格標題

plt.suptitle("raw data and standardized data") # 設定總標題

plt.show() # 展示圖形

python資料標準化處理 資料標準化處理

正態分佈跟標準分數之間的關係 python版本 3.5 標準分數 標準分數 standard score,又稱z score z分數或標準化值 是將集合中的單個數與集合的均值相減的結果除以集合的標準差得到標準化的結果,該方法類似於正態分佈的標準化轉換,轉換函式為 式中x為需要被標準化的原始值,為均值...

資料標準化處理

資料的標準化 normalization 也就是將資料按照比例縮放,使之落入特定區間內。因為不同的指標往往具有不同的量綱和單位,這樣的資料會影響分析結果,為了消除指標之間的這種影響,需要進行資料標準化處理,使個指標處於同一量級,讓指標有可比性。常用的歸一化有兩種方法 一 min max標準化 min...

資料標準化處理方法

在資料分析之前,我們通常需要先將資料標準化 normalization 利用標準化後的資料進行資料分析。資料標準化也就是統計資料的指數化。資料標準化處理主要包括資料同趨化處理和無量綱化處理兩個方面。資料同趨化處理主要解決不同性質資料問題,對不同性質指標直接加總不能正確反映不同作用力的綜合結果,須先考...