|
|
# 数据科学定义
|
|
|
|
|
|
|  绘制的速写笔记](../../sketchnotes/01-Definitions.png) |
|
|
|
| :----------------------------------------------------------------------------------------------------: |
|
|
|
| 数据科学定义 - _由 [@nitya](https://twitter.com/nitya) 绘制的速写笔记_ |
|
|
|
|
|
|
---
|
|
|
|
|
|
[](https://youtu.be/beZ7Mb_oz9I)
|
|
|
|
|
|
## [课前测验](https://ff-quizzes.netlify.app/en/ds/quiz/0)
|
|
|
|
|
|
## 什么是数据?
|
|
|
在我们的日常生活中,我们总是被数据包围着。你现在正在阅读的文字就是数据。你智能手机里朋友的电话号码列表是数据,你手表上显示的当前时间也是数据。作为人类,我们天生就会处理数据,比如数钱或者给朋友写信。
|
|
|
|
|
|
然而,随着计算机的诞生,数据变得更加重要。计算机的主要功能是进行计算,但它们需要数据来操作。因此,我们需要了解计算机如何存储和处理数据。
|
|
|
|
|
|
随着互联网的出现,计算机作为数据处理设备的角色变得更加重要。仔细想想,我们现在使用计算机更多的是进行数据处理和通信,而不是实际的计算。当我们给朋友写电子邮件或在互联网上搜索信息时,我们实际上是在创建、存储、传输和操作数据。
|
|
|
> 你能记得上一次真正用计算机进行计算是什么时候吗?
|
|
|
|
|
|
## 什么是数据科学?
|
|
|
|
|
|
根据 [维基百科](https://en.wikipedia.org/wiki/Data_science),**数据科学**被定义为*一个科学领域,使用科学方法从结构化和非结构化数据中提取知识和洞察力,并将从数据中获得的知识和可操作的洞察力应用于广泛的应用领域*。
|
|
|
|
|
|
这个定义突出了数据科学的以下重要方面:
|
|
|
|
|
|
* 数据科学的主要目标是从数据中**提取知识**,换句话说,就是**理解**数据,发现一些隐藏的关系并建立**模型**。
|
|
|
* 数据科学使用**科学方法**,例如概率和统计。事实上,当*数据科学*这个术语首次被提出时,有些人认为数据科学只是统计学的新潮名称。然而,现在显而易见,这个领域要广泛得多。
|
|
|
* 获得的知识应该被应用于产生一些**可操作的洞察力**,即可以应用于实际业务场景的实用洞察。
|
|
|
* 我们应该能够处理**结构化**和**非结构化**数据。我们将在课程后面讨论不同类型的数据。
|
|
|
* **应用领域**是一个重要概念,数据科学家通常需要对问题领域有一定程度的专业知识,例如:金融、医学、市场营销等。
|
|
|
|
|
|
> 数据科学的另一个重要方面是研究如何使用计算机收集、存储和操作数据。虽然统计学为我们提供了数学基础,但数据科学将数学概念应用于实际从数据中获取洞察力。
|
|
|
|
|
|
一种看待数据科学的方法(归因于 [Jim Gray](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist)))是将其视为科学的一个独立范式:
|
|
|
* **经验科学**,主要依赖观察和实验结果
|
|
|
* **理论科学**,从现有的科学知识中产生新概念
|
|
|
* **计算科学**,通过一些计算实验发现新原理
|
|
|
* **数据驱动科学**,基于发现数据中的关系和模式
|
|
|
|
|
|
## 其他相关领域
|
|
|
|
|
|
由于数据无处不在,数据科学本身也是一个广泛的领域,涉及许多其他学科。
|
|
|
|
|
|
<dl>
|
|
|
<dt>数据库</dt>
|
|
|
<dd>
|
|
|
一个关键的考虑是<b>如何存储</b>数据,即如何以一种允许更快处理的方式来组织数据。有不同类型的数据库可以存储结构化和非结构化数据,这些内容将在<a href="../../2-Working-With-Data/README.md">我们的课程中讨论</a>。
|
|
|
</dd>
|
|
|
<dt>大数据</dt>
|
|
|
<dd>
|
|
|
我们经常需要存储和处理结构相对简单但数量非常庞大的数据。有一些特殊的方法和工具可以将这些数据分布式存储在计算机集群上,并高效地处理它。
|
|
|
</dd>
|
|
|
<dt>机器学习</dt>
|
|
|
<dd>
|
|
|
理解数据的一种方法是<b>建立一个模型</b>,能够预测所需的结果。从数据中开发模型被称为<b>机器学习</b>。你可以查看我们的<a href="https://aka.ms/ml-beginners">机器学习入门</a>课程以了解更多信息。
|
|
|
</dd>
|
|
|
<dt>人工智能</dt>
|
|
|
<dd>
|
|
|
机器学习的一个领域被称为人工智能(AI),它也依赖于数据,并涉及构建模仿人类思维过程的高复杂性模型。AI方法通常允许我们将非结构化数据(例如自然语言)转化为结构化的洞察力。
|
|
|
</dd>
|
|
|
<dt>可视化</dt>
|
|
|
<dd>
|
|
|
大量数据对人类来说是难以理解的,但一旦我们使用这些数据创建了有用的可视化,我们就可以更好地理解数据,并得出一些结论。因此,了解多种可视化信息的方法非常重要——这是我们将在<a href="../../3-Data-Visualization/README.md">课程第三部分</a>中讨论的内容。相关领域还包括<b>信息图表</b>和<b>人机交互</b>。
|
|
|
</dd>
|
|
|
</dl>
|
|
|
|
|
|
## 数据的类型
|
|
|
|
|
|
正如我们已经提到的,数据无处不在。我们只需要以正确的方式捕获它!区分**结构化**和**非结构化**数据是很有用的。前者通常以某种结构化形式表示,通常是表格或多个表格,而后者只是文件的集合。有时我们也可以谈论**半结构化**数据,这些数据具有某种结构,但可能差异很大。
|
|
|
|
|
|
| 结构化数据 | 半结构化数据 | 非结构化数据 |
|
|
|
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------- |
|
|
|
| 包含电话号码的人员列表 | 带有链接的维基百科页面 | 《大英百科全书》的文本 |
|
|
|
| 过去20年中每分钟建筑物所有房间的温度数据 | 以JSON格式存储的科学论文集合,包括作者、出版日期和摘要 | 企业文件的文件共享 |
|
|
|
| 进入建筑物的所有人的年龄和性别数据 | 互联网页面 | 监控摄像头的原始视频流 |
|
|
|
|
|
|
## 数据的来源
|
|
|
|
|
|
数据的来源有很多种,几乎无法一一列举!然而,我们可以提到一些典型的数据来源:
|
|
|
|
|
|
* **结构化数据**
|
|
|
- **物联网**(IoT),包括来自不同传感器的数据,例如温度或压力传感器,提供了许多有用的数据。例如,如果办公楼配备了物联网传感器,我们可以自动控制供暖和照明,以尽量减少成本。
|
|
|
- **调查问卷**,例如我们在用户购买后或访问网站后要求他们填写的问卷。
|
|
|
- **行为分析**,例如可以帮助我们了解用户在网站上的浏览深度,以及离开网站的典型原因。
|
|
|
* **非结构化数据**
|
|
|
- **文本**可以是丰富的洞察力来源,例如整体**情感评分**,或提取关键词和语义意义。
|
|
|
- **图像**或**视频**。监控摄像头的视频可以用来估算道路上的交通流量,并向人们提供潜在交通拥堵的通知。
|
|
|
- 网站服务器的**日志**可以用来了解我们网站的哪些页面被访问得最多,以及访问时长。
|
|
|
* **半结构化数据**
|
|
|
- **社交网络**图可以是关于用户个性和传播信息潜在效果的绝佳数据来源。
|
|
|
- 当我们有一堆聚会照片时,我们可以尝试通过构建人与人之间拍照的关系图来提取**群体动态**数据。
|
|
|
|
|
|
通过了解不同的数据来源,你可以尝试思考不同的场景,数据科学技术可以应用于更好地了解情况,并改善业务流程。
|
|
|
|
|
|
## 数据的用途
|
|
|
|
|
|
在数据科学中,我们专注于数据旅程的以下步骤:
|
|
|
|
|
|
<dl>
|
|
|
<dt>1) 数据获取</dt>
|
|
|
<dd>
|
|
|
第一步是收集数据。在许多情况下,这可能是一个简单的过程,比如数据从网络应用程序进入数据库,但有时我们需要使用特殊技术。例如,来自物联网传感器的数据可能会非常庞大,使用像IoT Hub这样的缓冲端点来收集所有数据是一个好习惯,以便进一步处理。
|
|
|
</dd>
|
|
|
<dt>2) 数据存储</dt>
|
|
|
<dd>
|
|
|
存储数据可能是一个挑战,特别是当我们谈论大数据时。在决定如何存储数据时,最好预测未来查询数据的方式。数据可以通过几种方式存储:
|
|
|
<ul>
|
|
|
<li>关系型数据库存储表的集合,并使用一种称为SQL的特殊语言来查询它们。通常,表被组织成不同的组,称为模式。在许多情况下,我们需要将数据从原始形式转换为适合模式的形式。</li>
|
|
|
<li><a href="https://en.wikipedia.org/wiki/NoSQL">NoSQL</a>数据库,例如<a href="https://azure.microsoft.com/services/cosmos-db/?WT.mc_id=academic-77958-bethanycheum">CosmosDB</a>,不对数据强制执行模式,并允许存储更复杂的数据,例如层次化的JSON文档或图表。然而,NoSQL数据库没有SQL的丰富查询功能,也无法强制执行引用完整性,即关于表结构和表之间关系的规则。</li>
|
|
|
<li><a href="https://en.wikipedia.org/wiki/Data_lake">数据湖</a>存储用于以原始、非结构化形式存储大量数据。数据湖通常用于大数据,其中所有数据无法放入一台机器,必须由服务器集群存储和处理。<a href="https://en.wikipedia.org/wiki/Apache_Parquet">Parquet</a>是通常与大数据一起使用的数据格式。</li>
|
|
|
</ul>
|
|
|
</dd>
|
|
|
<dt>3) 数据处理</dt>
|
|
|
<dd>
|
|
|
这是数据旅程中最令人兴奋的部分,涉及将数据从原始形式转换为可用于可视化/模型训练的形式。当处理非结构化数据(如文本或图像)时,我们可能需要使用一些AI技术从数据中提取<b>特征</b>,从而将其转换为结构化形式。
|
|
|
</dd>
|
|
|
<dt>4) 可视化/人工洞察</dt>
|
|
|
<dd>
|
|
|
为了理解数据,我们通常需要对其进行可视化。拥有许多不同的可视化技术,我们可以找到合适的视图来获得洞察力。通常,数据科学家需要“玩转数据”,多次进行可视化并寻找一些关系。此外,我们可以使用统计技术来测试假设或证明数据之间的相关性。
|
|
|
</dd>
|
|
|
<dt>5) 训练预测模型</dt>
|
|
|
<dd>
|
|
|
由于数据科学的最终目标是能够基于数据做出决策,我们可能希望使用<a href="http://github.com/microsoft/ml-for-beginners">机器学习</a>技术来构建预测模型。然后,我们可以使用具有类似结构的新数据集进行预测。
|
|
|
</dd>
|
|
|
</dl>
|
|
|
|
|
|
当然,根据实际数据,有些步骤可能会缺失(例如,当我们已经在数据库中拥有数据,或者当我们不需要模型训练时),或者有些步骤可能会重复多次(例如数据处理)。
|
|
|
|
|
|
## 数字化与数字化转型
|
|
|
|
|
|
在过去的十年中,许多企业开始意识到数据在做出业务决策时的重要性。要将数据科学原则应用于企业运营,首先需要收集一些数据,即将业务流程转化为数字形式。这被称为**数字化**。将数据科学技术应用于这些数据以指导决策,可以显著提高生产力(甚至实现业务转型),这被称为**数字化转型**。
|
|
|
|
|
|
让我们考虑一个例子。假设我们有一个数据科学课程(比如这个课程),我们在线向学生提供,并希望利用数据科学来改进它。我们该怎么做?
|
|
|
|
|
|
我们可以从问“什么可以数字化?”开始。最简单的方法是测量每个学生完成每个模块所需的时间,并通过在每个模块结束时进行选择题测试来测量获得的知识。通过计算所有学生的平均完成时间,我们可以找出哪些模块对学生来说最具挑战性,并努力简化它们。
|
|
|
> 你可能会认为这种方法并不理想,因为模块的长度可能不同。更公平的做法可能是将时间除以模块的长度(以字符数计算),然后比较这些值。
|
|
|
|
|
|
当我们开始分析多项选择测试的结果时,可以尝试确定学生难以理解的概念,并利用这些信息来改进内容。为此,我们需要设计测试,使每个问题都能映射到某个特定的概念或知识点。
|
|
|
|
|
|
如果我们想更复杂一些,可以将每个模块所花费的时间与学生的年龄类别进行对比分析。我们可能会发现,对于某些年龄段来说,完成模块所需的时间过长,或者学生在完成之前就退出了。这可以帮助我们为模块提供年龄建议,并减少因错误预期而导致的不满。
|
|
|
|
|
|
## 🚀 挑战
|
|
|
|
|
|
在这个挑战中,我们将尝试通过分析文本来找到与数据科学领域相关的概念。我们将选取一篇关于数据科学的维基百科文章,下载并处理文本,然后构建一个像这样的词云:
|
|
|
|
|
|

|
|
|
|
|
|
访问 [`notebook.ipynb`](../../../../1-Introduction/01-defining-data-science/notebook.ipynb ':ignore') 阅读代码。你也可以运行代码,实时查看它如何执行所有数据转换。
|
|
|
|
|
|
> 如果你不知道如何在 Jupyter Notebook 中运行代码,可以查看 [这篇文章](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)。
|
|
|
|
|
|
## [课后测验](https://ff-quizzes.netlify.app/en/ds/quiz/1)
|
|
|
|
|
|
## 作业
|
|
|
|
|
|
* **任务 1**:修改上述代码,找出与 **大数据** 和 **机器学习** 领域相关的概念
|
|
|
* **任务 2**:[思考数据科学场景](assignment.md)
|
|
|
|
|
|
## 致谢
|
|
|
|
|
|
本课程由 [Dmitry Soshnikov](http://soshnikov.com) 倾情创作 ♥️
|
|
|
|
|
|
---
|
|
|
|
|
|
**免责声明**:
|
|
|
本文档使用AI翻译服务[Co-op Translator](https://github.com/Azure/co-op-translator)进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于重要信息,建议使用专业人工翻译。我们不对因使用此翻译而产生的任何误解或误读承担责任。 |