sklearn.preprocessing.StandardScaler數據標准化


如果某個特征的方差遠大於其它特征的方差,那么它將會在算法學習中占據主導位置,導致我們的學習器不能像我們期望的那樣,去學習其他的特征,這將導致最后的模型收斂速度慢甚至不收斂,因此我們需要對這樣的特征數據進行標准化/歸一化。

1.StandardScaler

標准化數據通過減去均值然后除以方差(或標准差),這種數據標准化方法經過處理后數據符合標准正態分布,即均值為0,標准差為1,轉化函數為:x =(x - 𝜇)/𝜎

import numpy as np
from sklearn.preprocessing import StandardScaler

'''
scale_: 縮放比例,同時也是標准差
mean_: 每個特征的平均值
var_:每個特征的方差
n_sample_seen_:樣本數量,可以通過patial_fit 增加
'''
x = np.array(range(1, 10)).reshape(-1, 1)
ss = StandardScaler()
ss.fit(X=x)
print(x)
print(ss.n_samples_seen_)
print(ss.mean_)
print(ss.var_)
print(ss.scale_)
print('標准化后的數據:')
y = ss.fit_transform(x)

>>>

[[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]]
9
[5.]
[6.66666667]
[2.5819889]
標准化后的數據:
[[-1.54919334]
[-1.161895 ]
[-0.77459667]
[-0.38729833]
[ 0. ]
[ 0.38729833]
[ 0.77459667]
[ 1.161895 ]
[ 1.54919334]] 


免責聲明!

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



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