为什么要进行标准化预处理?
在机器学习的分类问题中,不同特征的数量级大小不一样,如果一个特征的数量级很大,就可能会湮没其他特征对于分类决策的影响。
所以需要对每个特征进行标准化预处理,使其变成均值为0,方差为1的数据。
标准化预处理公式:
标准化预处理函数
在sklearn库中,有对于特征的标准化函数
需要注意的是,此函数预处理的数据为特征按列存储的形式,如果需要预处理的数据是按行存储的,则不能使用这个函数
对二维按列存储的数据集进行标准化预处理
from sklearn.preprocessing import StandardScaler
data = StandardScaler().fit_transform(iris.data)
对一维列表进行标准化预处理
import numpy as np
#求出 x 的平均值
mean = np.mean(x)
#求出 x 的标准差
std = np.std(x)
#用来存储预处理之后的 x
prex = []
#对 x 进行预处理
for i in range(len(x)):
prex.append((x[i] - mean) / std)