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

2021-10-11 12:33:18 字數 1604 閱讀 7979

正態分佈跟標準分數之間的關係

python版本:3.5

標準分數

標準分數(standard score,又稱z-score、z分數或標準化值),是將集合中的單個數與集合的均值相減的結果除以集合的標準差得到標準化的結果,該方法類似於正態分佈的標準化轉換,轉換函式為:

式中x為需要被標準化的原始值,μ為均值,σ為標準差,σ≠0。

z分數標準化處理後的值代表原始值與集合均值之間的距離,以標準差為單位計算。該值存在正負值,低於均值則為負數,反之則正數,其範圍為[-∞,+∞],資料均值為0,方差為1。

極差標準化

又稱離差標準化,是將集合中的單個數與該集合最小值相減得到的距離再去除以集合最大值與最小值相減得到極差或全距,結果落在區間[0,1],轉換函式為:

另外還有以集合的均值作為基準的極差標準化方法,將集合中的單個數與集合的均值相減再除以極差即得到標準化的結果,標準化後的資料落在區間[-1,1],且均值為0,極差為1,轉換函式為:

log函式標準化

通過以10為底數的log函式將原始值轉換為其對數值,轉換後的值區間並不在[0,1]之間,故還要除以最大值的對數,轉換函式為:

python實現標準化處理

使用pandas和numpy的庫先建立5個數的隨機數組,並儲存在pandas的dataframe資料結構裡便於後期處理。

未標準化前的原始值

建立好陣列後先逐一計算陣列的均值、最大值、最小值、標準差和最大值的對數,在這裡先計算並放置於全域性變數可以避免後面呼叫的時候重複計算,對大量資料而言能減少計算時間。編寫標準化函式後將標準化的結果存到新的列中,標準化後的結果如下:

標準化後的結果

原始碼如下:

import pandas as pd

import numpy as np

random_seed = 100

np.random.seed(random_seed) # # 設定隨機種子,確保每次隨機數一致

df = pd.dataframe(np.random.randint(1, 100, 5), columns=['value']) # 建立5個數的陣列

v_mean = df['value'].mean() # 均值

v_max = df['value'].max() # 最大值

v_min = df['value'].min() # 最小值

v_std = df['value'].std() # 標準差

v_log_max = np.log10(v_max) # 最大值的對數

df['z_score'] = df['value'].map(lambda x: (x - v_mean) / v_std) # z分數標準化

df['min_max'] = df['value'].map(lambda x: (x - v_min) / (v_max - v_min)) # 極差標準化,以最小值為基準

df['min_max_mean'] = df['value'].map(lambda x: (x - v_mean) / (v_max - v_min)) # 極差標準化,以均值為基準

df['log_max'] = df['value'].map(lambda x: np.log10(x) / v_log_max) # log函式標準化

Python資料標準化處理

歸一化,z socre法 import numpy as np import pandas as pd import copy import jenkspy 逆向指標 defminmaxnormalization x x np.max x x np.max x np.min x return x 正...

資料標準化處理

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

資料標準化處理

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