將數組約束到[a,b]區間內的標準化方式

將數組約束到[a,b]區間內的標準化方式

來自專欄演算法, 無止境

在進行數據預處理的時候, 經常需要對數據進行標準化, 比如: max-min, z-score, 或則 log 函數等. 這類標準化經常是將數據規約到[0,1]範圍內.

在實際應用, 我們有時候需要對數據進行約束制定的範圍. 比如:[a,b], 其中, a,b 均為實數.

設一數組 X = [x_1,x_2,...,x_n] , 其中, x_i(i=1,2,...,n)是實數. 則:

frac{x_i - x_{min}}{x_{max}-x_{min}}b + frac{x_{max}-x_i}{x_{max}-x_{min}}a

其中, x_{min} = min(X), x_{max} = max(X) .

下面給出 python3的定義函數.

def new_max_min(data_arr, a=0, b=1): # 最值 min_value = min(data_arr) max_value = max(data_arr) # 權重 p1 = (data_arr - min_value) / (max_value - min_value) p2 = (max_value - data_arr) / (max_value - min_value) return p1 * b + p2 * a

推薦閱讀:

試論經外奇穴名稱與定位標準化的必要性
未來食:匠心精神和餐飲標準化是敵人還是朋友?
R—用scale()函數進行變數標準化處理
【廚政管理】廚房管理的標誌——標準化
標準化流水線式把妹方法

TAG:Python3x | 標準化 |