0 写在前
特征的好坏决定了模型训练的上限。模型只是无限去接近这个上限。
1 归一化
数据归一化是消除不同特性数据的桥梁。能进一步在数值上进行有效的分析研究。这可以消除量纲的影响。
(1)线性归一化
X n o r m = X − X m i n X m a x − X m i n X_{norm}= \frac{X-X_{min}}{X_{max}-X_{min}} Xnorm=Xmax−XminX−Xmin
# 1
#直接计算
import numpy as np
arr = np.asarray(X)
for x in arr:
x = float(x - np.min(arr))/(np.max(arr)- np.min(arr))
print x
# 2
# 通过sklearn包中函数
from sklearn import preprocessing
import numpy as np
X = np.array([1., -1., 2.])
min_max_scaler = preprocessing.MinMaxScaler()
X_minMax = min_max_scaler.fit_transform(X)
(2)零均值化归一化
Z
=
X
−
σ
δ
Z=\frac{X-\sigma}{\delta}
Z=δX−σ
其中
σ
\sigma
σ表示均值,
δ
\delta
δ表示方差
import numpy as np
# 计算均值
arr_mean = np.mean(X)
#计算方差
arr_var = np.var(arr)
#直接计算
arr = np.asarray(X)
for x in arr:
x = float(x - arr.mean())/arr.std()
print x
2 类别性特征
(1)序号编码
就是用序号0、1、2等进行编码
(2)独热编码
就是在如三分类问题时,其编码为[0,0,1]、[0,1,0] 、[1,0,0]。
(3)二进制编码
就是先进行序号编码,然后以二进制码替换。