前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据预处理

数据预处理

作者头像
iOSDevLog
发布2019-04-18 16:36:58
1.2K0
发布2019-04-18 16:36:58
举报
文章被收录于专栏:iOSDevLogiOSDevLog

数据预处理(也称为数据准备,但 “预处理” 听起来更像是魔术) 是 迭代过程 的收集,组合,结构化和组织数据,以便将其作为数据可视化,分析和机器学习应用程序的一部分进行分析。

真实世界数据 通常不完整,不一致,缺乏某些行为或趋势,以及很可能包含很多错误。数据预处理是解决此类问题的可靠方法。

这是任何数据科学家或数据工程师的 核心能力 ,你必须 能够在日常工作中操作,清理和构造 你的数据(除了期望这将充分利用你的 日常时间 !) 。

有很多不同的数据类型,它们需要做出 不同的处理 。 像往常一样,我计划让你入门的结构包括 一般概述 ,然后深入了解你可能遇到的每个数据处理情况。

这里 你可以轻松地查看整个过程的端到端全景图。

我们要浏览的概念如下:

  • 不要把数据当玩笑
  • 商业问题
  • 数据分析
  • 谁将落后
  • 从小开始
  • 工具包
  • 数据清理
    • 摆脱额外的空格
    • 选择并处理所有空白单元格
    • 转换值类型
    • 删除重复项
    • 将文本更改为小写 / 大写
    • 拼写检查
    • 处理特殊字符
    • 规范日期
    • 验证丰富数据
    • 数据离散化
    • 特征缩放
    • 数据清理工具
  • 合并数据集和集成
  • 完整性检查
  • 自动化这些无聊的东西!

** 开始吧!**

- 不要把数据当玩笑

首先,数据是王 。在 数据驱动时代 中,有 数据质量问题 意味着在现在和将来为公司损失巨大的价值。所以,尊重你的国王并关心他。最直接的方法是计划和 努力工作 来生成高质量的数据。 你的目标是规划一个预先解决问题的收集数据基础架构。这意味着要非常关心如何规划你的数据库模式(我需要 第三范式 或不? ),如何从传感器(物理或概念) 等收集数据。如果你是从地面建立一个系统,这些都是问题,但你大部分时间都会遇到有人想要解决 可用 数据的现实问题。

- 商业问题

询问 正确的商业问题 很难,但它有关于你解决特定问题 影响最大 的表现。记住,你想 解决问题 ,而不是创造新的问题!

- 数据分析

根据(冰冷的) 维基百科定义 :“数据分析是检查现有信息源(例如数据库或文件)可用数据并收集统计数据和信息数据摘要的过程。“ 所以维基百科巧妙地建议我们用数据来喝咖啡。

在这次非正式会议期间,询问以下数据问题:

  • 你打算解决哪个业务问题? (什么是重要的,什么不是)
  • 你是如何被收集的(有噪音,缺失值......) ?
  • 你们有多少朋友在那里,我在哪里可以找到他们? (数据维度和从存储中检索)

最终,你可能会发现数据太安静了,也许他们只是害羞! 无论如何,你将 向业务用户询问这些问题最佳实践和练习: 1, 2

- 谁落在后面

在数据分析过程中,通常会意识到你的某些数据通常是 无用的 。你的数据可能有太多噪音,或者它们是部分的,很可能并非所有这些都能解决你的业务问题。 放弃或不放弃,困境 。 每当你遇到与数据相关的问题时,请尝试了解你需要哪些数据以及你不需要的数据 - 也就是说,对于每条信息,请问自己(并询问商业用户) :

  • 这些数据对我有何帮助?
  • 是否可以使用它们,减少噪音 o 缺失值?
  • 考虑到准备过程的好处 / 成本与创建的业务价值,这些数据是否值得?

- 从小开始

每次要尝试数据准备步骤时,处理 GB 数据都是愚蠢的。只需使用数据的 小子集 (但请注意它们具有代表性,并抓住所有问题) 。请记住,如果你想尝试字符串清理,则无需在 10M 行上启动脚本。

- 工具包

我们将要使用的工具是 Python3 和他的 Pandas 库 ,它是操纵数据集的事实上的标准。 这里繁重的工作是由 DataFrame 类 完成的,它为你提供了许多有用的功能日常数据任务。 希望你已经知道 Python,如果不是从那里开始(按照我在 ML 指南要求中建议的步骤) ,然后采取这个 初学者 Pandas 教程。不要担心,如果现在一些想法不完全清楚,但试图了解常见的 Pandas 操作

最佳实践和练习: 1, 2, 3, 4, 5

- 数据清理

数据清理 是获取数据的一般过程,在你清楚了解它们之后,你需要实现更换字符的实际过程,去掉不完整的行,填充缺失值等等。在接下来的部分中,我们将探讨所有常见的数据清理情况。

- 摆脱额外的空格

你要做的第一件事就是 删除多余空格 。小心点!有些空格可能携带信息,但在很大程度上取决于具体情况。例如,在“完整名称” 中:“Giacomo Ciarlini” 很高兴有空格,所以我们可以稍后将其分为 "Name": "Giacomo" 和"Surname": "Ciarlini"。我希望你注意到,除了推荐和建议定制系统之外,名称或 ID 等唯一标识符通常可以放弃。通常,他们不携带信息。 额外提示:学习如何使用 正则(Regex) 进行模式匹配,这是每个数据人需要的强大工具之一主。

