Skip to content

Latest commit

 

History

History
153 lines (78 loc) · 12.7 KB

laymans-guide-data-science-workflow.md

File metadata and controls

153 lines (78 loc) · 12.7 KB

数据科学的外行指南。第三部分:数据科学工作流程

原文:www.kdnuggets.com/2020/07/laymans-guide-data-science-workflow.html

评论

Sciforce

注意:这是第一部分:如何成为一名(优秀的)数据科学家 – 初学者指南

第二部分:数据科学的外行指南。如何构建数据项目


我们的前三个课程推荐

1. 谷歌网络安全证书 - 快速进入网络安全职业

2. 谷歌数据分析专业证书 - 提升你的数据分析技能

3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT


数据科学工作流程。

到目前为止,你已经获得了足够的数据科学知识和技能完成了你的第一个(或甚至是第二个和第三个)项目。此时,是时候改进你的工作流程,以便进一步发展过程。

解决任何数据科学问题没有特定的模板(否则你会在你遇到的第一本教科书中看到它)。每个新的数据集和每个新的问题都会导致不同的路线图。然而,许多不同项目中有类似的高层步骤。

在这篇文章中,我们提供了一个可以作为数据科学项目基础的清晰工作流程。它的每个阶段和步骤当然可以单独处理,甚至可以由更大规模项目中的不同专家实施。

确定问题和目标

正如你已经知道的,在起始点,你会提出问题并尝试掌握你需要什么数据。因此,考虑你想解决的问题。你想了解更多什么?现在,忘记建模、评估指标和数据科学相关的事物。明确陈述问题和定义目标是提供良好解决方案的第一步。没有这些,你可能会在数据科学的森林中迷失方向。

数据准备阶段

在任何数据科学项目中,获取正确的数据是关键。在进行任何分析之前,你必须获取相关数据,将其重新格式化为适合计算的形式,并进行清理。

获取数据

任何数据科学工作流的第一步是获取要分析的数据。数据可以来自各种来源:

  • 从本地计算机的 CSV 文件中导入;

  • 从 SQL 服务器中查询;

  • 从在线存储库中剥离,如公共网站;

  • 通过 API 从在线源按需流式传输;

  • 由物理设备自动生成,如连接到计算机的科学实验室设备;

  • 由计算机软件生成,如来自网络服务器的日志。

在许多情况下,收集数据可能会变得混乱,特别是当数据不是以有组织的方式收集时。你需要处理不同的来源,并应用各种工具和方法来收集数据集。

收集数据时有几个关键点需要记住:

数据来源:准确追踪数据来源,即每一条数据来自何处以及是否仍然是最新的非常重要,因为数据常常需要重新获取以进行新的实验。重新获取数据是有帮助的,特别是当原始数据源更新时,或者研究人员想要测试替代假设时。此外,我们可以利用数据来源追溯下游分析错误到原始数据源。

数据管理:为了避免数据重复和不同版本之间的混淆,必须为创建或下载的数据文件分配适当的名称,然后将这些文件组织到目录中。当创建这些文件的新版本时,所有版本应分配相应的名称,以便能够跟踪它们之间的差异。例如,科学实验室设备可以生成数百或数千个数据文件,科学家们必须在对其进行计算分析之前对这些文件进行命名和组织。

数据存储:随着现代数据访问几乎没有限制,常常出现数据量如此庞大的情况,以至于无法放入硬盘中,因此必须存储在远程服务器上。尽管云服务越来越受欢迎,但大量的数据分析仍然是在桌面计算机上进行的,数据集可以适应现代硬盘(即少于一太字节)。

重新格式化和清理数据

原始数据通常不以便于分析的格式出现,因为这些数据是由其他人格式化的,而没有考虑到分析的需求。此外,原始数据通常包含语义错误、缺失条目或格式不一致,因此在分析之前需要“清理”。

数据整理(munging)是清理数据的过程,将所有内容放入一个工作空间,并确保数据没有缺陷。可以通过手动或编写脚本来重新格式化和清理数据。将所有值转换为正确的格式可能涉及从字符串中剥离字符、将整数转换为浮点数等许多操作。之后,需要处理缺失值和稀疏矩阵中常见的空值。处理这些数据的过程称为缺失数据插补,即用替代数据替换缺失的数据。

数据集成是一个相关的挑战,因为所有来源的数据需要整合到一个中心 MySQL 关系数据库中,该数据库作为分析的主数据源。

通常,这需要大量时间,无法完全自动化,但同时它可以提供有关数据结构和质量以及可能应用的模型和分析的洞察。

