【愚公系列】《数据可视化分析与实践》006-数据预处理(数据预处理概述)

举报
愚公搬代码 发表于 2026/03/11 08:17:21 2026/03/11
【摘要】 💎【行业认证·权威头衔】✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者🏆【荣誉殿堂】🎖 连续三年蝉联"华为云十佳博主"(2022-2024)🎖 双冠加冕CSDN"年度博客之星TOP...

💎【行业认证·权威头衔】
✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家
✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主
✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者

🏆【荣誉殿堂】
🎖 连续三年蝉联"华为云十佳博主"(2022-2024)
🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)
🎖 十余个技术社区年度杰出贡献奖得主

📚【知识宝库】
覆盖全栈技术矩阵:
◾ 编程语言:.NET/Java/Python/Go/Node…
◾ 移动生态:HarmonyOS/iOS/Android/小程序
◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙
◾ 游戏开发:Unity3D引擎深度解析

🚀前言

多样的数据源在短时间内为人们提供了海量的数据,但是这些数据非常容易受到噪声、丢失和数据格式不一致的影响。低质量的数据将干扰数据分析与可视化工作。数据科学家和工程师们通过大量的理论与实践,提出了很多数据预处理的技术,这些技术能帮助我们更好地挖掘数据中的知识和信息,本章将介绍这些数据预处理技术。

🚀一、数据预处理概述

在数据分析和挖掘的完整流程中,数据预处理是连接原始数据与有价值洞见之间至关重要、不可或缺的桥梁。它被广泛认为是整个过程中最耗时、最繁重,但也最关键的步骤。未经处理的原始数据往往像未经雕琢的璞玉,其内在价值被各种“杂质”所掩盖。数据预处理的目的,正是通过一系列技术手段,将这些“脏乱”的原始数据转化为高质量、规范化、适用于后续分析的干净数据集

🔎1.“混乱”的数据

数据的质量直接决定了其满足特定分析或应用需求的能力。高质量的数据应具备准确性、完整性、一致性、时效性和可信性等特征。然而,现实世界中的数据往往远非理想。

设想一个场景:你是一位电商企业的数据分析经理,负责分析公司各区域的销售数据以制定下一季度的营销策略。你从公司的数据库和数据仓库中提取了几个关键属性:商品名称价格销售数量销售日期客户地区。然而,在初步浏览数据时,你发现了诸多问题:

  • 缺失值:部分商品的价格销售数量字段为空。
  • 异常值:出现了几笔交易,其销售数量为负值或远超库存的极大值。
  • 错误记录:订单中混入了公司从未进货的商品名称
  • 信息不足:数据库没有记录交易时的价格是否为促销价格,这使得价格分析变得模糊。
  • 不一致性:同一客户的地区信息在不同订单中记录为“北京”和“北京市”。

这些不准确不完整不一致的数据是真实业务数据库甚至数据仓库中的常态,我们通常称之为 “脏数据”

造成数据混乱的常见原因包括

  • 数据采集错误:传感器故障、人工录入疏忽或恶意提交错误信息、网络传输丢包或错误。
  • 数据集成问题:在合并多个数据源时,由于命名规范、编码格式或计量单位不统一而产生冲突。
  • 业务规则变更:数据库 schema 随时间演变,新旧数据格式并存。
  • 处理过程漏洞:在数据更新、删除或备份过程中,未能保持关联数据的一致性(例如,删除用户后未清除其关联订单的引用)。

表3-1展示了一个存在典型数据问题的简单数据集示例:

表3-1 存在数据问题的原始数据示例

Date Temperature(℃) Windspeed(m/s) Event
2017/4/1 17.6 3 Rain
2017/4/2 17.4 2 Sunny
2017/4/3 64.3 NaN Sunny
2017/4/4 17.5 5 Cloudy
2017/4/5 18.2 NaN NaN
4/6/2017 18.3 4 Cloudy
2017/4/7 18.1 3 Sunny
2017/4/8 17.2 1 Rain
2017/4/9 27.2 2 Rain
2017/4/10 18.2 3 Sunny

