新手村:数据预处理-特征缩放

打印 上一主题 下一主题

主题 993|帖子 993|积分 2981

新手村:数据预处理-特征缩放


   特征缩放(Feature Scaling)是数据预处理中的一个紧张步调,特别是在应用某些呆板学习算法时。特征缩放可以使不同标准的特征具有雷同的量级,从而进步模型训练的效率和性能。常见的特征缩放方法包罗标准化(Standardization)和归一化(Normalization)。
  常见的特征缩放方法


  • 标准化(Standardization)

    • 将特征转换为均值为0,标准差为1的标准正态分布。
    • 公式:                                                               x                                     ′                                              =                                                             x                                        −                                        μ                                                  σ                                                      x' = \frac{x - \mu}{\sigma}                           x′=σx−μ​

      •                                                                            x                                           ′                                                                x'                                 x′ 是缩放后的特征值
      •                                                             x                                                  x                                 x 是原始特征值
      •                                                             μ                                                  \mu                                 μ 是特征的均值
      •                                                             σ                                                  \sigma                                 σ 是特征的标准差


  • 归一化(Normalization)

    • 将特征缩放到一个特定范围(通常是[0, 1]或[-1, 1])。
    • 最常用的归一化方法是Min-Max缩放:

      • 公式:                                                                           x                                           ′                                                      =                                                                       x                                              −                                                               x                                                 min                                                                                                           x                                                 max                                                              −                                                               x                                                 min                                                                                               x' = \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}}                                 x′=xmax​−xmin​x−xmin​​

        •                                                                                        x                                                 ′                                                                          x'                                       x′ 是缩放后的特征值
        •                                                                       x                                                          x                                       x 是原始特征值
        •                                                                                        x                                                 min                                                                          x_{\text{min}}                                       xmin​ 和                                                                                        x                                                 max                                                                          x_{\text{max}}                                       xmax​ 分别是特征的最小值和最大值



特征缩放的应用场景



  • 必要特征缩放的算法

    • 线性回归、逻辑回归、支持向量机(SVM)、K近邻(KNN)、神经网络等。
    • 这些算法对特征的标准敏感,特征缩放可以加速收敛速度并进步模型性能。

  • 不必要特征缩放的算法

    • 决议树、随机森林等基于树的算法,这些算法不依靠于特征的标准。

示例代码

以下是一个使用Python和scikit-learn库举行特征缩放的示例代码:
  1. import pandas as pd
  2. import numpy as np
  3. from sklearn.preprocessing import StandardScaler, MinMaxScaler
  4. # 创建一个示例数据集
  5. data = {
  6.     'A': [1, 2, 3, 4, 5],
  7.     'B': [100, 200, 300, 400, 500],
  8.     'C': [0.1, 0.2, 0.3, 0.4, 0.5]
  9. }
  10. df = pd.DataFrame(data)
  11. print("原始数据:")
  12. print(df)
  13. # 标准化
  14. scaler_standard = StandardScaler()
  15. df_standardized = pd.DataFrame(scaler_standard.fit_transform(df), columns=df.columns)
  16. print("\n标准化后的数据:")
  17. print(df_standardized)
  18. # 归一化(Min-Max缩放)
  19. scaler_minmax = MinMaxScaler()
  20. df_normalized = pd.DataFrame(scaler_minmax.fit_transform(df), columns=df.columns)
  21. print("\n归一化后的数据:")
  22. print(df_normalized)
复制代码
输出结果解释

原始数据

  1. 原始数据:
  2.      A      B    C
  3. 0    1    100  0.1
  4. 1    2    200  0.2
  5. 2    3    300  0.3
  6. 3    4    400  0.4
  7. 4    5    500  0.5
复制代码
标准化后的数据

  1. 标准化后的数据:
  2.           A         B         C
  3. 0 -1.414214 -1.414214 -1.414214
  4. 1 -0.707107 -0.707107 -0.707107
  5. 2  0.000000  0.000000  0.000000
  6. 3  0.707107  0.707107  0.707107
  7. 4  1.414214  1.414214  1.414214
复制代码
归一化后的数据

  1. 归一化后的数据:
  2.      A    B    C
  3. 0  0.0  0.0  0.0
  4. 1  0.25 0.25 0.25
  5. 2  0.5  0.5  0.5
  6. 3  0.75 0.75 0.75
  7. 4  1.0  1.0  1.0
复制代码
总结表格

方法描述适用场景长处缺点标准化将特征转换为均值为0,标准差为1的标准正态分布。线性回归、逻辑回归、SVM、KNN、神经网络等。不受数据范围影响,适用于大多数算法。对非常值较为敏感,大概导致非常值的影响被放大。归一化(Min-Max缩放)将特征缩放到一个特定范围(通常是[0, 1])。必要将数据限制在特定范围内的情况。数据范围固定,适用于必要严酷控制输出范围的场景。受数据范围影响较大,对非常值敏感,大概导致信息丢失。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表