最佳实践和练习: 1, 2, 3

正则 练习12 Bonus Resource:一个超级有用的 工具 ,用于可视化 RegeX 表达式及其对文本的影响。

- 选择并处理所有空白单元格

现实世界的数据通常是不完整的,是处理这种情况所必需的。 这是两种处理方式它。 这里 你有一个更深入的教程。

最佳实践和练习: 1, 2, 3, 4

- 转换值类型

不同的数据类型 包含不同的信息,你需要关心这一点。 这里 是一个关于如何转换类型值的好教程。请记住,Python 有一些快捷方式可以执行此操作(执行 str(3) 将返回 “3” 字符串) 但我建议你学习如何使用 Pandas。

- 删除重复项

你不想复制数据,它们都是噪音并占据空间!用 Pandas 学习 如何处理它们

- 将文本更改为小写 / 大写

你想首字母大写名称,或者可能使它们统一(有些人可以输入带或不带大写字母的数据!) 。检查 这里 以获得 Pandas 的方法。

- 拼写检查

为了均衡,你想纠正错误的词。检查 这里 以获得一个好的 Python 模块。此外,这是[实施] 的一个很好的起点(https://stackoverflow.com/questions/46409475/spell-checker-in-pandas) 。 最佳实践和练习: 1, 2, 3

- 重塑你的数据

也许你会将你的数据输入神经网络或者在彩色条形图中显示它们。无论如何,你需要转换数据并为数据管道提供正确的形状。 这里 是一个这个任务非常好的教程。

最佳实践和练习: 1, 2。

- 处理特殊字符

UTF 编码是要遵循的标准,但请记住并非所有人都遵守规则(否则,我们不需要 犯罪预测分析 如何处理奇怪的重音或特殊字符。 最佳实践和练习: 1, 2, 3

- 规范日期

我想可能有一百种方法来记下约会。你需要确定你的格式并使其在整个数据集中统一。

最佳实践和练习: 1, 2, 3

- 验证以丰富数据

有时可以用来设计一些数据,例如:假设你正在处理 电子商务数据 ,你有每件物品的价格。你可能希望在数据集中添加一个新列,其标签包含基于你可以决定的上限和下限的 Price_level [low,medium,high] 等便捷信息。这在 Pandas 中非常简单,请查看这里 。另一个例子是添加一个 Gender 列(M,F) ,以便轻松地探索数据并获得客户数据集中的洞察力。 最佳实践和练习: 1, 2, 3

- 数据离散化

许多机器学习和数据分析方法无法处理连续数据,处理它们可能会在计算上受到限制。 这里 你会找到一个很好的视频,解释为什么以及如何离散数据。

最佳实践和练习: 1, 2, 3

- 特征缩放

特征缩放是一种用于标准化独立变量或数据特征范围的方法。在数据处理中,它也被称为数据标准化,并且通常在数据预处理步骤期间执行。 这里 你找到一个严肃的教程这个基本步骤。

最佳实践和练习: 1, 2, 3

- 数据清理工具

没带枪你就不该上战场!你有大量的工具可以帮助你在数据清理过程中,我想建议你的是 这里 开源工具。查看 此处 了解更多信息。

- 合并数据集和集成

既然你希望在数据清理过程中取得成功,你可以合并来自不同来源的数据,以创建大的 去标准化 数据表,随时可以进行探索和消费。 这里 就是为什么。 最佳实践和练习: 1, 2, 3, 4, 5

- 完整性检查

你总是希望确保你的数据刚好是你希望的,并且因为这是一个很好的经验法则,在数据预处理管道的每次完整迭代之后应用完整性检查(即我们已经看到的每个步骤,直到现在) 查看 此处 以获得良好的概述。根据你的情况,完整性检查可能会有很大差异。

最佳实践和练习: 1, 2, 3

- 自动化这些无聊的东西!

正如我在一开始就告诉你的那样,数据预处理过程可能需要很长时间并且非常繁琐。因此,你希望尽可能 自动化 。此外,自动化与迭代 结合,因此这是你计划数据预处理管道所需的方式。 这里 你找到一个很好的命令行工具,但我几乎肯定你需要建立自己的(记住,每个问题) 是独特的!) ,但这是一个很好的起点。 最佳实践和练习: 1, 2, 3, 4, 5

结论

现在,你已准备好以各种方式获取数据并使用它们,并且你可以全面了解整个过程。清理数据时,可以参考此页面,检查是否遗漏了某些步骤。请记住,可能每种情况都需要这些步骤的子集。

原文:https://github.com/clone95/Virgilio/blob/master/zh-CN/Specializations/HardSkills/DataPreprocessing.md

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • - 不要把数据当玩笑
  • - 商业问题
  • - 数据分析
  • - 谁落在后面
  • - 从小开始
  • - 工具包
  • - 数据清理
  • - 摆脱额外的空格
  • - 选择并处理所有空白单元格
  • - 转换值类型
  • - 删除重复项
  • - 将文本更改为小写 / 大写
  • - 拼写检查
  • - 重塑你的数据
  • - 处理特殊字符
  • - 规范日期
  • - 验证以丰富数据
  • - 数据离散化
  • - 特征缩放
  • - 数据清理工具
  • - 合并数据集和集成
  • - 完整性检查
  • - 自动化这些无聊的东西!
  • 结论
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档