因此,面对“混乱”的真实数据,必须通过系统性的数据预处理技术来提升数据质量。 这一过程旨在消除“噪声”、修补漏洞、统一标准,从而确保后续的数据分析和挖掘过程更加高效,产出的结果更加准确、可靠和可信。

🔎2.数据预处理的主要环节

数据预处理是一个系统性的工程,通常包含以下几个核心环节,它们共同协作,将原始数据转化为分析就绪的形态。

🦋2.1 数据清洗

数据清洗是数据预处理的第一步,也是最为基础的环节。其目标是检测并处理数据中的错误、异常和不一致,即直接清理“脏数据”。

  • 处理缺失值:对于表3-1中WindspeedEventNaN(空值),可以采用删除记录、人工填写、使用全局常量填充、使用属性的中心趋势度量(如均值、中位数)填充,或基于其他属性通过预测模型估算等方法。
  • 平滑噪声与处理异常值:对于表3-1中2017/4/3的异常温度64.3℃,需要通过分箱、回归或聚类等方法识别,并根据业务逻辑决定是修正还是剔除。
  • 纠正不一致性:检测并统一数据格式和编码。例如,统一表3-1中的日期格式(将4/6/2017改为2017/4/6),或将“Rain”、“rain”、“小雨”等统一为标准化值。

🦋2.2 数据集成

在现实中,分析所需的数据往往分散在不同的数据库、文件或系统中。数据集成旨在将多个来源、格式、语义的数据合并成一个一致的数据存储(如数据仓库)。

  • 模式集成:解决不同数据源之间的实体命名冲突(如CustomerID vs Cust_ID)和属性值冲突(如长度单位用“米”还是“英尺”)。
  • 实体识别:识别来自不同数据源的同一现实实体(例如,判断两个不同系统的客户记录是否指向同一个人)。
  • 冗余与相关性分析:检测并处理重复的属性和记录。如果一个属性可以从其他属性推导出来(如“年龄”可由“出生日期”和当前日期计算),则该属性可能是冗余的。

🦋2.3 数据规约

当数据集过于庞大时,直接对其进行分析和挖掘会面临巨大的计算和存储开销,且可能遭遇“维度灾难”。数据规约技术旨在缩小数据集的规模,但尽可能保持原数据的完整性和分析结果的准确性。

  • 维度规约(降维):减少所考虑的属性个数。常用方法包括主成分分析(PCA)、线性判别分析(LDA)以及通过特征选择(如过滤法、包装法、嵌入法)筛选出最具代表性的特征子集。
  • 数量规约:减少数据记录的数量。常用方法包括数据立方体聚合、抽样(如简单随机抽样、分层抽样)以及用更紧凑的表示形式(如聚类、直方图)来替代原始数据。

🦋2.4 数据转换

数据转换是将数据转换为更适合特定数据挖掘任务的形式。这通常是算法驱动的,目的是提升模型性能和结果的可解释性。

  • 标准化/归一化:将不同量纲、范围的属性值按比例缩放,使之落入一个特定的区间(如[0,1])或符合标准正态分布。这是为了解决类似“年龄(0-100)和年收入(0-1,000,000)数值范围差异巨大,导致在距离计算中年收入主导结果”的问题。
  • 离散化:将连续型数据划分为若干区间(“分箱”),用区间标签替代具体数值。例如,将“年龄”离散化为“青年”、“中年”、“老年”。这有助于某些算法(如决策树)的运行,并能简化数据。
  • 概念分层:将低层次的概念用更高层次、更概括的概念替换。例如,将具体的“日期”属性泛化为“季度”或“年份”。

总结而言,数据预处理的这四个主要环节——清洗、集成、规约、转换——并非总是严格顺序执行,在实际项目中它们常常交织、迭代进行。通过这一系列细致的工作,我们能够将原始、混乱的数据湖泊,梳理成清澈、规整、富含价值的数据水源,为后续深入的数据分析和智能挖掘提供坚实的基础。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。