Python數據標准化


Z-score標准化

1.產生隨機數

import numpy as np
## 產生隨機數
data_1 = np.random.randn(3, 4) # 從標准正態分布中返回一個或多個樣本值.
data_2 = np.random.rand(3, 4)  # 產生(0,1)的數
print('randn產生的隨機數:\n', data_1)
print('rand產生的隨機數:\n', data_2)
Shape = data_1.shape
print('data_1的維數:\n', Shape)

 

2.使用sklearn包

from sklearn.preprocessing import StandardScaler

## 標准化(使特征數據方差為1,均值為0)

# 使用sklearn的包
scaler = StandardScaler()
scaler.fit(data_2)                               # 使用transfrom必須要用fit語句
trans_data_2 = scaler.transform(data_2)          # transfrom通過找中心和縮放等實現標准化
fit_trans_data_2 = scaler.fit_transform(data_2)  # fit_transfrom為先擬合數據,然后轉化它將其轉化為標准形式
print('使用fit,transform標准化的數據:\n', trans_data_2)
print('使用fit_transform標准化的數據:\n', fit_trans_data_2)

 

3.使用numpy進行處理

import numpy as np
# 使用numpy的語句
Sum_total = data_2.sum()        # 整個矩陣求和
Sum_row = data_2.sum(axis=1)    # 行求和
Sum_col = data_2.sum(axis=0)    # 列求和
mean = np.mean(data_2, axis=0)  # 求平均值
std = np.std(data_2, axis=0)    # 標准差
var = std**2
print('data_2求和為:\n', Sum_col/3)
print('平均值為:\n', mean)
print('方差為:\n', var)
numpy_trans_data_2 = (data_2 - mean)/std
print('使用numpy進行標准化:\n', numpy_trans_data_2)

 注意:z-score標准化是要除以std(標准差),恰好對應於StandardScaler()

  min-max標准化僅僅將StandardScaler()換為MinMaxScaler()即可


免責聲明!

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



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