【机器学习与深度学习理论要点】03.特征归一化的概念、特点、方法及应用模型

1)什么是特征归一化
对数值类型的特征做归一化,可以将所有的特征都统一到一个大致相同的数值区间内。

2)为什么要特征归一化

  • 为了消除数据特征之间的量纲影响,使得不同指标之间有可比性。
  • 归一化后加快了梯度下降求最优解的速度。
  • 归一化有可能提高精度。

3)特征归一化常用方法

  • 线性函数归一化:它对原始数据进行线性变换,使结果映射到[0,1]的范围,实现对原始数据的等比缩放。

    其中 X为原始数据, X m a x X_{max} Xmax X m i n X_{min} Xmin分别为数据最大值和最小值。
  • 零均值归一化:它会讲原始数据映射到均值为0,标准差为1的分布上。具体来说, 假设原始特征的均值为 μ、标准差为 σ,那么归一化公式定义为

4)为什么需要对数值型特征做归一化

  • 我们不妨借助随机梯度下降的实例来说明归一化的重要性。假设有两种数值型特征, X 1 X_1 X1的取值范围为[0,1] , X 2 X_2 X2的取值范围为[0, 3],于是可以构造一个目标函数符合图 ( a )中的等值图。
  • 在学习速率相同的情况下, X 1 X_1 X1 的更新速度会大于 X 2 X_2 X2 , 需要较多的迭代才能找到最优解。如果将 X 1 X_1 X1 X 2 X_2 X2 归一化到相同的数值区间后,优化目标的等值图会变成图(b )中的圆形, X 1 X_1 X1 X 2 X_2 X2 的更新速度变得更为一致,容易更快地通过梯度下降找到最优解 。

5)归一化处理实用模型

  • 应用归一化的模型。在实际应用中,通过梯度下降求解的模型通常是需要归一化的,包括线性回归,逻辑回归,支持向量机、神经网络等模型。
  • 不使用归一化的模型,如决策树。

6)归一化实现

def standardize(X):
    """特征标准化处理
    Args:
        X: 样本集
    Returns:
        标准后的样本集
    """
    m, n = X.shape
    # 归一化每一个特征
    for j in range(n):
        features = X[:,j]
        meanVal = features.mean(axis=0)
        std = features.std(axis=0)
        if std != 0:
            X[:, j] = (features-meanVal)/std
        else
            X[:, j] = 0
    return X
 
def normalize(X):
    """Min-Max normalization     sklearn.preprocess 的MaxMinScalar
    Args:
        X: 样本集
    Returns:
        归一化后的样本集
    """
    m, n = X.shape
    # 归一化每一个特征
    for j in range(n):
        features = X[:,j]
        minVal = features.min(axis=0)
        maxVal = features.max(axis=0)
        diff = maxVal - minVal
        if diff != 0:
           X[:,j] = (features-minVal)/diff
        else:
           X[:,j] = 0
    return X
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YEGE学AI算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值