數(shù)據(jù)的格式化方法(編碼,規(guī)范化,正則化)
摘要:機(jī)器學(xué)習(xí)由兩部分組成,學(xué)習(xí)的素材和學(xué)習(xí)器。學(xué)習(xí)的素材就是數(shù)據(jù),不論是監(jiān)督學(xué)習(xí)還是無監(jiān)督學(xué)習(xí),良好的數(shù)據(jù)是成功訓(xùn)練學(xué)習(xí)模型的保證。不難理解,學(xué)習(xí)器能識別的數(shù)據(jù)必然具備一定的格式。本文研究數(shù)據(jù)編碼,數(shù)據(jù)規(guī)范化(標(biāo)準(zhǔn)化),數(shù)據(jù)正則化。
00 編碼
import numpy as np
import sklearn.preprocessing as pre
import matplotlib.pyplot as plt
x=np.array([[1,4,2],[2,3,2],[3,2,3],[0,1,5]])

二元碼:0 和 1
pre_b=pre.Binarizer(threshold=3)
x_b=pre_b.transform(x)
大于3的數(shù)字倍編碼為1,小于等于3的數(shù)字被編碼為0:

獨(dú)熱碼
pre_o=pre.OneHotEncoder(sparse=False,categories='auto')
pre_o.fit(x)
x_o=pre_o.transform(x)

x的第一列分別編碼為0100(1),0010(2),0001(3),1000(0);
x的第二列分別編碼為0001,0010,0100,1000;
x的第三列分別編碼為100,100,010,001
pre_o.categories_1
Out[55]: [array([0, 1, 2, 3]), array([1, 2, 3, 4]), array([2, 3, 5])]
01 規(guī)范化
import numpy as np
import sklearn.preprocessing as pre
import matplotlib.pyplot as plt
x=np.array([[1,4,2],[2,3,2],[3,2,3],[0,1,5]])

區(qū)間規(guī)范化
preminmax=pre.MinMaxScaler(feature_range=(0,1))
preminmax.fit(x)
x_minmax=preminmax.transform(x)

preminmax.data_min_
Out[59]: array([0., 1., 2.])
preminmax.data_max_
Out[60]: array([3., 4., 5.])
preminmax.data_range_
Out[61]: array([3., 3., 3.])
preminmax.scale_
Out[62]: array([0.33333333, 0.33333333, 0.33333333])
極值規(guī)范化
premaxabs=pre.MaxAbsScaler()
premaxabs.fit(x)
x_maxabs=premaxabs.transform(x)

premaxabs.max_abs_
Out[64]: array([3., 4., 5.])
premaxabs.scale_
Out[65]: array([3., 4., 5.])
Z-score規(guī)范化
prestan=pre.StandardScaler()
prestan.fit(x)
pre_stan=prestan.transform(x)

prestan.mean_
Out[67]: array([1.5, 2.5, 3. ])
prestan.var_
Out[68]: array([1.25, 1.25, 1.5 ])
prestan.scale_
Out[69]: array([1.11803399, 1.11803399, 1.22474487])
02 正則化
premaxabs=pre.MaxAbsScaler()
premaxabs.fit(x)
x_maxabs=premaxabs.transform(x)

L1正則化
prenor=pre.Normalizer(norm='l1')
x_l1=prenor.transform(x)

L2正則化
prenor=pre.Normalizer(norm='l2')
x_l2=prenor.transform(x)

工程師必備
- 項目客服
- 培訓(xùn)客服
- 平臺客服
TOP




















