《呆板学习》——数据标准化(0~1标准化,z标准化)

打印 上一主题 下一主题

主题 916|帖子 916|积分 2752

数据标准化

一、什么是标准化



  • 数据标准化是一种数据预处置惩罚技能,用于将数据按照肯定的规则进行变更,使得不同特性或变量具有可比性和一致性。
  • 作用

    • 消除量纲影响
      在现实数据集中,不同的特性可能具有不同的单位和数目级。比方,在一个包含身高(单位:厘米)和体重(单位:千克)的数据集中,身高的数值范围可能是 150 - 200,而体重的数值范围可能是 40 - 100。如果直接使用这些原始数据进行数据分析,如聚类或距离计算,身高的数值可能会因为其较大的数目级而在计算中占据主导地位,从而掩饰体重特性的重要性。数据标准化可以将这些不同量纲的数据转换到同一尺度上。
    • 提拔模子性能
      在呆板学习和数据发掘中,许多算法(如 K - 近邻算法、支持向量机等)的性能依赖于数据的分布情况。标准化后的数据可以使模子更容易收敛,提高模子的准确性和稳定性。比方,在神经网络的训练过程中,标准化的数据有助于梯度下降算法更快地找到最优解,减少训练时间并且制止梯度消散或爆炸等题目。
    • 方便数据比较和融合
      当需要将来自不同数据源的数据进行归并大概比较时,数据标准化是必不可少的。比方,在金融范畴,要整合不同银行的客户名誉评分数据,这些数据可能由于银行采用的不同评分标准和尺度而无法直接比较。通过标准化,可以将这些数据转换到统一的标准下,便于进行综合评估。

  • 优点和缺点

    • 优点

      • 提高模子性能
        在呆板学习算法中,如线性回归、神经网络等,标准化后的数据可以使模子更快地收敛。以梯度下降算法为例,标准化可以或许确保不同特性在更新参数时具有相似的步长,制止因某些特性的数值范围过大而导致梯度下降路径曲折,从而加速模子训练过程。比方,在猜测房价的线性回归模子中,如果房屋面积(单位:平方米)和房间数目这两个特性没有进行标准化,房屋面积的数值范围可能远大于房间数目,这会使得模子在训练时太过关注房屋面积这个特性,而标准化后可以让模子更平衡地学习每个特性的重要性,提拔猜测准确性。
      • 增强数据可比性
        标准化后的数据可以或许方便地比较不同特性之间的相对差异。比方,在比较门生的各科结果时,语文结果(满分 150 分)和数学结果(满分 100 分)的原始分数不具有直接可比性。通过标准化,可以将它们转换到相同的尺度下,比如 Z - score 标准化后,就能更直观地看出门生在这两门学科中的相对位置,是高于平均水平照旧低于平均水平,进而综合评估门生的学习情况。
      • 便于数据融合和集成
        当整合来自多个数据源的数据时,标准化可以消除不同数据源由于量纲、数据分布等差异带来的影响。比方,在医疗数据整合中,不同医院的检查指标可能有不同的单位和正常范围。通过标准化,这些数据可以被整合到一个统一的框架下,便于后续的数据分析,如构建疾病诊断模子或进行康健风险评估。
      • 提拔聚类和分类效果
        在聚类算法(如 K - Means 聚类)和分类算法(如支持向量机)中,标准化有助于提高算法的准确性。以 K - Means 聚类为例,标准化后的数据可以使聚类中心的初始化更加公道,并且在计算样本与聚类中心的距离时,可以或许更准确地反映样本之间的相似性。如果不进行标准化,某些特性可能会因为数值较大而主导聚类结果,导致聚类效果不佳。

    • 缺点

      • 丢失原始数据信息
        在标准化过程中,数据的原始尺度和分布信息会部门丢失。比方,通过最小 - 最大标准化将数据映射到 [0, 1] 区间后,无法直接从标准化后的数据中看出原始数据的具体数值范围。对于一些需要相识原始数据真实情况的应用场景,如数据审计或对数据原始分布特性有严格要求的统计分析,这可能会带来不便。
      • 依赖数据分布假设
        某些标准化方法对数据分布有肯定的假设。比方,Z - score 标准化假设数据是正态分布大概近似正态分布。如果数据现实不符合这个假设,标准化后的结果可能不能很好地到达预期效果。比如,对于具有明显偏态分布的数据,Z - score 标准化可能会扭曲数据的相对关系,使得在后续的数据分析中产生误导。
      • 增长计算成本和时间
        对于大规模数据集,进行数据标准化需要额外的计算来确定标准化参数(如均值、标准差、最大值、最小值等),并且需要对每个数据点进行转换操作。这会增长数据预处置惩罚的时间和计算资源消耗。比方,在处置惩罚包含数百万条记录的数据堆栈中的数据时,数据标准化可能会成为整个数据处置惩罚流程中的一个性能瓶颈。


二、常用标准化

0~1标准化


   公式中x为原始数据,min(x)为一组特性值的最小值,max(x)为最大值。