探索数据

在这里,你将开始获取关于你所查看内容的概要级洞察,并提取大的趋势。在这一步,有三个维度需要探索:数据是否暗示监督学习还是无监督学习?这是分类问题,还是回归问题?这是预测问题还是推断问题?这三组问题在解决数据科学问题时可以提供很多指导。

有许多工具可以帮助你快速理解数据。你可以从检查数据框的前几行开始,获得数据组织的初步印象。集成在多个库中的自动工具,如 Pandas 的.describe(),可以快速提供均值、计数、标准差,你可能已经会发现值得深入研究的内容。有了这些信息,你将能够确定哪个变量是目标,哪些特征是重要的。

分析阶段

分析是数据科学的核心阶段,包括编写、执行和完善计算机程序,以从前一阶段准备的数据中分析并获取洞察。尽管有许多编程语言用于数据科学项目,从解释型的“脚本”语言如 Python、Perl、R 和 MATLAB 到编译型的语言如 Java、C、C++或甚至 Fortran,但编写分析软件的工作流程在不同语言中是类似的。

如你所见,分析是一个重复的迭代循环,涉及编辑脚本或程序、执行以生成输出文件、检查输出文件以获取洞察和发现错误、调试以及重新编辑。

基线建模

作为数据科学家,你将构建许多使用不同算法的模型来执行不同任务。在处理任务的初期,值得避免使用复杂的高级模型,而是坚持使用更简单、更传统的线性回归用于回归问题,逻辑回归用于分类问题作为基线,从而进行改进。

在模型预处理阶段,你可以将特征与依赖变量分开,缩放数据,并使用训练-测试拆分或交叉验证来防止模型过拟合——过拟合是指模型过于紧密地跟踪训练数据,并且在新数据上表现不佳的问题。

模型准备好后,可以在训练数据上进行拟合,并通过预测X_test数据的y值来进行测试。最后,使用适合任务的评估指标来评估模型,如回归问题的R 平方和分类任务的准确率ROC-AUC分数。

次级建模

现在是进行更深入分析的时候,如果需要,可以使用更高级的模型,如神经网络XGBoost或随机森林。重要的是要记住,这些模型可能因为数据集较小无法提供足够的数据或特征之间存在共线性问题而最初表现得比简单易懂的模型差。

因此,次级建模步骤的关键任务是参数调优。每种算法都有一组可以优化的参数。参数是机器学习技术用于调整数据的变量。超参数是管理训练过程本身的变量,如神经网络中的节点数或隐藏层数,通过运行整个训练过程、查看整体准确性并进行调整来进行调优。

反思阶段

数据科学家经常在分析反思阶段之间交替进行:分析阶段专注于编程,而反思阶段涉及对分析结果的思考和沟通。在检查一组输出文件后,数据科学家或数据科学家团队可以比较输出变体,通过调整脚本代码和/或执行参数来探索替代路径。数据分析过程中的许多部分是试错的:科学家运行测试,绘制输出图形,然后重新运行测试,重新绘制图形,依此类推。因此,图形是主要的比较工具,可以并排显示在显示器上以便直观地比较和对比它们的特征。补充工具包括记笔记,既有纸质的也有数字的,以跟踪思路和实验过程。

交流阶段

数据科学的最终阶段是传播结果,这些结果可以是数据科学产品的形式,也可以是书面报告,例如内部备忘录、幻灯片演示、业务/政策白皮书或学术研究出版物。

数据科学产品意味着将你的模型投入生产。在大多数公司中,数据科学家将与软件工程团队合作编写生产代码。该软件既可以用于重现实验或测试原型系统,也可以作为独立解决方案来应对市场上的已知问题,例如评估金融欺诈的风险。

另外,你还可以创建数据科学报告。你可以通过演示展示你的结果,并提供过程的技术概述。记住要考虑你的观众:如果是向数据科学同行展示,可以详细说明;如果是向销售团队或高管汇报,则应关注发现。如果公司允许发布结果,这也是获得其他专家反馈的好机会。此外,你还可以写博客文章,并将代码推送到 GitHub,以便数据科学社区可以从你的成功中学习。沟通结果是科学过程的重要部分,因此这一阶段不应被忽视。

原文。已获授权转载。

简介: SciForce 是一家总部位于乌克兰的 IT 公司,专注于基于科学驱动的信息技术的软件解决方案开发。我们在许多关键 AI 技术方面拥有广泛的专业知识,包括数据挖掘、数字信号处理、自然语言处理、机器学习、图像处理和计算机视觉。

相关:

更多相关话题