郭震 AI公众号:郭震AI

6 数据预处理之数据转换与归一化

发布日期:

最近更新:

分类: 数据挖掘小白

预计阅读: 4 分钟

阅读次数: 0

预计阅读4 分钟
结构重点4 个
图文要点6 张
正文规模1.5k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 4 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

数据预处理之数据转换与归一化结构图查看大图
数据预处理之数据转换与归一化结构图

数据挖掘不是只跑算法,而是从数据准备、模式发现到结果解释的一整条流程。阅读时可以按「数据转换 -> 归一化 -> 数据清洗 -> 特征探索」建立结构,再回到正文里的代码、案例或指标做验证。

数据预处理之数据转换与归一化核对图查看大图
数据预处理之数据转换与归一化核对图

读完后,用一个真实小任务复查:输入是什么,处理环节在哪里,输出是否可验收;失败时先查「数据转换」,再查「归一化」。

在数据挖掘的过程中,数据预处理是一个不可或缺的环节。我们在上一篇中讨论了如何处理缺失值,确保数据集中每一个样本都有尽可能完整的信息。这一部分将重点介绍数据预处理中的一个重要方面——数据转换与归一化。我们会探讨这些步骤如何帮助提高后续建模的效果,并结合实例和代码更好地理解这些概念。

数据转换

数据转换是指对数据进行某种形式的变换,以便使其更加适合于模型的训练或分析。常见的转换操作包括:

数据转换归一化判断卡查看大图
数据转换归一化判断卡

做数据转换与归一化时,先看字段量纲、数值范围、异常值和模型需求。尺度不一致会让结果偏向大数值字段。

  1. 对数变换:通常用于处理右偏分布的数值特征,能够减小极端值的影响。

    例如,考虑某企业的收入数据,其分布可能高度右偏。这时,我们可以使用对数变换:

    X=log(X+1)X' = \log(X + 1)

    这里的 '+1' 是为了避免对数零不能计算的问题。

    import pandas as pd
    import numpy as np
    
    # 创建数据框
    df = pd.DataFrame({'收入': [5000, 10000, 150000, 2000000]})
    
    # 进行对数变换
    df['收入_log'] = np.log(df['收入'] + 1)
    print(df)
    
  2. 平方根变换:另一种常见的处理偏态数据的方法,尤其对于数据都为正的情况。

    X=XX' = \sqrt{X}

  • 标准化:标准化是对特征进行线性变换,使其均值为 0,方差为 1,这一过程使得不同尺度的特征可以比较。

    X=XμσX' = \frac{X - \mu}{\sigma}

    其中 μ\mu 是特征的均值,σ\sigma 是特征的标准差。

    from sklearn.preprocessing import StandardScaler
    
    # 示例数据
    data = np.array([[1, 2], [2, 3], [3, 4]])
    scaler = StandardScaler()
    standardized_data = scaler.fit_transform(data)
    print(standardized_data)
    
  • 归一化

    与标准化相似,归一化是另一种常用的数据预处理技术,特别适用于在一个固定范围内缩放特征。归一化的常见方法是 Min-Max 归一化,它将特征缩放到 [0, 1] 区间。

    数据挖掘阅读地图卡查看大图
    数据挖掘阅读地图卡

    阅读《数据预处理之数据转换与归一化》前,可以先用配图确认主线;读完后再检查哪些步骤能直接操作,哪些还需要补资料。

    X=XXminXmaxXminX' = \frac{X - X_{min}}{X_{max} - X_{min}}

    这种方式尤其适用于需要保持原特征分布形态的情况,并且在使用一些基于距离的算法(如 KNN、SVM 等)时,归一化会显著提高模型的表现。

    from sklearn.preprocessing import MinMaxScaler
    
    # 示例数据
    data = np.array([[1, 2], [2, 3], [3, 4]])
    scaler = MinMaxScaler()
    normalized_data = scaler.fit_transform(data)
    print(normalized_data)
    

    实际案例

    假设我们在开展客户离职预测的项目,在数据集中我们有多种特征,例如客户的年龄、年收入、账户余额等。这些特征的取值范围与数据分布差异较大,直接投入模型可能导致模型的性能不佳。因此,适当地进行数据转换与归一化是非常必要的。

    1. 数据转换:我们首先对年收入进行对数变换,以便减小其与其它特征的差异。
    2. 数据归一化:我们使用 Min-Max 归一化对年龄和账户余额进行处理,这样做能够保证每个特征的数值范围更为一致。

    下面是一个完整的数据预处理示例:

    import pandas as pd
    import numpy as np
    from sklearn.preprocessing import MinMaxScaler
    
    # 创建客户数据集
    data = pd.DataFrame({
        '客户ID': [1, 2, 3, 4],
        '年龄': [25, 45, 35, 23],
        '年收入': [5000, 10000, 150000, 2000000],
        '账户余额': [100, 1500, 3000, 50000]
    })
    
    # 年收入对数变换
    data['年收入_log'] = np.log(data['年收入'] + 1)
    
    # 对年龄和账户余额进行 Min-Max 归一化
    scaler = MinMaxScaler()
    data[['年龄', '账户余额']] = scaler.fit_transform(data[['年龄', '账户余额']])
    
    print(data)
    
    数据预处理之数据转换与归一化应用复盘卡查看大图
    数据预处理之数据转换与归一化应用复盘卡

    学完《数据预处理之数据转换与归一化》后,不妨换一个自己的场景试一次,重点观察输入、处理和输出是否能对应起来。

    数据预处理之数据转换与归一化应用检查卡查看大图
    数据预处理之数据转换与归一化应用检查卡

    如果想把《数据预处理之数据转换与归一化》用到自己的任务里,可以先缩小场景,只验证一个最关键的判断点。

    小结

    在这部分中,我们详细介绍了数据转换与归一化的概念以及常用的方法。通过对数据进行适当的变换与缩放,能够让后续的模型训练更加高效,提高数据的可预测性,同时也能够减少不同特征之间的干扰。在数据处理完成后,我们可以进入下一步,进行探索性数据分析的描述性分析,以深入理解数据的特征与趋势,为模型选择提供支持。

    接下来,我们将探讨探索性数据分析之描述性分析的内容。

    继续阅读

    从这篇继续找到相关教程

    AI 教程总索引

    常见问题

    读前先确认这三点

    数据预处理之数据转换与归一化适合谁读?

    这是 数据挖掘入门 系列第 6 / 18 篇,适合正在学习数据挖掘入门,并且需要把概念落到操作步骤或判断标准里的读者。

    读这篇数据挖掘入门教程要多久?

    按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

    这篇文章里的图文节点怎么用?

    正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

    分享文章

    转发到常用平台

    微信/朋友圈可先复制链接

    相关教程

    AI 教程总索引

    继续阅读

    继续找到相关 AI 教程

    返回栏目

    Reader Messages

    读者留言

    有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

    最多 800 字

    为了防刷,每条留言会做长度、链接数量和提交频率限制。

    0/800

    留言列表

    0
    正在加载留言...