特征缩放-数据标准化

在面对多维特征问题的时候,要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛

特征缩放思想: 确保这些特征都处在一个相近的范围
特征缩放目的:将所有数字数据放在一个数量级上

直接求解的缺点

• x(1)特征对应权重会比x(2)对应的权重小很多,降低模型可解释性
• 梯度下降时,最终解被数值大的特征所主导,会影响模型精度与收敛速度
• 正则化时会不平等看待特征的重要程度(尚未标准化就进行L1/L2正则化是错误的)

常用的缩放方法:

1.规范化(归一化,Min-Max)特征缩放
归一化特征缩放
通过对数据的每一个纬度值进行重新调节,使得最终的数据向量落在[0,1]区间内。
适用场景:这种归一化方法比较适用数值比较集中的情况,在不涉及距离度量,协方差计算,数据不符合正态分布的时候,可以使用该方法。

2.标准化(z-score标准化)特征缩放
标准化特征缩放
处理后的数据符合标准正态分布。
适用场景:在分类,聚类算法中需要使用距离度量相似性的时候或者使用PCA(协方差分析)技术进行降维的时候,z-score标准化表现更好。

其中μ是平均值,σ是标准差
样本标准差公式(标准差是方差的算术平方根)
样本标准差公式
例:在处理自然图像时,我们获得的像素值在[0,255] 区间中,常用的处理是将这些像素值除以 255,使它们缩放到 [0,1]中

这两种方法的适用场景为:
1.在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。
2.在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,第二种方法(Z-score standardization)表现更好。

例如多变量线性回归,多项式线性回归可使用特征缩放,其代码和单变量线性回归类似,只是训练集数据需要特征缩放

特征缩放Python代码实现:
# 标准特征缩放
mean = np.mean(train_x, 0)  # 求平均值
sigma = np.std(train_x, 0, ddof=1)  # 标准差,ddof=1
train_x = (train_x - mean)/sigma   # 标准特征缩放
# 归一化特征缩放
min_x = np.min(train_x, 0)  # 按列获取最小值
max_x = np.max(train_x, 0)  # 按列获取最大值
train_x = (train_x - min_x)/(max_x - min_x)     #归一化特征缩放

train_x表示训练集数据(特征),特征缩放放在数据拼接之前

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值