机器学习之归一化

1.目的

1.1损失函数求解问题

  • 线性回归Loss函数梯度公式
参数含义
θ \theta θ函数参数
α \alpha α学习率
x j i x^i_{j} xjix:数据集,i:样本,j:特征 【数据集的每一行是一条样本,每一列是一个特征】
z ( θ j ) z_{(\theta_{j})} z(θj)预测值
y i y^i yi真实值

θ j : = θ j − α ∗ ∂ L o s s ( θ ) ∂ θ j : = θ j − α ∗ ( z ( θ j ) − y i ) ∗ x j i \begin{aligned} \theta_{j}&:=\theta_{j}-\alpha*\frac{\partial Loss_{(\theta)}}{\partial \theta_{j}} \\&:=\theta_{j}-\alpha* (z_{(\theta_{j})}-y^i)*x^i_{j} \end{aligned} θj:=θjαθjLoss(θ):=θjα(z(θj)yi)xji

  • 对参数求偏导【求梯度】如下:
    θ 1 : = θ 1 − α ∗ ( z ( θ 1 ) − y i ) ∗ x 1 i θ 2 : = θ 2 − α ∗ ( z ( θ 2 ) − y i ) ∗ x 2 i \begin{aligned} \theta_{1}&:=\theta_{1}-\alpha* (z_{(\theta_{1})}-y^i)*x^i_{1} \\\theta_{2}&:=\theta_{2}-\alpha* (z_{(\theta_{2})}-y^i)*x^i_{2} \end{aligned} θ1θ2:=θ1α(z(θ1)yi)x1i:=θ2α(z(θ2)yi)x2i

    • 对于损失函数初始参数时,参数值期望是均值为0方差1的正太分布随机在0附近的,所以每个初始参数值大小是差不多的。
    • 根据公式可知 α ∗ ( z ( θ 1 ) − y i ) \alpha* (z_{(\theta_{1})}-y^i) α(z(θ1)yi)值也差不多,即参数迭代的快慢就由 x j i x^i_{j} xji【特征值的大小】决定的
    • 假设 x 1 i x^i_{1} x1i特征为年龄, x 2 i x^i_{2} x2i特征为收入,由于年龄的取值范围远小于收入, x 1 i x^i_{1} x1i< x 2 i x^i_{2} x2i,则 θ 2 \theta_{2} θ2迭代速度快于 θ 1 \theta_{1} θ1,导致 θ 2 \theta_2 θ2达到最优解时,需要等待 θ 1 \theta_1 θ1迭代到最优解
  • 图像说明
    在这里插入图片描述

    • 在机器学习算法模型中,需要根据损失函数(Loss)求梯度根据损失求最优解参数 θ \theta θ
    • 如图,对于loss损失的最优解在中心点
    • 迭代参数路线如图蓝色线所示,当 θ 2 \theta_2 θ2迭代到最优解时, θ 1 \theta_1 θ1距离最优解的距离还有一段距离,导致 θ 2 \theta_2 θ2达到最优解时,需要等待 θ 1 \theta_1 θ1迭代到最优解,会导致 θ 1 \theta_1 θ1在最优解的位置慢慢震荡,不能同时获取最优解

1.2 归一化目的

在这里插入图片描述

  • 归一化可以把数据统一到某个范围,达到梯度下降求参数迭代速度一致,统一每个特征的范围,即无量纲化【就是去单位】
  • 如图,对参数进行归一化后, θ 1 \theta_1 θ1 θ 2 \theta_2 θ2迭代速度一致,可以同时求得最优解,同时收敛,减少迭代次数,模型速度加快

2. 归一化

2.1 最大值最小值归一化

参数含义
j特征
i样本
x j m i n x^{min}_{j} xjmin每个特征的最小值
x j m a x x^{max}_{j} xjmax每个特征的最大值
x i , j x_{i,j} xi,j特征的每个样本值

x i , j = x i , j − x j m i n x j m a x − x j m i n \begin{aligned} x_{i,j} &= \frac{x_{i,j}-x^{min}_{j}}{x^{max}_{j}-x^{min}_{j}} \end{aligned} xi,j=xjmaxxjminxi,jxjmin

  • 优点
    • 会将数据归一化到0-1之间
  • 缺点
    • 容易受到噪点数据的影响,公式分母是最大值与最小值的差
      • 如果存在最大值噪点,会导致分母值变大,大部分数据趋向于0,最大值噪点的值趋向于1
      • 如果存在最小值噪点,会导致分母值变大,大部分数据趋向于1,最小值噪点的值趋向于0
        from sklearn.preprocessing import MinMaxScaler
        
        data=[[1],[2],[3],[1000]]
        scaler=MinMaxScaler()
        data_fit=scaler.fit_transform(data)
        print(data_fit)
        # [[0.      ],[0.001001],[0.002002], [1.      ]]
        data=[[1],[1100],[1020],[1000]]
        scaler=MinMaxScaler()
        data_fit=scaler.fit_transform(data)
        print(data_fit)
        #[[0.        ],[1.        ],[0.92720655],[0.90900819]]
        
    • 更新路线可能不是最优路线在这里插入图片描述
      • 当我们使用最大值最小值归一化时,会将数据集的值归一化到0-1之间,导致数据的值都为正
      • 导致参数只能同时增大或减小 ,但是每个参数的关系并不都是正相关性
      • 如图,我们希望参数 w t w_t wt迭代到 w ∗ w_* w,我们发现 w 2 w_2 w2迭代过程中在增大, w 1 w_1 w1迭代过程中在减小,由于我们将数值都归一化为正数,只能根据图中黑线迭代得到最优参数,不能通过最优路径【红色线】迭代,导致迭代次数增加

2.2 标准化

参数含义
x j m e a n x^{mean}_{j} xjmean特征均值
s t a n d a r d d e v i a t i o n standard \quad deviation standarddeviation特征方差

x i , j = x i , j − x j m e a n s t a n d a r d d e v i a t i o n \begin{aligned} x_{i,j} &= \frac{x_{i,j}-x^{mean}_{j}}{standard \quad deviation} \end{aligned} xi,j=standarddeviationxi,jxjmean

  • 公式分子为均值归一化,使数据有正有负,可以得到最优的迭代路线,使更新尽可能沿着最优解路径去。
  • 公式分子为方差归一化,可以减小噪点数据的影响。
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
机器学习中需要进行归一化的情况取决于具体的算法。一般来说,对于一些算法如SVM、逻辑回归、神经网络、KNN和线性回归等,需要进行归一化处理。这是因为在这些算法中,特征值的尺度差异很大时,可能会对模型的性能产生不良影响。归一化可以将特征值映射到一个统一的范围内,以确保不同特征之间的权重是平衡的,避免某些特征对模型的影响过大。此外,归一化还可以加速梯度下降的收敛过程,减少迭代次数,提高训练效率。然而,对于树形结构的算法,如决策树和随机森林等,并不需要进行归一化处理。这是因为这些算法不关心变量的具体值,而是关心变量之间的条件概率和分裂点的位置。对于树模型而言,样本点的数值缩放不会影响分裂点的位置,也不会对模型的结构造成影响。另外,树模型不需要进行梯度下降,因为树模型是阶跃的,而阶跃是不可导的,也不需要进行归一化处理。因此,在机器学习中,是否需要进行归一化处理要根据具体的算法和数据情况来决定。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【深度学习/机器学习】为什么要归一化归一化方法详解](https://blog.csdn.net/qq_51392112/article/details/129091683)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [机器学习哪些算法需要归一化?](https://blog.csdn.net/weixin_43593330/article/details/105751132)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

荼靡~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值