0~1标准化的范围就像它的名字一样在[0-1]的范围。
  在python中,可以使用sklearn.preprocessing.MinMaxScaler类来实现0~1标准化
例子:
  1. import numpy as np
  2. from sklearn.preprocessing import MinMaxScaler
  3. # 创建一个包含随机数值的二维数组,模拟特征数据集
  4. # 假设有5个样本,每个样本有3个特征
  5. np.random.seed(0)  # 抛出一个随机种子,为了让后面每次运行时生成的随机数值,都与第一次相同
  6. data = np.random.rand(5, 3) * 10  # 生成一个5x3的数组,每个元素的值在0到10之间
  7. print("原始数据:")
  8. print(data)
  9. # 使用MinMaxScaler进行归一化
  10. min_max_scaler = MinMaxScaler()
  11. data_min_max = min_max_scaler.fit_transform(data)
  12. print("\nMinMaxScaler归一化后的数据:")
  13. print(data_min_max)
  14. """
  15. 原始数据:
  16. [[5.45374108 6.36285388 6.89790337]
  17. [4.22031847 9.29446541 1.72869836]
  18. [6.29878395 8.68105164 8.78970701]
  19. [7.65555541 3.81574752 1.61238819]
  20. [9.50247279 8.58981375 9.87706441]]
  21. MinMaxScaler归一化后的数据:
  22. [[0.23350749 0.4649092  0.63953082]
  23. [0.         1.         0.01407317]
  24. [0.39348822 0.88803699 0.86843315]
  25. [0.65034771 0.         0.        ]
  26. [1.         0.87138384 1.        ]]
  27. """
复制代码
z标准化



  • Z标准化也称为Z-score标准化或标准差标准化是一种数据预处置惩罚技能,用于将数据转化为均值为0,标准差为1的标准正态分布。这种方法在数据分析和呆板学习中非常常见,特别是当不同特性具有不同的尺度或单位时,通过Z标准化可以使这些特性在相同的尺度上进行比较和处置惩罚。

   

  • x 是原始数据。
  • μ 是全部样本数据的均值。
  • σ 是全部样本数据的标准差。
  • z 是转化后的数据,即Z分数。
  

  • 计算步调
   

  • 计算均值:起首,需要计算给定数据集的全部样本的均值(μ)。
  • 计算标准差:然后,计算数据集的标准差(σ),它衡量了数据点与均值的偏差水平。
  • 应用公式:末了,使用Z标准化的公式将每个原始数据点转换为Z分数。
  

  • 在python中,可以使用sklearn.preprocessing.StandardScaler类的fit_transform方法来实现z标准化。
    例子:
  1. import numpy as np
  2. from sklearn.preprocessing import StandardScaler
  3. # 创建一个包含随机数值的二维数组,模拟特征数据集
  4. # 假设有5个样本,每个样本有3个特征
  5. np.random.seed(0)  # 抛出一个随机种子,为了让后面每次运行时生成的随机数值,都与第一次相同
  6. data = np.random.rand(5, 3) * 10  # 生成一个5x3的数组,每个元素的值在0到10之间
  7. print("原始数据:")
  8. print(data)
  9. # 使用StandardScaler进行标准化
  10. scaler_Z = StandardScaler()
  11. data_scaled = scaler_Z.fit_transform(data)
  12. print("\nStandardScaler标准化后的数据:")
  13. print(data_scaled)
  14. """
  15. 原始数据:
  16. [[2.91800254 3.2360031  9.66065598]
  17. [7.47746281 4.00855141 2.03950532]
  18. [9.8433753  8.32004568 4.55501016]
  19. [6.00990907 9.91191497 4.61528516]
  20. [0.15924446 1.95696181 6.33065699]]
  21. StandardScaler标准化后的数据:
  22. [[-0.69405259 -0.73160863  1.67789759]
  23. [ 0.64479923 -0.48048456 -1.35200705]
  24. [ 1.33953196  0.92100707 -0.35192975]
  25. [ 0.21386292  1.43845911 -0.3279665 ]
  26. [-1.50414152 -1.14737299  0.35400572]]
  27. """
复制代码
三、注意事项



  • 选择适当的方法:根据数据的特性和算法的需求选择符合的数据标准化方法。比方,如果数据集中存在异常值,Z标准化可能会受到影响,而最小-最大标准化则不受影响(但也可能因为异常值而改变缩放范围)。
  • 考虑数据分布:数据标准化会改变数据的原始分布。在解释标准化后的数据时,需要考虑到这一点。
  • 对测试集使用相同的参数:在训练集上进行数据标准化后,应使用相同的均值、标准差(对于Z标准化)或最小值、最大值(对于最小-最大标准化)来标准化测试集。
  • 制止数据泄漏:在现实应用中,需要确保在训练模子之前进行数据标准化,以制止在标准化过程中引入测试集的信息,从而导致数据泄漏。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

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

本版积分规则

王國慶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表