將原始資料轉化為更好的代表**模型的潛在問題的特徵的過程,從而提高了未知資料的**準確性,資料和特徵決定了機器學習的上限, 而模型和演算法只是逼近這上限而已。
安裝順序:numpy / scipy / matplotlib / scikit-learn
pip install scipy -i
pip install scikit-learn -i
from sklearn.preprocessing import minmaxscaler
import numpy as np
#例項化物件
mm = minmaxscaler(
)arr = np.array([[
90,2,
10,40]
,[60,
4,15,
45],[
70,3,
13,46]
])#print(arr)
#按列:歸一化公司x_=(x-min)/(max-min)
#最大值就是1,最小值就是0
# 歸一化的缺點,如果有異常值出現就會有誤差
# 歸一化的條件: 針對誤差很小的資料
data = mm.fit_transform(arr)
print
('歸一化之後的資料:\n'
,data)
'''歸一化之後的資料(資料對映到0到1之間):
[[1. 0. 0. 0. ]
[0. 1. 1. 0.83333333]
[0.33333333 0.5 0.6 1. ]]
'''#還原資料
data = mm.inverse_transform(data)
print
('原始資料:\n'
,data)
'''原始資料:
[[90. 2. 10. 40.]
[60. 4. 15. 45.]
[70. 3. 13. 46.]]
'''# 針對異常值比較多,可以採用標準化
from sklearn.preprocessing import standardscaler
#列印分隔符
print
('-'
*100
)#標準化公式:x_ = (x-mean)/var
std = standardscaler(
)#標準化
data = std.fit_transform(arr)
print
('每列平均值:'
,std.mean_)
print
('每列的標準差:'
,std.var_)
print
('標準化之後的資料:\n'
,data)
'''每列平均值: [73.33333333 3. 12.66666667 43.66666667]
每列的標準差: [155.55555556 0.66666667 4.22222222 6.88888889]
標準化之後的資料:
[[ 1.33630621 -1.22474487 -1.29777137 -1.3970014 ]
[-1.06904497 1.22474487 1.13554995 0.50800051]
[-0.26726124 0. 0.16222142 0.88900089]]
'''
歸一化與標準化
特點 對不同特徵維度的伸縮錶換的目的是使各個特徵維度對目標函式的影響權重是一致的,即使得那些扁平分布的資料伸縮變換成類圓形。這也就改變了原始資料的乙個分布。好處 1 提高迭代求解的收斂速度 2 提高迭代求解的精度 方法 1 min max標準化 也成為離差標準化,對原始資料的的線性變換,結果值對映到...
歸一化與標準化
1 提公升訓練的速度 2 提公升模型的精度 3 深度模型中能夠防止梯度 min max 歸一化 x x x min x max x min 將x 對映到 0,1 之間的乙個數 z score 標準化 均值為0 標準差為1 當有新的樣本加入時,min max 計算量小,z score 需要重新計算均值...
歸一化與標準化詳解
歸一化 normalization 1.把資料變為 0,1 之間的小數。主要是為了方便資料處理,因為將資料對映到0 1範圍之內,可以使處理過程更加便捷 快速。2.把有量綱表示式變換為無量綱表示式,成為純量。經過歸一化處理的資料,處於同一數量級,可以消除指標之間的量綱和量綱單位的影響,提高不同資料指標...