python歸一化方法


數據標准化(歸一化)處理是數據挖掘的一項基礎工作,不同評價指標往往具有不同的量綱和量綱單位,這樣的情況會影響到數據分析的結果,為了消除指標之間的量綱影響,需要進行數據標准化處理,以解決數據指標之間的可比性。原始數據經過數據標准化處理后,各指標處於同一數量級,適合進行綜合對比評價。以下是三種常用的歸一化方法:

min-max標准化(Min-Max Normalization)

也稱為離差標准化,是對原始數據的線性變換,使結果值映射到[0 , 1]之間。轉換函數如下: 

 

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

from sklearn import preprocessing  
  
import numpy as np 
  
X = np.array([[ 1., -1., 2.], 
  
       [ 2., 0., 0.], 
  
       [ 0., 1., -1.]]) 
  
min_max_scaler = preprocessing.MinMaxScaler() 
  
X_minMax = min_max_scaler.fit_transform(X)

結果:

array([[ 0.5 , 0. , 1. ], 
          [ 1. , 0.5 , 0.33333333], 
          [ 0. , 1. , 0. ]])

找大小的方法直接用np.max()和np.min()就行了,盡量不要用python內建的max()和min()

Z-score標准化方法

也稱為均值歸一化(mean normaliztion), 給予原始數據的均值(mean)和標准差(standard deviation)進行數據的標准化。經過處理的數據符合標准正態分布,即均值為0,標准差為1。轉化函數為: 

 

mu(即均值)用np.average(),sigma(即標准差)用np.std()即可.
def Z_ScoreNormalization(x,mu,sigma):
    x = (x - mu) / sigma;
    return x;

b = np.array([[1,2,3],[4,5,6]])
print(Z_ScoreNormalization(b,b.mean(),b.std()))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM