第 6 章. 使用 Copilot进行数据 准备
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
多年前,我第一次接触预测建模项目。 该项目由欧洲航天局(ESA)资助,旨在预测船舶航线。这也是我第一次真正接触到涉及历史船舶航线数据的海量数据集。该数据集包含约 8000 万条记录,由两家不同的供应商提供。当时,这个数字对我来说显得无比庞大。这也是我第一次亲手构建实际应用的机器学习模型。
我至今仍清晰记得当时构建的第一个模型版本。我使用约2000万条记录对模型进行训练,随后用剩余的6000万条记录进行测试。结果却是一场彻底的灾难。
首先, 的训练过程耗时超过一个月。但这还不是最糟糕的;模型的预测结果完全失准,根本无法准确识别船只航线。但我并没有放弃。我决定深入挖掘数据,对其进行细致入微的分析,以更深入地理解问题的本质。正是那时,一切开始变得明朗。 我意识到,这两家数据提供商给我的数据几乎完全相同,因此几乎每条记录都是重复的。换句话说,我实际上并没有8000万条记录,而是大约4000万条。随后我又发现了其他问题:数字格式错误、缺失值、某些字段被误判为文本而非数值……问题层出不穷。
于是,我卷起袖子投入工作,对数据集进行了细致入微的清理和预处理。经过全面清理后,最终保留了约400万条有效记录。我利用这些数据训练了模型的新版本,这次它终于奏效了。该模型在预测船舶航线方面表现出了相当高的准确度。
这次经历让我学到了宝贵的一课:在着手进行任何数据分析之前,必须对数据进行妥善的准备和清理。而这正是本章的主题:让您的数据做好准备,随时投入使用。
更具体地说,本章将介绍三种用于数据准备的 技术:
-
去除重复项
-
处理缺失值
-
数据格式化
让我们从第一步开始:去除重复数据。
去除重复项
数据集中的重复项是指在所有列中值完全相同且出现多次的记录。这些重复可能由手动录入错误、系统导入或不一致的数据收集流程引起。
虽然乍看之下重复数据似乎无害,但它们会显著降低数据分析的质量和可靠性,因为它们可能导致以下问题:
- 导致汇总统计数据和总计出现偏差
-
重复数据会人为地虚增计数、总和、平均值和百分比等指标。例如,如果某个销售 ID 因错误而出现两次,总收入数据可能会被高估,每笔交易的平均销售额也会显得高于实际水平。
- 会导致不准确的洞察
-
重复数据会扭曲趋势,给预测模型引入噪声,并导致结果产生偏差。例如,基于交易频率的客户细分可能会因重复条目夸大了客户的活跃度,从而错误地将客户归类。
- 使数据分析复杂化
-
分析师通常依赖某些标识符(如销售 ID)的唯一性来连接表或分组数据。这些字段中的重复数据会导致错误的连接、数据不匹配或聚合结果不明确。
因此,您应删除重复项以维护数据集的完整性及分析结果的可靠性。让我们看看 Copilot 如何协助完成此任务。
请参考与示例产品销售相关的数据集,该数据集可在本书的 GitHub 仓库中获取: 06/product_sales.xlsx (图 6-1)。
图 6-1. 产品销售数据集
每行描述一笔交易。该数据集的列结构如下:
销售 ID-
销售交易的唯一标识符(例如 1001、1002 等)
日期-
交易日期
产品名称-
所售产品的名称(例如:笔记本电脑、鼠标、显示器) ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access