IBM-数据科学-II-笔记-全-
IBM 数据科学 II 笔记(全)
001:数据科学工具概览 🛠️
在本节课中,我们将要学习数据科学工具的整体概况。课程将介绍数据科学家需要完成的核心任务,并对比开源与商业工具的优势与适用场景。我们还会探讨编程、可视化编程、云计算等关键概念如何融入数据科学工作流。
欢迎学习本课程。您将开始学习当前互联网上最全面的数据科学工具概述之一。
这并不意味着我们会涵盖每一种工具。




但在课程后续部分,我们将介绍数据科学家需要执行的一系列完整任务,并为您提供完成这些任务最常用的两到三种开源和商业工具。我们还会解释这些工具在功能上如何重叠、各自的优缺点,以及它们如何应对整个数据科学流程。
让我们从数据开始。数据显然是数据科学的核心。在本课程中,我们将向您展示如何管理、提取、转换、分析和可视化数据。
现在,如果您使用正确的工具集,即使没有编程技能也可能在数据科学领域生存。

然而,我们强烈建议您熟悉编程及相关的数据科学编程框架。为了帮助您,我们将向您介绍数据科学中最常用的编程语言和框架。

也就是说,数据科学家可以在最新的工具中使用大量自动化功能。在本课程中,我们将解释如何利用这些工具来节省时间并激发灵感。
可视化编程在许多工具中都有提供。在本课程中,您将学习如何使用可视化编程来加快开发速度,并帮助非编程人员进入数据科学领域。
开源软件正在引领数据科学领域。




但由于配置、定制和维护成本,其总体拥有成本有时可能更高。因此,商业软件也有其用武之地。



特别是新一代的商业数据科学软件利用了开源软件和开放标准。
这使得在工具之间迁移变得容易,并可以降低总体拥有成本。在本课程中,我们将向您介绍开源和商业软件,并指出它们在数据科学方面的优势和劣势。我们还将向您展示如何利用它们各自优势的方法。



最后,我们将向您展示如何使用云计算来进一步加速和促进数据科学家的工作。除了讲座,本课程还有大量实验,让您更熟悉材料并获得实践经验。

还有多个测验来测试您的学习成果。除了开始学习,别无他事。

我们非常高兴在您开始数据科学之旅时有您相伴。


如果您在课程材料中遇到任何困难,请不要犹豫,在讨论论坛中联系我们。让我们开始吧。😊



本节课中我们一起学习了数据科学工具课程的总体介绍,明确了课程将涵盖数据处理、编程工具、可视化编程、开源与商业软件对比以及云计算应用等核心模块,并了解了课程包含实验和测验的实践性特点。
002:数据科学语言体系 🗣️💻
在本节课中,我们将学习数据科学领域常用的编程语言。对于刚踏上数据科学之旅的人来说,技术选项的范围可能令人不知所措。
编程语言的选择繁多,每种语言都有其自身的优势和劣势。对于“应该先学习哪种语言”这个问题,并没有一个唯一正确的答案。答案很大程度上取决于你的需求、你试图解决的问题以及你为谁解决这些问题。
我们建议你首先考虑 Python、R 和 SQL 这三种语言。但除此之外,还有许多其他语言也各具特色和优势。
语言选择的影响因素
你选择学习的语言将取决于你需要完成的任务和需要解决的问题。它还会受到你所在的公司、你的职位角色以及现有应用程序的“年龄”(技术栈新旧)的影响。



随着我们深入探讨数据科学行业的流行语言,我们将探索这个问题的答案。
数据科学中的角色
对于有兴趣涉足数据科学领域的人来说,有许多可用的角色,例如:业务分析师、数据工程师、数据分析师、数据科学家、研究科学家、软件工程师、统计学家、产品经理、项目经理等。
接下来,让我们深入了解第一课将要学习的内容。
本课内容概述
我们将把大部分重点放在三大数据科学语言上:Python、R 和 SQL,它们各自都有专门的课程。然后,我们将继续介绍其他值得注意的语言及其独特之处。最后,我们将以一个小测验结束。
以下是本课涵盖的内容要点:



- Python
- R
- SQL
- 其他值得注意的数据科学语言
- 练习测验



本节课中,我们一起学习了数据科学领域的主要编程语言及其选择依据,并概述了课程将重点讲解的 Python、R 和 SQL 三大核心语言。理解这些基础是构建数据科学技能体系的重要第一步。
003:Python语言导论 🐍


在本节课中,我们将回顾Python编程语言的高级特性。
Python是一种强大的语言,它是目前数据科学领域最受欢迎的编程语言。



根据2019年Kaggle数据科学与机器学习调查报告,全球超过10,000名受访者中,75%的人表示他们定期使用Python。Glassdoor报告称,在2019年,超过75%的数据科学职位描述中都包含了Python。当被问及有抱负的数据科学家应该首先学习哪种语言时,大多数数据科学家都推荐Python。


你可能会想,Python为何如此受欢迎。让我们从Python的使用者开始了解。

如果你已经知道如何编程,那么Python非常适合你,因为它使用清晰、可读的语法。你可以在Python中完成许多在其他编程语言中习惯做的事情,但使用Python可以用更少的代码实现。

如果你想学习编程,Python也是一个极佳的入门语言,因为它拥有庞大的全球社区和丰富的文档资源。事实上,2019年的几项不同调查发现,全球超过80%的数据专业人士使用Python。

Python适用于多种场景,包括数据科学、人工智能与机器学习、Web开发以及物联网设备(如树莓派)。大量使用Python的大型组织包括IBM、维基百科、谷歌、雅虎、CERN、NASA、Facebook、亚马逊、Instagram、Spotify和Reddit。
Python是一种强大的通用编程语言,能够处理许多任务。它得到了全球社区的广泛支持,并由Python软件基金会进行管理。
Python是一种高级通用编程语言,可应用于许多不同类别的问题。它拥有一个大型标准库,提供了适合多种不同任务的工具,包括但不限于数据库、自动化、网络爬虫、文本处理、图像处理、机器学习以及数据科学的数据分析。
对于数据科学,你可以使用Python的科学计算库,例如:
- pandas
- NumPy
- SciPy
- Matplotlib

对于人工智能,它拥有:
- TensorFlow
- PyTorch
- Keras
- scikit-learn
Python也可用于自然语言处理,使用自然语言工具包。
Python社区的另一个巨大优势在于,它在整个科技行业推动多样性和包容性方面有着良好记录。Python语言由Python软件基金会执行行为准则,旨在确保所有在线和线下Python社区的安全与包容。此外,还有像PyLadies这样的社区,致力于为对Python感兴趣的人们创造安全、包容的学习环境。PyLadies是一个国际性的导师组织,专注于帮助更多女性成为Python开源社区的积极参与者和领导者。


本节课中,我们一起学习了Python编程语言的核心优势、广泛应用领域及其强大的社区生态。我们了解到Python因其简洁的语法、丰富的库和包容的社区,成为了数据科学和众多技术领域的首选语言。
004:R语言导论
在本节课中,我们将对R编程语言进行简要概述。上一节我们介绍了Python及其广泛应用,你可能会疑惑为何还需要学习其他语言。本节将阐述学习R语言的价值、其核心特性以及适用场景。
🔍 为何学习R语言?
根据2019年Kaggle数据科学调查(覆盖全球超10000名受访者),掌握最多三种编程语言有助于提升薪资水平。R语言在此方面具有显著优势。

与Python类似,R可免费使用。但R并非开源项目,而是自由软件。那么,开源软件与自由软件有何区别?




- 开源软件与自由软件通常指代同一组许可证,许多开源项目使用GNU通用公共许可证。
- 两者均支持协作,多数情况下可互换使用,但侧重点不同:
- 开源倡议组织倡导开源,更关注商业应用。
- 自由软件基金会定义自由软件,更强调价值观与用户自由。




回到学习R的原因:作为自由软件项目,R允许你以贡献开源项目的方式使用语言,支持公开协作及私人与商业用途。此外,R拥有一个广泛的全球社区,社区成员热衷于使用该语言解决重大问题。
👥 R语言适合谁?
R最常被统计学家、数学家及数据挖掘人员用于开发统计软件、绘图和数据分析。其面向数组的语法便于将数学公式转化为代码,尤其适合编程背景薄弱或零基础的学习者。
根据Kaggle数据科学与机器学习调查,多数人在数据科学职业生涯数年后再学习R,但它对无软件编程背景者依然友好。

🏢 R语言的应用领域



R在学术界颇受欢迎,同时也被众多企业采用,包括:
- IBM
- Microsoft
- 美国银行
- 福特
- TechCrunch
- Uber
- Trulia

截至2018年,R已成为全球最大的统计知识库,拥有超过15,000个公开可用的软件包,使得进行复杂的探索性数据分析成为可能。

🔗 R语言的集成与特性
R能良好集成其他编程语言,例如:
- C++
- Java
- C
- .NET
- Python
常见的数学运算(如矩阵乘法)可开箱即用。相较于大多数统计计算语言,R具备更强大的面向对象编程功能。
🌐 加入R语言社区
有多种方式可以连接全球的R语言用户:
- useR! 会议
- SatRdays 活动
- RLadies 社区

你也可访问R项目官网,查找相关的R会议与活动信息。



本节课中,我们一起学习了R语言的核心价值、适用人群、应用场景、技术特性及社区资源。理解R作为自由软件的特点及其在数据科学领域的独特优势,将帮助你在技术选型和学习路径上做出更明智的决策。
005:SQL语言导论

在本节课中,我们将从宏观层面了解SQL语言。SQL是数据科学领域一项基础且强大的工具,掌握它对于处理和分析结构化数据至关重要。

🗣️ SQL的发音与含义

上一节我们介绍了课程概述,本节中我们来看看SQL的基本概念。SQL的发音存在两种常见读法:SQL 或 SQL。
其全称为 结构化查询语言。许多人并不将其视为典型的软件开发语言,因为它是一种非过程化语言,其主要作用范围仅限于查询和管理数据。

🔍 SQL在数据科学中的角色

尽管SQL本身并非专为数据科学设计的语言,但由于其简单性和强大功能,数据科学家经常使用它。

关于SQL还有几个有趣的事实:它比Python和R语言早了大约20年,首次出现于1974年,并且是由IBM公司开发的。
🗃️ SQL与结构化数据

SQL主要用于处理结构化数据,即包含实体和变量之间关系的数据。它专为管理关系型数据库中的数据而设计。
下图展示了一个关系型数据库的通用结构:



一个关系型数据库由多个二维表集合构成,例如数据表和Microsoft Excel电子表格。



这些表格中的每一个都由固定数量的列和任意数量的行组成。
🌐 SQL的广泛应用

尽管SQL最初是为关系型数据库开发的,但由于其普及性和易用性,许多NoSQL和大数据存储库也开发了SQL接口。


SQL语言可细分为多种语言元素,包括:
- 子句
- 表达式
- 谓词
- 查询
- 语句
⚡ SQL的优势


那么,SQL的强大之处体现在哪里呢?
以下是掌握SQL能带来的主要好处:

- 职业发展:掌握SQL将帮助您胜任数据科学领域的许多不同工作,包括商业分析师和数据分析师,并且它是数据工程领域的必备技能。
- 高效操作:使用SQL执行操作时,您可以直接访问数据,无需事先复制。这可以显著加快工作流的执行速度。
- 通用标准:SQL是您与数据库之间的解释器。它是一项美国国家标准协会标准,这意味着如果您学会SQL并在一个数据库中使用它,您将能够轻松地将该SQL知识应用到许多其他数据库上。
🗄️ 常见的SQL数据库
市面上有许多不同的SQL数据库可用,以下是部分主流选择:
- MySQL
- IBM DB2
- PostgreSQL
- Apache OpenOffice Base
- Oracle
- MariaDB
- Microsoft SQL Server
您所编写的SQL语法可能会根据您使用的关系数据库管理系统而略有变化。


🎯 学习SQL的建议
如果您打算学习SQL,最好的方法可能是专注于一个特定的关系数据库,然后融入该特定平台的社区。目前有许多优秀的SQL入门课程可供选择。
本节课中我们一起学习了SQL语言的基本概况。我们了解了它的发音、含义、在数据科学中的重要性,以及它作为处理结构化数据的标准工具的核心优势。SQL是与数据库交互的通用桥梁,是数据领域从业者的关键技能之一。
006:其他编程语言概述
在本节课中,我们将学习除了Python、R和SQL之外,其他在数据科学领域有重要应用价值的编程语言。我们将简要介绍每种语言的特点及其在数据科学中的典型工具或应用。


到目前为止,我们已经回顾了Python、R和SQL。
在本视频中,我们将回顾一些其他在数据科学领域具有引人注目用例的语言。
无可争议,Python、R和SQL是数据科学家最常用的三种语言。

但在考虑使用哪种语言来解决特定的数据科学问题时,还有许多其他语言值得你花时间去了解。


以下是几种值得关注的其他编程语言及其简要介绍。

- Scala、Java、C++和Julia可能是本幻灯片中最传统的数据科学语言。
- JavaScript、PHP、Go、Ruby、Visual Basic等语言也在数据科学社区中找到了各自的位置。
我不会深入探讨每一种语言,但会提及一些显著的亮点。
☕ Java

上一节我们介绍了多种语言,本节我们先来看看Java。

Java是一种久经考验的通用、面向对象编程语言。

它已在企业领域被广泛采用,其设计目标是快速和可扩展。

Java应用程序被编译成字节码,并在Java虚拟机(JVM)上运行。
以下是一些用Java构建的著名数据科学工具。
- Weka:用于数据挖掘。
- Java-ML:一个机器学习库。
- Apache MLlib:使机器学习可扩展。
- Deeplearning4J:用于深度学习。
Apache Hadoop是另一个用Java构建的应用程序,它为在集群系统上运行的大数据应用程序管理数据处理和存储。
🚀 Scala
接下来,我们看看Scala。

Scala是一种通用编程语言,支持函数式编程并具有强大的静态类型系统。

Scala语言构建中的许多设计决策都是为了解决对Java的批评。

Scala也可以与Java互操作,因为它运行在JVM上。
Scala这个名字是“可扩展的”(scalable)和“语言”(language)的组合。这门语言旨在随着用户需求的发展而成长。
对于数据科学,使用Scala构建的最流行的程序是Apache Spark。

Spark是一个快速、通用的集群计算系统。它提供了易于编写并行作业的API,以及支持通用计算图的优化引擎。
Spark包含以下组件。
- Shark:一个查询引擎。
- MLlib:用于机器学习。
- GraphX:用于图处理。
- Spark Streaming:用于流处理。
Apache Spark的设计目标是比Hadoop更快。

⚙️ C++
现在,我们来了解C++。

C++是一种通用编程语言,它是C编程语言的扩展,或者说“带类的C”。

C++提高了处理速度,支持系统编程,并提供了对软件应用程序更广泛的控制。
许多使用Python或其他高级语言进行数据分析和探索性任务的组织,仍然依赖C++来开发向客户实时提供这些数据的程序。
在数据科学领域,一个流行的用于数据流的深度学习库TensorFlow就是用C++构建的。
但需要注意的是,虽然C++是TensorFlow的基础,但它通过Python接口运行,因此你不需要懂C++就能使用它。
以下是其他用C++构建的数据科学相关工具。
- MongoDB:一个用于大数据管理的NoSQL数据库。
- Caffe:一个深度学习算法库,用C++构建,带有Python和MATLAB绑定。
🌐 JavaScript
JavaScript是万维网的一项核心技术,它是一种通用语言,随着Node.js和其他服务器端方法的创建,其应用已超越浏览器。JavaScript与Java语言无关。

对于数据科学,最流行的实现无疑是TensorFlow.js。

TensorFlow.js使得在Node.js以及浏览器中进行机器学习和深度学习成为可能。
TensorFlow.js也被其他开源库采用,包括Brain.js和MachineLearn.js。
RJS项目是JavaScript在数据科学领域的另一个重要实现。
RJS将R语言的线性代数规范用TypeScript重写。这次重写将为其他项目实现更强大的基于数学的框架(如Python的NumPy和SciPy)奠定基础。
TypeScript是JavaScript的超集。
⚡ Julia
最后,我们介绍Julia。
Julia由麻省理工学院设计,用于高性能数值分析和计算科学。

它在提供像Python或R一样的快速开发体验的同时,能生成运行速度与C或Fortran程序相媲美的程序。
Julia是编译型语言,这意味着代码作为可执行代码直接在处理器上执行。
它可以调用C、Go、Java、MATLAB、R、Fortran和Python的库,并具有精细的并行处理能力。
Julia语言相对较新,于2012年编写,但它对数据科学行业未来的影响很有前景。
JuliaDB是Julia在数据科学中一个特别有用的应用。它是一个用于处理大型、持久数据集的包。
📝 总结
本节课中,我们一起学习了多种用于解决数据科学问题的其他编程语言。
我们对Java、Scala、C++、JavaScript和Julia的特点及其在数据科学中的关键工具或应用进行了概述。

如果你对某种特定语言有经验,建议你进行网络搜索,看看它在数据科学方面可能已经实现了哪些功能。你可能会对它的可能性感到惊讶。
007:数据科学工具分类 📊
在本节课中,我们将学习数据科学工作流中涉及的不同任务类别,并了解为这些任务设计的开源工具。理解这些分类是后续选择和使用具体工具的基础。
开源工具可用于各种数据科学任务。在本视频中,我们将了解不同的数据科学任务。在后续的视频中,我们将逐一介绍用于这些任务的最常用开源工具。本课程将涵盖最重要的工具。
数据管理 💾
数据管理是持久化存储和检索数据的过程。






数据集成与转换 🔄


上一节我们介绍了数据管理,本节中我们来看看如何处理来自不同源头的数据。数据集成与转换,通常被称为提取、转换、加载(ETL),是从远程数据管理系统检索数据、转换数据并将其加载到本地数据管理系统的过程。




数据可视化 📈
数据可视化既是初始数据探索过程的一部分,也是最终交付成果的一部分。




模型构建 🤖

了解了如何探索和呈现数据后,下一步是构建预测模型。模型构建是使用大量数据和合适的算法创建机器学习或深度学习模型的过程。


模型部署 🚀
模型构建完成后,需要将其投入使用。模型部署使这样的机器学习或深度学习模型可供第三方应用程序使用。



模型监控与评估 👁️

模型部署后,工作并未结束。模型监控与评估确保对已部署模型进行持续的性能质量检查。这些检查针对准确性、公平性和对抗鲁棒性。



代码资产管理 📁
除了模型本身,管理产生模型的代码同样重要。代码资产管理利用版本控制和其他协作功能来促进团队合作。



数据资产管理 🗃️

与代码类似,数据本身也需要妥善管理。数据资产管理还支持复制、备份和访问权限管理。


开发环境 🛠️
要进行有效的开发,我们需要合适的工具。开发环境,通常称为集成开发环境(IDE),是帮助数据科学家实现、执行、测试和部署其工作的工具。






执行环境 ⚙️
开发完成后,代码需要在特定的环境中运行。执行环境是进行数据处理、模型训练和部署的工具。
全集成可视化工具 🎨
最后,还有可用的全集成可视化工具,它们部分或完全覆盖了之前的所有工具组件。






总结
本节课中我们一起学习了数据科学工作流的十大核心任务类别:数据管理、数据集成与转换(ETL)、数据可视化、模型构建、模型部署、模型监控与评估、代码资产管理、数据资产管理、开发环境(IDE)以及执行环境。理解这些分类是系统化掌握数据科学工具的第一步。

本视频到此结束。在下一个视频中,我们将开始研究用于数据科学任务的开源工具。



008:开源数据科学工具(上)
在本节课中,我们将学习开源数据科学工具的第一部分内容。我们将涵盖数据管理、数据集成与转换、数据可视化、模型部署与监控,以及代码与数据资产管理等核心领域。通过了解这些工具,你可以为构建完整的数据科学工作流打下基础。
数据管理工具 🗄️




数据管理是数据科学流程的基石。它涉及存储、组织和检索数据。以下是几种最广泛使用的开源数据管理工具。

上一节我们介绍了课程概述,本节中我们来看看具体的数据管理工具。
以下是主要的数据管理工具类别:

- 关系型数据库:例如 MySQL 和 PostgreSQL。它们使用表格结构存储数据,并通过SQL语言进行操作。
- NoSQL数据库:例如 MongoDB、Apache CouchDB 和 Apache Cassandra。它们适用于非结构化或半结构化数据,提供更灵活的数据模型。
- 基于文件的系统:例如 Hadoop文件系统(HDFS) 或云文件系统。
- 全文搜索引擎:Elasticsearch 主要用于存储文本数据并创建搜索索引,以实现快速文档检索。
数据集成与转换工具 ⚙️
在经典的数据仓库领域,数据集成与转换的任务被称为 ETL,即 提取(Extract)、转换(Transform)、加载(Load)。


如今,数据科学家经常提出 ELT 这个术语,即 提取(Extract)、加载(Load)、转换(Transform),强调数据先被转储到某处,然后由数据工程师或数据科学家自己负责转换。



这个过程现在也出现了另一个术语:数据提炼与清洗。
了解了数据存储后,接下来我们需要处理数据的移动和塑形。以下是使用最广泛的开源数据集成和转换工具。

以下是主要的工具列表:

- Apache Airflow:最初由Airbnb创建,用于编排复杂的工作流。
- Kubeflow:使您能够在Kubernetes上执行数据科学流水线。
- Apache Kafka:起源于LinkedIn,用于构建实时数据管道和流应用。
- Apache NiFi:提供了一个非常友好的可视化编辑器,用于设计数据流。
- Apache Spark SQL:使您能够使用类似SQL的语法,并能扩展到由数千个节点组成的计算集群。
- Node-RED:同样提供可视化编辑器。Node-RED消耗的资源极少,甚至可以在树莓派这样的小型设备上运行。
数据可视化工具 📈
数据可视化是将数据转化为直观图形的关键步骤。我们必须区分需要编写代码的编程库和包含用户界面的工具。最流行的库将在后续视频中介绍。
在将数据处理完毕后,我们需要将其呈现出来以获取洞见。现在介绍最广泛使用的开源数据可视化工具。




以下是包含用户界面的工具示例:

- Hue:可以采用类似的方法,它可以从SQL查询创建可视化。
- Kibana:一个数据探索和可视化Web应用程序,但仅限于使用Elasticsearch作为数据提供者。
- Apache Superset:一个数据探索和可视化Web应用程序,支持多种数据源。


模型部署工具 🚀

模型部署极其重要。一旦你创建了一个能够预测未来某些关键方面的机器学习模型,你就应该让其他开发者能够使用这个模型,并将其转化为一个API。


模型构建完成后,下一步就是将其投入实际使用。以下是几种模型部署工具。

以下是主要的部署工具:

- Apache PredictionIO:目前仅支持部署Apache Spark ML模型,但路线图中计划支持各种其他库。
- Seldon:一个有趣的产品,因为它支持几乎所有框架,包括TensorFlow、Apache Spark ML、R和Scikit-learn。Seldon可以运行在Kubernetes和Red Hat OpenShift之上。
- MLeap:部署Spark ML模型的另一种方式。
- TensorFlow Serving:可以服务于任何TensorFlow模型。
- TensorFlow Lite:可用于部署到嵌入式设备(如树莓派或智能手机)。
- TensorFlow.js:甚至可以使用它将模型部署到Web浏览器中。

模型监控工具 🔍

模型监控是另一个关键步骤。一旦你部署了一个机器学习模型,你需要随着新数据的到来跟踪其预测性能,以维护过时的模型。

模型部署后,持续的监控至关重要。以下是一些模型监控工具的示例。
以下是相关的监控工具:



- ModelDB:一个机器学习模型元数据库,存储有关模型的信息并可进行查询。它原生支持Apache Spark ML流水线和Scikit-learn。
- Prometheus:一个通用的多用途工具,也广泛用于机器学习模型监控,尽管它并非专门为此目的而设计。
- IBM AI Fairness 360:模型性能不仅通过准确性来衡量。模型对受保护群体(如性别或种族)的偏见也很重要。IBM AI Fairness 360开源工具包正是做这件事的,它能检测并减轻机器学习模型中的偏见。
- IBM Adversarial Robustness 360:机器学习模型,特别是基于神经网络的深度学习模型,可能受到对抗性攻击,攻击者试图通过操纵数据或模型本身来欺骗模型。IBM Adversarial Robustness 360工具箱可用于检测对抗性攻击的脆弱性,并帮助使模型更加健壮。
- IBM AI Explainability 360:机器学习模型通常被认为是一个应用某种神秘魔法的黑盒。IBM AI Explainability 360工具包通过查找数据集中可以呈现给用户进行手动比较的相似示例,使机器学习过程更容易理解。它还可以通过解释不同输入变量如何影响模型的最终决策,来说明更简单的机器学习模型的训练过程。
代码资产管理工具 💾



代码资产管理工具的选择已经大大简化。代码资产管理,也称为版本管理或版本控制。Git 现在是标准。

在管理数据和模型的同时,代码本身也需要被妥善管理。以下是代码资产管理工具。


以下是主要的Git托管服务:

- GitHub:为软件开发版本管理提供托管服务,是目前最突出的。
- GitLab:紧随其后,其优势在于它是一个完全开源的平台,您可以自行托管和管理。
- Bitbucket:另一个选择。
数据资产管理工具 🗂️

数据资产管理,也称为数据治理或数据沿袭,是企业级数据科学的另一个关键部分。数据必须进行版本控制并用元数据进行注释。
最后,我们来看如何管理数据资产本身。Apache Atlas 是一个支持此任务的工具。


以下是相关的数据资产管理项目:

- ODPI Egeria:另一个有趣的项目,通过Linux基金会管理,是一个开放的生态系统。它提供了一组开放的API、类型和交换协议,供元数据存储库用来共享和交换数据。
- Kylo:一个开源的数据湖管理软件平台,为广泛的数据资产管理任务提供广泛支持。


总结 📝


本节课中,我们一起学习了开源数据科学工具的上半部分内容。我们介绍了数据管理、数据集成与转换、数据可视化、模型部署与监控,以及代码与数据资产管理等核心领域的多种工具。掌握这些工具是构建高效、可靠数据科学工作流的基础。本系列的第一部分到此结束,让我们继续学习第二部分。
009:开源数据科学工具(下) 🛠️


在本节课中,我们将继续学习开源数据科学工具。我们将重点介绍开发环境、开源数据集成、转换和可视化工具。这些工具是数据科学家日常工作的核心,掌握它们将帮助你更高效地进行数据分析和建模。
🖥️ 开发环境
上一节我们介绍了数据科学的基础工具,本节中我们来看看数据科学家常用的开发环境。开发环境是编写、测试和运行代码的平台,选择合适的开发环境能极大提升工作效率。



Jupyter Notebooks

目前数据科学家最流行的开发环境之一是Jupyter。Jupyter最初是作为交互式Python编程工具出现的。它现在通过内核支持超过100种不同的编程语言。需要注意的是,Jupyter内核不应与操作系统内核混淆。Jupyter内核封装了不同编程语言的不同交互式解释器。


Jupyter Notebooks的一个关键特性是能够将文档、代码、代码输出、Shell命令和可视化统一到单个文档中。

JupyterLab

JupyterLab是Jupyter Notebooks的下一代产品,从长远来看,它将实际取代Jupyter Notebooks。JupyterLab中引入的架构变更使Jupyter更加现代化和模块化。
从用户的角度来看,JupyterLab引入的主要区别是能够打开不同类型的文件,包括Jupyter Notebooks、数据和终端。然后你可以在画布上排列这些文件。
Apache Zeppelin
尽管Apache Zeppelin已完全重新实现,但它受到Jupyter Notebooks的启发,并提供类似的体验。一个关键区别是集成的绘图能力。在Jupyter Notebooks中,你需要使用外部库。在Apache Zeppelin中,绘图不需要编码。你还可以通过使用额外的库来扩展这些功能。
RStudio



RStudio是最古老的统计和数据科学开发环境之一,于2011年推出。它专门运行R和所有相关的R库。然而,Python开发也是可能的,因此R被紧密集成到这个工具中,以提供最佳的用户体验。




RStudio将编程、执行、调试、远程数据访问、数据探索和可视化统一到一个工具中。
Spyder
Spyder试图模仿RStudio的行为,将其功能引入Python世界。尽管Spyder没有RStudio相同水平的功能,但数据科学家确实将其视为Python世界中的一个替代方案。然而,在Python世界中,Jupyter的使用频率更高。



下图展示了Spyder如何将代码、文档、可视化和其他组件集成到单个画布中。

🚀 集群执行环境

有时你的数据无法放入单台计算机的存储或主内存容量中。这就是集群执行环境发挥作用的地方。


Apache Spark
著名的集群计算框架Apache Spark是最活跃的Apache项目之一,被所有行业使用,包括许多财富500强公司。Apache Spark的关键特性是线性可扩展性。这意味着如果你将集群中的服务器数量翻倍,其性能也大致翻倍。


Apache Flink



在Apache Spark开始获得市场份额后,Apache Flink被创建出来。Apache Spark和Apache Flink之间的关键区别在于,Apache Spark是一个批处理数据处理引擎,能够按文件处理大量数据。
另一方面,Apache Flink是一个流处理引擎,主要专注于处理实时数据流。尽管两个引擎都支持两种数据处理范式,但在大多数用例中,Apache Spark通常是首选。



Ray
数据科学执行环境的最新发展之一是Ray,它明确专注于大规模深度学习模型训练。



📊 集成可视化工具

让我们看看为数据科学家提供的完全集成和可视化的开源工具。使用这些工具不需要编程知识。这些工具支持最重要的任务,包括数据集成、转换、数据可视化和模型构建。

以下是这类工具的主要特点:

- 具有拖放功能的可视化用户界面
- 内置的可视化能力
- 可以通过R和Python编程进行扩展
- 具有与Apache Spark等工具的连接器


KNIME
KNIME于2004年在康斯坦茨大学诞生。正如你所见,KNIME具有拖放功能的可视化用户界面。它还具有内置的可视化能力。KNIME可以通过R和Python编程进行扩展,并具有与Apache Spark的连接器。




Orange

这类工具的另一个例子是Orange。它比KNIME灵活性稍差,但更易于使用。

📝 总结

在本节课中,我们一起学习了数据科学中最常见的任务以及哪些开源工具与这些任务相关。我们介绍了多种开发环境,包括Jupyter、RStudio和Spyder,探讨了处理大数据的集群执行环境如Apache Spark和Apache Flink,并了解了无需编程的集成可视化工具如KNIME和Orange。



在下一个视频中,我们将描述一些你在数据科学经验中会遇到的老牌商业工具。让我们继续观看下一个视频以获取更多详细信息。
010:商业数据科学工具

在本节课中,我们将学习企业环境中常用的商业数据科学工具。我们将探讨数据管理、集成、可视化、机器学习模型构建与部署,以及数据资产管理等关键任务所对应的商业解决方案。

上一节我们介绍了开源数据科学工具。本节中,我们来看看在企业项目中常见的商业选项。
🗄️ 数据管理工具
在数据管理领域,企业的大部分相关数据通常存储在以下数据库中:
- Oracle数据库
- Microsoft SQL Server
- IBM DB2
尽管开源数据库日益流行,但这三种数据管理产品仍被视为行业标准,并且在可预见的未来仍将占据重要地位。这不仅是功能性的问题,数据是每个组织的核心,而商业支持的可用性至关重要。商业支持由软件供应商、有影响力的合作伙伴和支持网络直接提供。


🔄 数据集成工具
当我们聚焦于商业数据集成工具时,主要讨论的是ETL(提取、转换、加载)工具。
根据Gartner魔力象限,以下是该领域的领导者:
- Informatica PowerCenter
- IBM Infosphere DataStage

紧随其后的产品来自SAP、Oracle、SAS、Talend和Microsoft。这些工具通过图形界面支持ETL数据处理管道的设计和部署,并为大多数商业和开源目标信息系统提供连接器。
此外,Watson Studio Desktop包含一个名为“Data Refinery”的组件,它支持以电子表格风格定义和执行数据集成流程。
📈 数据可视化工具
在商业环境中,数据可视化通常利用商业智能(BI)工具。它们的主要焦点是创建视觉吸引力强且易于理解的报告和实时仪表板。
以下是主要的商业示例:
- Tableau
- Microsoft Power BI
- IBM Cognos Analytics



另一种可视化工具则面向数据科学家而非普通用户,例如探索数据表中不同列之间关系的问题。这类功能包含在Watson Studio Desktop中。

🤖 机器学习建模工具

如果你想使用商业工具构建机器学习模型,可以考虑使用数据挖掘产品。这类产品中最突出的是:
- SPSS Modeler
- SAS Enterprise Miner
此外,SPSS Modeler的一个版本也包含在Watson Studio Desktop中。基于云的工具版本我们将在下一个视频中详细讨论。
🚀 模型部署

在商业软件中,模型部署与模型构建过程紧密集成。下图展示了SPSS协作与部署服务的示例,该服务用于部署由SPSS软件工具套件创建的任何类型的资产。其他供应商也使用类似的过程。
商业软件也可以以开放格式导出模型。例如,SPSS Modeler支持将模型导出为预测模型标记语言(PMML),该格式可以被许多其他商业和开源软件包读取。
👁️ 模型监控与代码资产管理
模型监控是一个新兴领域,目前尚无相关的成熟商业工具可用。因此,开源工具是首选。代码资产管理的情况类似,基于Git和GitHub的开源方案是实际上的标准。
🏛️ 数据资产管理
数据资产管理,也称为数据治理或数据沿袭,是企业级数据科学的关键部分。数据必须使用元数据进行版本控制和注释。
以下是提供此类专用工具的供应商:
- Informatica Enterprise Data Governance
- IBM

IBM Infosphere Information Governance Catalog涵盖了以下功能:
- 数据字典:便于发现数据资产。
- 数据负责人:每个数据资产都被分配给一个数据负责人(即数据所有者),他负责该资产并可被联系。
- 数据沿袭:使用户能够追溯创建数据资产所遵循的转换步骤。数据沿袭还包括对实际源数据的引用。
- 规则与策略:可以添加规则和策略,以反映复杂的数据法规和业务要求,例如隐私和保留策略。
💻 集成开发环境

Watson Studio是一个为数据科学家打造的完全集成的开发环境。它通常通过云平台使用,我们将在后续课程中详细讨论。它也有桌面版本可用。
Watson Studio Desktop将Jupyter Notebook与图形化工具相结合,以最大化数据科学家的工作效率。

Watson Studio与Watson OpenScale一起,构成了一个覆盖完整数据科学生命周期以及我们之前讨论的所有任务的完全集成工具。我们将在下一课中详细讨论两者,但请记住,它们可以部署在本地数据中心,基于Kubernetes或Red Hat OpenShift运行。

另一个完全集成的商业工具例子是H2O Driverless AI,它也涵盖了完整的数据科学生命周期。


📝 总结

本节课中,我们一起学习了最常见的几类数据科学任务是如何得到商业工具支持的。在下一个视频中,我们将探索那些专门在云平台上提供的数据科学工具。
011:云端数据科学工具

在本节课中,我们将学习商业化的云端数据科学工具。这些工具在企业级项目中非常常见,它们通常将多种任务集成到单一平台中,为数据科学家提供高效、可扩展的工作环境。

上一节我们介绍了开源数据科学工具,本节中我们来看看商业化的选项。
再次回顾不同工具类别的概览图。由于云产品是较新的类别,它们遵循将多个任务集成到单一工具的趋势。这在图中标记为绿色的任务中尤其明显。


🖥️ 完全集成的可视化工具平台

让我们从完全集成的可视化工具类别开始。由于这些工具引入了一个组件,使得数据科学工作流的大规模执行在计算集群中进行,我们在此更改了标题并添加了“平台”一词。这些集群由多台服务器机器组成,对用户而言是后台透明的。
以下是几个主要示例:
- IBM Watson Studio 与 Watson OpenScale:覆盖了所有数据科学、机器学习和AI任务的完整开发生命周期。
- Microsoft Azure Machine Learning:同样是完全云托管的服务,支持所有数据科学、机器学习和AI任务的完整开发生命周期。
- H2O Driverless AI:虽然这是一个需要下载安装的产品,但主流云服务提供商提供一键部署。由于运维不由云提供商负责(这与Watson Studio、OpenScale和Azure Machine Learning不同),这种交付模式不应与平台即服务(PaaS)或软件即服务(SaaS)混淆。


💾 数据管理工具
在数据管理领域,除少数例外,现有的开源和商业工具都有其SaaS版本。SaaS代表软件即服务,意味着云提供商在云端为你运行该工具。例如,云提供商通过备份数据、配置和安装更新来运营产品。
有时也存在专有工具,它们仅作为云产品提供,有时甚至仅由单一云提供商提供。
以下是此类服务的例子:
- Amazon Web Services DynamoDB:一种NoSQL数据库,允许以键值对或文档存储格式存储和检索数据。最著名的文档数据结构是JSON。
- Cloudant:一种数据库即服务产品,但其底层基于开源Apache CouchDB。其优势在于,虽然备份、恢复和扩展等复杂操作任务由云提供商在底层完成,但该服务与CouchDB兼容。因此,应用程序可以迁移到另一个CouchDB服务器而无需更改应用。
- IBM Db2 as a Service:这是一个商业数据库作为SaaS产品在云端提供的例子,将操作任务从用户手中接管。

🔄 数据集成工具
谈到商业数据集成工具,我们不仅指提取、转换、加载(ETL)工具,也指提取、加载、转换(ELT)工具。这意味着转换步骤不由数据集成团队完成,而是推向数据科学家或数据工程师的领域。
以下是两个广泛使用的商业数据集成工具:
- Informatica Cloud Data Integration
- IBM Data Refinery:Data Refinery能够在类似电子表格的用户界面中,将大量原始数据转换为可消费的高质量信息。它是IBM Watson Studio的一部分。

📈 数据可视化工具
云端数据可视化工具市场巨大,每个主要的云供应商都拥有自己的产品。以下是一些例子:


- Tableau:来自较小公司的基于云的数据可视化工具。
- IBM Cognos Business Intelligence Suite:IBM也将其著名的Cognos商业智能套件作为云解决方案提供。
- IBM Data Refinery:在Watson Studio中再次提供了数据探索和可视化功能。
这些只是庞大且快速变化的商业生态系统中的一些例子,该生态系统中包含大量成熟和新兴的供应商。
在Watson Studio中,可以使用丰富的不同可视化图表来更好地理解数据:

- 3D条形图:允许在垂直维度上可视化目标值,该值依赖于水平维度上的另外两个值。着色可以可视化第三个维度。
- 分层变化捆绑图:用于可视化实体之间的关联和从属关系。
- 经典条形图:如果足够,也可以完成工作。
- 带热图的2D散点图:显示两个相关的数据字段,一个在Y轴,另一个用颜色强度表示。
- 树状图:显示集合内子集的分布。
- 饼图:以非分层的方式实现相同目的。
- 词云图:突出显示文档语料库中的重要术语。

🤖 模型构建与部署
模型构建可以使用诸如Watson Machine Learning这样的服务来完成。Watson Machine Learning可以使用各种开源库来训练和构建模型。谷歌在其云平台上也有类似的服务,称为AI Platform Training。几乎每个云提供商都有针对此任务的解决方案。




在商业软件中,模型部署通常与模型构建过程紧密集成。例如,SPSS协作和部署服务可用于部署由SPSS软件工具套件创建的任何类型的资产。其他供应商也是如此。

此外,商业软件可以以开放格式导出模型。例如,SPSS Modeler支持将模型导出为预测模型标记语言(PMML),该格式可以被许多其他商业和开源软件包读取。
Watson Machine Learning也可用于部署模型,并通过REST接口使其可供消费者使用。

👁️ 模型监控

Amazon SageMaker Model Monitor是一个云端工具的例子,它持续监控已部署的机器学习和深度学习模型。同样,每个主要的云提供商都有类似的工具。
Watson OpenScale也是如此。OpenScale和Watson Studio统一了整个工作流视图。图中所有标记为绿色的任务都可以使用Watson Studio和Watson OpenScale完成。OpenScale将在后续视频中详细介绍。



📝 总结

本节课中我们一起学习了最常见的商业云端数据科学工具如何支持数据科学的各项任务。集成化使我们能够使用相同的工具处理多项任务。在接下来的视频中,我们将探讨用于数据科学的包、API、数据集和模型。
012:数据科学库 📚
在本节课中,我们将要学习数据科学领域中常用的核心库。库是函数和方法的集合,它们能让你无需自己编写代码即可执行多种操作。我们将重点介绍Python库、其他语言的库,并了解它们如何帮助数据科学家高效工作。
概述
我们将回顾几类数据科学库,包括用于科学计算的Python库、数据可视化库、高级机器学习与深度学习库,以及其他编程语言中的相关库。理解这些工具是构建数据科学项目的基础。





Python科学计算库 🧮

上一节我们介绍了库的基本概念,本节中我们来看看Python中用于科学计算的核心库。

Pandas


Pandas提供了数据结构和工具,用于高效地进行数据清洗、操作和分析。它提供了处理不同类型数据的工具。Pandas的主要工具是一个由列和行组成的二维表格。
这个表格被称为数据框,其设计旨在提供简便的索引,以便你处理数据。


核心数据结构示例:
import pandas as pd
df = pd.DataFrame(data)


NumPy

NumPy库基于数组,使你能对这些数组应用数学函数。Pandas实际上是构建在NumPy之上的。

核心概念公式:
- 数组操作:
np.array([1, 2, 3]) - 数学运算:
np.sum(array)


Python数据可视化库 📊

数据可视化方法是与他人沟通和展示分析有意义结果的重要方式。这些库能让你创建图表、图形和地图。


以下是两个主要的Python可视化库:
- Matplotlib:这是最著名的数据可视化库,非常适合制作图形和图表。这些图表也具有高度可定制性。
- Seaborn:这是一个基于Matplotlib的高级可视化库。Seaborn可以轻松生成热图、时间序列图和小提琴图等。


机器学习与深度学习库 🤖
对于机器学习,Scikit-learn库包含了用于统计建模的工具,包括回归、分类、聚类等。它构建在NumPy、SciPy和Matplotlib之上,并且对于这种高级方法来说,入门相对简单。你定义模型并指定想要使用的参数类型。
对于深度学习:
- Keras:使你能构建标准的深度学习模型。与Scikit-learn类似,其高级接口使你能快速简单地构建模型。它可以使用图形处理单元运行,但对于许多深度学习场景,可能需要更低层级的环境。
- TensorFlow:这是一个用于大规模生产深度学习模型的低级框架。它为生产而设计,但对于实验可能显得笨重。
- PyTorch:用于实验,使研究人员能轻松测试他们的想法。
其他语言的数据科学库 🌐



除了Python,其他编程语言也拥有强大的数据科学生态系统。


Apache Spark
Apache Spark是一个通用集群计算框架,使你能使用计算集群处理数据。这意味着你可以使用多台计算机同时并行处理数据。Spark库具有与Pandas、NumPy和Scikit-learn类似的功能。


Apache Spark数据处理作业可以使用Python、R、Scala或SQL。

Scala库

Scala主要用于数据工程,但有时也用于数据科学。以下是Spark的一些补充库:
- Vegas:这是一个用于统计数据可视化的Scala库。使用Vegas,你可以处理数据文件以及Spark数据框。
- BigDL:用于深度学习的库。

R语言库



R语言内置了机器学习和数据可视化的功能,但也有几个补充库。

- ggplot2:是R中一个流行的数据可视化库。
- 你也可以使用能够与Keras和TensorFlow接口的库。
R曾经是开源数据科学的事实标准,但现在正逐渐被Python取代。




总结


本节课中,我们一起学习了数据科学中的关键库。我们从Python的科学计算库Pandas和NumPy开始,然后探讨了用于可视化的Matplotlib和Seaborn。接着,我们介绍了机器学习的Scikit-learn以及深度学习的Keras、TensorFlow和PyTorch。最后,我们了解了其他语言中的工具,如Apache Spark、Scala的Vegas和BigDL,以及R语言的ggplot2。掌握这些库将为你进行有效的数据分析和建模奠定坚实的基础。
013:应用程序接口(API)详解
在本节课中,我们将要学习应用程序接口(API)的核心概念。我们将探讨API是什么、API库、以及REST API,包括请求与响应的工作机制。

🤔 什么是API?


API允许两个软件组件相互通信。例如,你有一个程序和一些数据,同时还有其他软件组件。你可以使用API与其他软件组件进行通信。
你无需了解API的内部工作原理,只需知道它的输入和输出即可。请记住,API仅指你看到的接口或库的一部分,而“库”指的是整个软件包。

📚 API库示例:Pandas
上一节我们介绍了API的基本概念,本节中我们来看看一个具体的API库示例。
考虑Pandas库。Pandas实际上是一组软件组件,其中许多甚至不是用Python编写的。你有一些数据和一组软件组件。我们通过Pandas API与其他软件组件通信来处理数据。



🌐 多语言API与后端
后端可以只有一个软件组件,但可以为不同语言提供独立的API。以用C++编写的TensorFlow为例。
它为Python、JavaScript、C++、Java和Go提供了独立的API。API仅仅是接口。此外,还有多个由志愿者为TensorFlow开发的API,例如Julia、Matlab、R、Scala等。

🔄 REST API简介
上一节我们讨论了通用API和库,本节中我们来看看一种特别流行的API类型:REST API。
REST API是另一种流行的API类型。它们使你能够利用互联网进行通信,从而利用存储、更广泛的数据访问、人工智能算法和许多其他资源。R代表“表征性”,S代表“状态”,T代表“转移”。

🧩 REST API的核心组件
在REST API中,你的程序被称为客户端。API通过互联网与你调用的Web服务进行通信。一组规则管理着通信、输入(或请求)和输出(或响应)。



以下是REST API中一些常见的相关术语:
- 客户端:指你或你的代码。
- 资源:指Web服务。
- 端点:客户端通过端点找到服务。
- 请求:客户端发送给资源的信息。
- 响应:资源返回给客户端的信息。

📡 HTTP方法与通信过程
HTTP方法是通过互联网传输数据的一种方式。我们通过发送请求来告诉REST API要做什么。
请求通常通过HTTP消息进行通信。HTTP消息通常包含一个JSON文件,该文件包含我们希望服务执行的操作指令。这个操作通过互联网传输到Web服务。
服务执行该操作。类似地,Web服务通过HTTP消息返回响应,其中信息通常使用JSON文件返回。这些信息被传输回客户端。

🎤 REST API实例:Watson语音转文本
上一节我们介绍了REST API的通信机制,本节中我们通过两个具体例子来看看它是如何工作的。


Watson语音转文本API是REST API的一个例子。此API将语音转换为文本。
在API调用中,你将音频文件的副本发送给API。这个过程称为POST请求。然后,API发送个人所说内容的文本转录。

🌍 REST API实例:Watson语言翻译器
Watson语言翻译器API提供了另一个例子。你将想要翻译的文本发送到API。
API翻译文本并将翻译结果发送回给你。在这个例子中,我们将英语翻译成西班牙语。


📝 课程总结

本节课中我们一起学习了API的核心概念。我们讨论了API是什么、API库、以及REST API,包括请求与响应的工作机制。理解这些概念是使用各种数据科学工具和服务进行有效集成与通信的基础。
014:驱动数据科学的数据集
在本节课中,我们将要学习数据集的概念、它们在数据科学中的重要性,以及如何找到它们。我们将首先定义数据集,然后探讨其常见结构,最后介绍开放数据及其获取途径。





数据集的定义与重要性
数据集是数据的结构化集合。数据是信息的载体,可以表现为文本、数字或图像、音频、视频等媒体文件。
在数据科学中,数据集是进行分析、建模和获取洞察的基础。没有数据,数据科学工作就无法开展。
数据集的常见结构


上一节我们介绍了数据集的基本概念,本节中我们来看看数据集常见的几种结构。


表格数据

表格数据是最常见的结构,它由行和列组成。每一行代表一条记录,每一列代表一个特定的属性或特征。
一种流行的表格数据格式是逗号分隔值文件,即CSV文件。它是一种分隔文本文件,其中每一行代表一条记录,数据值由逗号分隔。
例如,一个气象站观测数据集可能如下所示:



时间戳,温度(℃),湿度(%),风速(m/s)
2023-10-27 08:00:00, 22.5, 65, 3.2
2023-10-27 09:00:00, 24.1, 62, 2.8

层次与网络结构
层次结构数据以树状形式组织,而网络结构数据通常以图的形式存储,用于表示数据间的关系。



例如,社交网站上的用户连接关系通常用图来表示,其中节点代表用户,边代表用户间的联系。
原始文件数据


数据集也可以包含原始文件,如图像或音频。一个著名的例子是MNIST数据集,它包含手写数字的图像,常用于训练图像处理系统。


从私有数据到开放数据

传统上,大多数数据集被视为私有资产,因为它们包含专有或机密信息,如客户数据、定价数据或其他商业敏感信息。这些数据集通常不公开共享。


随着时间的推移,越来越多的公共和私人实体,如科研机构、政府、组织甚至公司,开始将数据集作为开放数据向公众提供,免费提供了丰富的信息资源。

例如,联合国以及世界各地的联邦和市政府在其网站上发布了许多数据集,涵盖经济、社会、医疗保健、交通、环境等诸多领域。



开放数据的作用与获取
访问这些开放数据集使数据科学家、研究人员和分析师能够发现先前未知且具有潜在价值的洞察。他们可以为商业目的或公共利益创建新的应用程序,也可以开展新的研究。
开放数据在数据科学、机器学习和人工智能的发展中发挥了重要作用,并为从业者提供了在多种数据集上磨练技能的机会。
以下是互联网上一些主要的开放数据源:



- 开放知识基金会数据门户列表:你可以在Open Knowledge Foundation的
datacatalogs.org网站上找到全球开放数据门户的综合列表。 - 政府与国际组织:联合国、欧盟以及许多其他政府间和政府组织维护着数据仓库,提供广泛的信息访问。
- Kaggle:这是一个流行的数据科学在线社区,你可以在此查找和贡献普遍感兴趣的数据集。
- Google数据集搜索:谷歌提供了一个数据集搜索引擎,可以帮助你找到对你有特定价值的数据集。
开放数据许可协议
认识到开放数据的分发和使用可能受到其许可条款的限制非常重要。过去,许多数据在缺乏专门许可的情况下,是依据开源软件许可证共享的。
这些许可证并非为涵盖数据集分发和使用的特定问题而设计。为解决此问题,Linux基金会创建了社区数据许可协议。
最初创建了两种用于共享数据的许可证:


- CDLA共享许可证:此许可证授予你使用和修改数据的权限。它规定,如果你发布修改后的数据版本,必须采用与原始数据相同的许可条款。
- CDLA宽松许可证:此许可证同样授予你使用和修改数据的权限。但是,你无需共享对数据的更改。
需要注意的是,这两种许可证都没有对你通过使用数据可能得出的结果施加任何限制,这在数据科学中至关重要。
例如,假设你正在构建一个用于形成预测的模型。如果你使用CDLA许可的数据集训练模型,你没有义务分享该模型,也没有义务在特定许可下分享它(如果你选择分享的话)。



总结与下节预告
本节课中我们一起学习了数据集的核心概念、常见结构以及开放数据的重要性与获取方式。我们还介绍了社区数据许可协议,它使得共享开放数据变得更加容易。


本视频未涵盖的一个重要方面是数据质量和准确性,这可能因数据收集和贡献者的不同而有很大差异。虽然某些开放数据对于个人使用可能足够好,但由于可能对业务产生影响,它们可能无法满足企业要求。



在下一个视频中,你将了解数据资产交换,这是一个经过策划的开放数据仓库。
015:企业数据共享-数据资产交换
在本节课中,我们将要学习IBM为解决高质量、授权清晰的数据集发现难题而创建的平台——数据资产交换。我们将了解它的核心功能、优势以及如何利用它来加速数据科学项目。

尽管可供公众使用的开放数据在不断增长,但要找到高质量且具有明确定义的许可和使用条款的数据集仍然具有挑战性。为了应对这一挑战,IBM创建了数据资产交换。



数据资产交换为企业级应用提供了一个可信赖的、开箱即用的开放数据源。这些数据覆盖了广泛的领域,包括图像、视频、文本和音频。

由于数据资产交换在数据质量、许可和使用条款方面提供了高水平的策展,因此无论是在研究还是商业项目中,采用其数据通常都更加容易。
为了促进数据共享与协作,数据资产交换尽可能使数据集在社区数据许可协议的某个变体下可用。同时,它也为访问独特的数据集(特别是来自IBM研究项目的数据)提供了一个统一的平台。
为了让开发者更容易开始使用这些数据集,数据资产交换还以Jupyter Notebook的形式提供了教程。这些教程会引导用户完成数据清洗、预处理和探索性分析的基础工作。
对于某些数据集,还提供了展示如何进行更复杂分析的Notebook,例如创建图表、统计分析、时间序列分析、训练机器学习模型,以及使用模型资产交换集成深度学习。通过这种方式,数据资产交换帮助开发者在明确定义的许可条款下,自信地使用开放数据和模型,创建端到端的分析和机器学习工作流。

假设您在数据集页面上找到了一个感兴趣的数据集,您可以进行以下操作:



以下是您可以对数据集执行的核心操作列表:
- 从云存储下载压缩的数据集归档文件。
- 使用Jupyter Notebook探索数据集。
- 查看数据集元数据,如格式、许可条款和大小。
- 预览数据集的部分内容。


数据资产交换上的大多数数据集都配有一个或多个Jupyter Notebook,您可以用它们来执行数据清洗、预处理和探索性分析。这些Notebook可以在Watson Studio(IBM的数据科学平台)中直接运行。Jupyter Notebook和Watson Studio将在本课程后续内容中详细介绍。


本节课中,我们一起学习了IBM的开放数据存储库——数据资产交换。在动手实验环节,您将有机会亲自探索这个资源库。
016:机器学习与深度学习模型 🧠

在本节课中,我们将介绍机器学习与深度学习模型的基本概念、主要类型及其应用场景。我们将了解模型如何从数据中学习,以及如何利用它们解决实际问题。
数据蕴含着丰富的信息,可用于解决特定类型的问题。
传统的数据分析方法,例如人工检查数据或自动化人类分析的专用计算机程序,由于待分析的数据量巨大或问题复杂性高,其能力很快会达到极限。
机器学习使用算法(也称为模型)来识别数据中的模式。


模型从数据中学习这些模式的过程称为模型训练。



模型训练完成后,当呈现新数据时,它就可以用来进行预测。模型会尝试根据从过去数据中学到的模式进行预测或决策。


机器学习模型的三大类别
上一节我们了解了模型训练的基本概念,本节中我们来看看机器学习模型的三种基本类型。
机器学习模型可分为三个基本类别:监督学习、无监督学习和强化学习。
监督学习 👁️
监督学习是最常用的机器学习模型类型之一。在监督学习中,人类提供输入数据和正确的输出结果。



模型试图识别输入数据与正确输出之间的关系和依赖关系。
一般来说,监督学习用于解决回归和分类问题。以下是每种问题类型的示例。

回归模型
回归模型用于预测数值或实际值。


例如,给定过去房屋销售的信息(如地理位置、面积、卧室数量和销售价格),你可以训练一个模型来预测具有相似特征的其他房屋的估计销售价格。
分类模型
分类模型用于预测某物是否属于某个类别。
例如,给定一组电子邮件,以及它们是否被视为垃圾邮件的标记,可以训练一个算法来识别未经请求的电子邮件。


无监督学习 🕵️

在无监督学习中,数据没有人工标记。模型必须分析数据,并仅根据数据本身的特征尝试识别其中的模式和结构。
以下是这种学习风格的两个例子。
聚类模型



聚类模型用于将数据集的每条记录划分到少数几个相似组中的一个。


聚类模型的一个例子可以是,根据过去的购物行为和购物车内容,为电子商务商店提供购买推荐。

异常检测

异常检测用于识别数据集中的异常值,例如欺诈性信用卡交易或可疑的在线登录尝试。
强化学习 🐭
第三种学习类型是强化学习,它大致基于人类和其他生物的学习方式。
想象一只在迷宫中的老鼠。如果老鼠到达迷宫终点,它会得到一块奶酪。这是完成任务获得的奖励。老鼠通过试错学习如何穿过迷宫以获得尽可能多的奶酪。
类似地,强化学习模型学习在当前环境下采取的最佳行动组合,以随时间获得最多的奖励。
这种学习类型最近在围棋、国际象棋和流行的策略视频游戏等游戏中,击败最优秀的人类玩家方面取得了巨大成功。
深度学习简介
上一节我们介绍了三种主要的机器学习范式,本节中我们来看看一个更专门的领域——深度学习。

深度学习是机器学习的一种专门类型。它指的是一套通用的模型和技术,试图大致模拟人脑解决广泛问题的方式。



它通常用于分析自然语言(包括口语和文本)、图像、音频和视频,预测时间序列数据等等。


深度学习在这些和其他领域最近取得了许多成功,因此正成为数据科学中日益流行和重要的工具。
深度学习通常需要非常大的标记数据集来训练模型,计算密集,并且通常需要专用硬件才能获得可接受的训练时间。

你可以从头开始构建自定义的深度学习模型,也可以使用公共模型库中的预训练模型。

深度学习框架与模型库
了解了深度学习的基本概念后,我们来看看实现和获取模型的工具。


深度学习模型使用流行的框架实现,例如 TensorFlow、PyTorch 和 Keras。

深度学习框架通常提供 Python API,许多也支持其他编程语言,如 C++ 和 JavaScript。
你可以从通常被称为“模型动物园”的存储库下载预训练的最先进模型。

流行的模型动物园包括由 TensorFlow、PyTorch、Keras 和 ONNX 提供的那些。模型也由学术和商业研究小组发布。
构建深度学习模型的简要流程


虽然详细解释如何构建模型超出了本视频的范围,但让我们通过一个例子简要概述一下高级任务。

假设你想通过训练一个深度学习模型,使应用程序能够识别图像中的物体。

以下是构建模型的主要步骤。
首先,收集并准备用于训练模型的数据。



数据准备可能是一个耗时且劳动密集的过程。为了训练一个检测图像中物体的模型,你需要标记原始训练数据,例如,在物体周围绘制边界框并为其添加标签。
接下来,从头开始构建模型,或从公共或私有资源中选择一个可能非常适合该任务的现有模型。
然后,在你准备好的数据上训练模型。在训练期间,你的模型从标记数据中学习如何识别图像中描绘的物体。
训练开始后,你分析训练结果,并重复此过程,直到训练后的模型性能满足你的要求。
当训练后的模型达到期望的性能时,你将其部署,使其对你的应用程序可用。


总结
本节课中,我们一起学习了机器学习和深度学习的基本概念、它们的用途以及在哪里可以找到开源模型。

在下一个视频中,我们将向你介绍模型资产交换中心,这是一个精心策划的、即用且可定制的深度学习模型集合。
017:模型资产交换平台 (MAX) 🧠
在本节课中,我们将介绍IBM开发者平台上的模型资产交换平台(Model Asset Exchange,简称MAX)。这是一个免费、开源的深度学习模型资源库。

概述

上一节我们介绍了从零开始训练模型所需完成的高级任务。由于完成这些任务需要大量的数据、人力、时间和资源,实现价值的时间可能相当长。

为了缩短实现价值的时间,可以考虑针对特定类型的问题利用预训练模型。这些预训练模型可以立即投入使用,或者只需较少的训练时间。


什么是模型资产交换平台 (MAX)?📦
模型资产交换平台是一个免费、开源的存储库,提供可直接使用和可定制的深度学习微服务。


这些微服务配置为使用预训练或可自定义训练的最先进深度学习模型,以解决特定的业务问题。


这些模型经过审查和测试,可以快速部署在本地和云端环境中。MAX中的所有模型都在宽松的开源许可下提供,这使得它们更容易用于个人和商业目的,并降低了法律责任的风险。

在MAX上,您可以找到适用于多个领域的模型,包括图像、音频、视频和自然语言分析。
以下是本模块实验中将涉及的一小部分模型示例,您将有机会探索这些模型。


典型模型服务微服务的组件 ⚙️


让我们来看看一个典型模型服务微服务的组成部分。
每个微服务包含以下组件:
- 一个预训练的深度学习模型。
- 在模型分析输入之前对其进行预处理的代码。
- 对模型输出进行后处理的代码。
- 一个标准化的公共API,使服务功能可供应用程序使用。



MAX模型服务微服务以开源Docker镜像的形式构建和分发。

Docker是一个容器平台,可以轻松构建应用程序并将其部署在开发、测试或生产环境中。Docker镜像源代码发布在GitHub上,可以根据需要下载、定制,并用于个人或商业环境。


您可以使用Kubernetes在测试或生产环境中部署和运行这些镜像。Kubernetes是一个开源系统,用于在私有、混合或公共云中自动化容器化应用程序的部署、扩展和管理。

一个流行的企业级Kubernetes平台是Red Hat OpenShift,它可在IBM Cloud、Google Cloud Platform、Amazon Web Services和Microsoft Azure上使用。
微服务的API与集成 🔌



模型服务微服务公开了一个REST API,开发人员可以使用该API将深度学习功能集成到他们的应用程序和服务中。由于REST API可以使用任何编程语言调用,因此您可以轻松地将这些服务集成到现有的生态系统中。


该API公开了一个预测端点和一个或多个元数据端点。

此示例显示了对象检测微服务的端点:
/model/predict端点接收图像作为输入,并返回在图像中检测到的对象列表以及标识检测对象位置的边界框坐标作为响应。- 一些预测端点还可以接受影响生成结果的额外输入参数,例如过滤器。
此微服务公开了两个元数据端点:/model/labels 和 /model/metadata。这些端点提供诸如可检测的对象以及用于根据输入推导答案的深度学习模型等信息。

在本模块的实验部分,您将有机会使用Web浏览器探索和测试这些端点。
每个端点都接受对应用程序友好的输入,例如JPEG、PNG或GIF格式的图像,而不是模型特定的数据结构。
每个端点还生成对应用程序友好的输出,例如标准化的JSON,这是一种轻量级的数据交换格式。
调用预测端点的流程示例 🔄

让我们更仔细地看看当应用程序调用预测端点时会发生什么。


在这个例子中,用户在Web应用程序中选择了一张图像。预测端点被调用,图像被上传。


微服务准备输入图像进行处理,运行识别图像中对象的深度学习模型,使用预测结果生成响应,并将结果返回给应用程序。

应用程序通过绘制边界框和标签来呈现结果。

总结


在本视频中,我们介绍了模型资产交换平台(MAX)。这是一个免费、开源的微服务存储库,使深度学习功能能够在本地和云端环境中供应用程序和服务使用。


在实验中,您将有机会尝试一个模型服务微服务,探索其API,并了解更多关于如何从Web应用程序和物联网应用程序中利用它的信息。
018:Jupyter Notebook入门


在本节课中,我们将学习Jupyter Notebook是什么,了解其基本概念、核心功能以及如何开始使用它。本教程将引导你认识Jupyter,并介绍一些基础语法。后续视频将包含更详细的教程和动手实践环节。
什么是Jupyter Notebook?🔍
Jupyter Notebook是一个基于浏览器的应用程序,它允许你创建和共享包含代码、公式、可视化图表、叙述性文本、链接等多种内容的文档。
它类似于科学家的实验笔记本。科学家会在其中记录实验的所有步骤和结果,以确保未来可以复现实验。同样地,Jupyter Notebook允许数据科学家记录他们的数据实验和结果,并使得任何人都可以使用和重复相同的实验。
一个Jupyter Notebook文件允许数据科学家将描述性文本、代码块和代码输出组合在单个文件中。当你运行代码时,它会在Notebook文件内生成输出(包括图表和表格)。然后,你可以将Notebook导出为PDF或HTML文件,以便与任何人共享。






Jupyter的起源与发展 🌱

Jupyter Notebook最初起源于IPython,专为Python编程语言开发。后来,它开始支持更多语言,因此更名为Jupyter。这个名字代表了Julia、Python和R这三种语言。如今,Jupyter Notebook已经支持许多其他编程语言。
Jupyter Lab:更强大的工作环境 🧪
上一节我们介绍了基础的Jupyter Notebook。本节中我们来看看它的增强版——Jupyter Lab。
Jupyter Lab也是一个基于浏览器的应用程序,它允许你访问多个Jupyter Notebook文件以及其他代码和数据文件。Jupyter Lab通过让你能够以灵活、集成和可扩展的方式处理多个Notebook、文本编辑器、终端和自定义组件,从而扩展了Jupyter Notebook的功能。
以下是Jupyter Lab的一些核心功能:
- 交互式控制:可以交互式地控制Notebook的单元格和输出。
- 实时编辑:支持实时编辑Markdown、CSV等格式。
- 多格式兼容:兼容多种文件格式,如CSV、JSON、PDF、Vega等。
- 开源:Jupyter Lab是一个开源项目。






如何使用Jupyter Notebook? 🚀



了解了Jupyter Notebook和Lab是什么之后,本节我们来看看如何获取和使用它们。


Jupyter Notebook可以通过多种方式使用:
1. 云端服务
Jupyter Notebook可以与IBM Cloud或Google Colab等基于云的服务一起使用。这种方式不需要你在本地机器上安装任何软件。它为你提供对Jupyter Notebook环境的访问,允许你使用标准的.ipynb文件格式导入和导出Notebook,并支持Python及其他语言。
2. 本地安装
你也可以在本地电脑上安装Jupyter Notebook。
- 通过命令行安装:可以使用
pip安装命令。pip install notebook - 通过Anaconda平台安装:可以从Anaconda官网下载。Anaconda是一个流行的发行版,包含了Jupyter和Jupyter Lab。为了在本课程中学习,你可以通过Skills Network Labs访问托管的Jupyter Lab版本,因此无需在自己的设备上下载和安装任何软件即可完成动手实验。
你会看到一个类似下图的屏幕,它在虚拟环境中启动了Jupyter Lab。只需点击“Open Tool”即可开始。







课程总结 📝

本节课中,我们一起学习了Jupyter Notebook在数据科学中的核心作用。你现在应该熟悉了:
- Jupyter Notebook如何用于记录数据实验和项目。
- Jupyter Lab如何兼容多种文件和数据科学语言。
- 安装和使用Jupyter Notebook的不同方式。

希望本教程能帮助你顺利开始使用Jupyter Notebook进行数据科学探索。
019:Jupyter Notebook 基础操作教程

在本节课中,我们将学习Jupyter Notebook的基本操作,包括如何启动、运行代码、管理单元格、使用Markdown进行演示,以及如何正确关闭会话。
🚀 启动Jupyter Notebook
在本模块的实验环节,我们可以使用Skills Network虚拟环境启动一个Notebook。
只需点击“打开工具”,环境将启动JupyterLab。
JupyterLab将打开一个类似这样的Notebook。启动Notebook后,我们可以通过点击“文件”,然后重命名Notebook来更改其名称。
我们现在可以开始新项目的工作。让我们打印“Hello World”来验证环境运行正常。要从代码单元格获得输出,必须运行该单元格。



要运行单元格,请将光标置于单元格内,并点击屏幕顶部的“运行”按钮。



然后点击“运行选中单元格”来运行当前高亮的单元格。要使用快捷键,请按 Shift + Enter。


您也可以通过点击“运行所有单元格”来运行Notebook中的所有单元格。


要添加新代码单元格,请点击加号图标 +。



📂 处理多个文件
您可以同时处理多个文件。为此,请点击本地机器文件夹上方的加号按钮,然后选择要打开的文件。
我们将打开另一个Notebook。
您也可以使用“文件”选项来打开一个新的启动器或一个新的Notebook。


打开新文件后,我们可以根据偏好调整它们的位置。在处理同一问题的多个Notebook时,我喜欢将它们并排放置,以便同时查看两个Notebook。


现在,我们将为变量 one 赋值数字1,为变量 two 赋值数字2,并计算两者相加的结果。
one = 1
two = 2
result = one + two
print(result)



🗑️ 管理单元格

要删除一个单元格,请高亮该单元格,点击“编辑”菜单,然后选择“删除单元格”。要使用快捷键,请在选中的单元格上按两次 D 键。
如果您想为了Notebook内部更好的流程而移动单元格,可以根据您的偏好将单元格上移或下移。



📝 使用Markdown进行演示

作为数据科学家,展示我们的结果是工作中一个重要且关键的部分。Jupyter支持直接从Notebook呈现结果。

您可以创建Markdown来添加标题和文本描述,以帮助演示的流程。为此,请点击“代码”旁边的下拉菜单,选择“Markdown”。

我们将创建折线图,并根据偏好将每个单元格和输出转换为幻灯片或子幻灯片,从而形成一个完整的演示。
Jupyter中的幻灯片功能使我们能够有效地展示代码、可视化图表、文本和代码执行结果,这对于展示数据科学项目非常重要。
🔚 关闭Notebook会话
当您完成Notebook的工作后,可以将其关闭。这有助于释放Notebook正在使用的内存。


为此,请点击侧边栏上的停止图标(通常是第二个图标)。您可以一次性终止所有会话,也可以单独终止或关闭它们。



关闭Notebook会话后,您会在Notebook的右上角看到“无内核”的提示,确认它已不再活动,此时您可以关闭浏览器标签页。



🎯 课程总结
在本节课中,我们一起学习了Jupyter Notebook的基础操作。


您现在应该熟悉了如何运行、删除和插入代码单元格,如何同时运行多个Notebook,Jupyter结合Markdown和代码单元格进行演示的能力,以及如何在完成后正确关闭会话。
020:Jupyter内核系统 💻
在本节课中,我们将要学习Jupyter环境中的内核系统。内核是执行笔记本文件中代码的计算引擎,它支持多种编程语言,是进行数据科学项目的重要工具。
什么是Jupyter内核?🔧
上一节我们介绍了Jupyter Notebook的基本界面,本节中我们来看看其核心计算组件——内核。
一个笔记本内核是一个计算引擎,它负责执行笔记本文件中所包含的代码。其核心关系可以概括为:
笔记本文件(前端界面) + 内核(后端引擎) = 可执行的交互式环境
内核如何工作?⚙️


当你打开一个笔记本文档时,与之关联的内核会自动启动。执行笔记本中的代码时,内核会进行计算并产生结果。



根据你所使用的环境,你可能需要在Jupyter环境中安装其他编程语言的内核。在Skills Network的实验环境中,一些语言的内核已经为你预装好了。




支持的内核语言 🌐
Jupyter支持多种编程语言的内核。以下是数据科学中常用的一些内核:
- Python内核:这是最常用的内核,允许你运行Python代码单元。
- R内核:用于执行R语言代码,常用于统计分析和数据可视化。
- Julia内核:适用于高性能科学计算。
- 其他内核:Jupyter社区还支持Scala、Apache Toree(Spark)和Swift等多种语言。
如何选择与切换内核?🔄
在启动新笔记本时,你可以直接选择感兴趣的语言内核。对于已打开的笔记本,你可以通过界面右上角显示当前内核类型的地方进行切换。



操作步骤如下:
- 点击界面右上角当前内核的名称(例如“Python 3”)。
- 在下拉菜单中选择你想要切换到的其他内核。
- 内核切换后,你就可以使用新语言执行代码单元了。



请注意,如果你在本地机器上运行Jupyter,可能需要通过命令行手动安装所需语言的内核包,例如使用 pip install 或 conda install 命令。

总结 📝


本节课中我们一起学习了Jupyter内核系统的关键知识。你现在应该熟悉了内核的定义——它是执行代码的计算引擎;了解了Jupyter笔记本如何通过不同内核支持多种编程语言;并且掌握了在笔记本中查看及切换到不同内核的方法。正确理解和使用内核,是高效利用Jupyter进行数据科学工作的基础。
021:Jupyter架构解析
在本节课中,我们将学习Jupyter生态系统的基本架构设计。我们将了解其核心的双进程模型、各组件如何交互协作,以及笔记本文件如何被转换和保存。
🏗️ Jupyter的双进程模型
Jupyter采用一个由内核和客户端构成的双进程模型。
- 客户端是用户界面,它允许用户向内核发送代码。
- 内核负责执行接收到的代码,并将结果返回给客户端进行显示。
在使用Jupyter Notebook时,客户端就是你的浏览器。
💾 笔记本的保存与服务器
Jupyter Notebook包含了你的代码、元数据、内容和输出。当你保存笔记本时,会发生以下过程:

- 笔记本从你的浏览器发送到Notebook服务器。
- Notebook服务器将笔记本作为一个扩展名为
.ipynb的文件保存到磁盘上。


Notebook服务器负责所有笔记本文件的保存和加载工作。



⚙️ 代码执行流程

当用户运行代码单元时,这些代码单元会被发送给内核执行。
上一节我们介绍了Jupyter的核心执行模型,本节中我们来看看它如何处理文件格式转换。
🔄 文件转换架构
Jupyter还有一个关于如何将文件转换为其他格式的架构。它使用一个名为 nbconvert 的工具。
例如,如果我们想将一个笔记本文件(.ipynb)转换为一个HTML文件(.html),它将经历以下流程:
以下是转换过程的步骤:
- 预处理器修改笔记本。
- 导出器将笔记本转换为新的文件格式(如HTML)。
- 后处理器对导出生成的文件进行进一步处理。


转换完成后,当你访问该HTML文件的URL时,系统会首先获取笔记本,将其转换为HTML,然后以HTML文件的形式展示给你。


📝 课程总结


本节课中我们一起学习了:
- Jupyter双进程模型的实现(客户端与内核)。
- Notebook服务器如何与内核及客户端进行通信。
- 将笔记本文件转换为其他文件的架构设计,特别是通过
nbconvert工具进行的转换流程。


现在,你应该对Jupyter的基本架构有了清晰的了解。
022:R与RStudio导论
在本节课中,我们将要学习R编程语言及其集成开发环境RStudio。我们将了解R在数据科学中的应用、RStudio的基本界面,以及一些在数据科学社区中广受欢迎的R包。



🧠 什么是R?
R是一种统计编程语言。它是数据处理与操作、统计推断、数据分析和机器学习算法的强大工具。
根据2017年Stack Overflow的访问数据,R在学术界、医疗保健和政府领域使用最为广泛。
R拥有众多函数,支持从不同来源导入数据,例如:文件、数据库、网络以及SPSS等统计软件。
R之所以成为一些数据科学家的首选语言,是因为其内置函数易于使用。R也以能生成出色的可视化图表而闻名,并且拥有大量现成的包来处理数据分析,通常无需额外安装库。
💻 什么是RStudio?

要使用R,我们需要一个环境来帮助运行代码。RStudio是最流行的用于开发和运行R语言源代码及程序的集成开发环境之一。




RStudio旨在帮助提高使用R语言的生产力。它包含一个支持直接代码编写的语法高亮编辑器。



🖥️ RStudio界面导览
以下是RStudio界面的主要组成部分:
- 脚本编辑器:用于编写和保存代码文件,记录你的工作。
- 控制台:用于键入R命令并立即执行。
- 工作空间与历史标签页:显示你在当前R会话中创建的所有R对象列表,以及所有先前命令的历史记录。
- 文件/绘图/包/帮助标签页:显示工作目录中的文件、已创建绘图的历史记录、允许将绘图导出为PDF或图像文件、查看本地计算机上可用的外部R包,以及获取R资源帮助。
RStudio支持众多包和更多功能。
📦 数据科学中的热门R包
如果R是你进行数据科学的工具,以下是一些在数据科学社区中非常流行的库:


dplyr:用于数据操作和转换。# 示例:使用dplyr筛选数据 filtered_data <- data %>% filter(column > 10)stringr:用于字符串操作和处理。ggplot2:用于创建复杂且精美的数据可视化图形。# 示例:使用ggplot2创建散点图 ggplot(data, aes(x=var1, y=var2)) + geom_point()caret:用于简化机器学习工作流程。



🧪 实践环境:Skills Network Labs



为了让你能快速上手学习,我们通过Skills Network Labs为你提供了一个RStudio虚拟环境。

这个虚拟实验室环境旨在帮助你轻松练习课程中学到的内容,无需创建账户、下载或安装任何软件。

✅ 课程总结



本节课中,我们一起学习了R编程语言在数据科学中的能力和用途,用于运行R代码的RStudio界面,以及数据科学中一些流行的R包。现在,你应该对如何开始使用R进行数据科学项目有了基本的了解。
023:RStudio可视化功能
在本节课中,我们将学习如何使用R语言及其强大的包进行数据可视化。数据科学家的一项重要工作是通过可视化从海量数据中提取洞见,而R提供了多种工具来高效地完成这项任务。
🎨 R中的数据可视化工具
随着数据量的不断增长,作为数据科学家,我们的众多职责之一就是通过可视化来呈现数据洞见。
R是一个出色的数据可视化工具,并拥有多种不同的包。以下是一些流行且顶级的数据可视化工具:
以下是R中几个重要的可视化包:

- ggplot2:用于创建直方图、条形图、散点图等数据可视化。它允许在单个可视化图表上添加图层和组件。
- plotly:一个R包,可用于创建基于网页的数据可视化,这些图表可以显示或保存为独立的HTML文件。
- lattice:一个用于实现复杂多变量数据集可视化的工具。它是一个高级数据可视化库,能够处理许多典型的图形而无需大量定制。
- leaflet:在创建交互式地图绘图时非常有用。


根据你的需求和具体的数据科学项目,这些库和包大多能派上用场。要在你的R环境中安装这些包,请使用 install.packages("包名") 命令。

📈 使用基础R绘图
R也拥有其内置的函数来创建绘图和可视化,最常用的是 plot() 函数。
例如,plot(values) 是 plot 函数最简单的形式,它会返回一个值相对于索引的散点图。
你还可以向图形中添加线条和标题,使其更易于阅读和理解。这里我们为绘图添加一条线,并使用 title() 函数添加标题。
# 基础绘图示例
plot(values)
lines(values) # 添加线条
title("My Plot") # 添加标题

🖼️ 使用ggplot2创建高级可视化


我们可以使用ggplot2库创建更美观的可视化。ggplot2是R的一个数据可视化包,能够处理复杂的绘图需求,允许你向图表中添加图层。



通过调整函数和参数来创建散点图,我们将使用内置数据集 mtcars。


我们首先使用 library() 函数将ggplot2库载入内存,然后在数据框 mtcars 上调用 ggplot(),指定X轴为每加仑英里数(mpg),Y轴为车重(wt)。接着添加 geom_point() 函数来告知ggplot2我们想要一个散点图,否则它将返回一个空白的绘图区域。


# ggplot2 散点图示例
library(ggplot2)
ggplot(data = mtcars, aes(x = mpg, y = wt)) +
geom_point()
这将生成一个更美观、更易读的图表。
✏️ 为图表添加标题和调整坐标轴

你还可以通过 ggtitle() 参数添加标题,并使用 labs() 参数通过指定我们想要看到的新名称来更改坐标轴的名称。


# 添加标题和坐标轴标签
ggplot(data = mtcars, aes(x = mpg, y = wt)) +
geom_point() +
ggtitle("汽车重量与油耗关系图") +
labs(x = "每加仑英里数 (MPG)", y = "重量 (千磅)")


我们将看到一个更易于阅读和理解的图表。

🔬 实验环节:使用ggplot2与GGally


在我们的实验环节,将使用ggplot2及其扩展库GGally来重现上述图形。GGally通过添加多个函数来扩展ggplot2,降低了将几何对象与转换后的数据相结合的复杂性。

请在控制台窗口中键入并执行以下命令来安装这两个包。你不需要任何编码经验,因为代码和命令都会提供给你。
install.packages("ggplot2")
install.packages("GGally")
📚 课程总结
本节课中,我们一起学习了:

- R中流行的数据可视化包,如ggplot2、plotly、lattice和leaflet。
- 使用基础R的
plot()函数进行绘图。 - 使用ggplot2创建更高级、更美观的可视化图表。
- 使用
ggtitle()和labs()函数为图表添加标题和更改坐标轴名称。


现在,你已经熟悉了在R中创建数据可视化的基本和高级方法,可以开始探索并呈现你的数据洞见了。
024:Git与GitHub概述


在本节课中,我们将要学习Git与GitHub的基本概念。它们是开发者和数据科学家中非常流行的环境,用于对源代码文件和项目进行版本控制,并支持与他人协作。
要理解Git和GitHub,首先需要了解版本控制的基本概念。版本控制系统允许你跟踪文档的更改。这让你在犯错时能轻松恢复文档的旧版本,同时也使与他人协作变得更加容易。




以下是一个例子,用以说明版本控制的工作原理。假设你有一份购物清单,你希望室友确认所需物品并添加其他项目。在没有版本控制的情况下,你在购物前会面临一团混乱的局面。

使用版本控制后,在每个人都贡献了他们的想法后,你就能确切地知道需要什么。



Git是在新通用公共许可证下分发的免费开源软件。Git是一个分布式版本控制系统,这意味着世界各地的用户都可以在他们自己的计算机上拥有你项目的副本。当他们进行了更改后,可以将他们的版本同步到远程服务器,与你分享。

Git并非唯一的版本控制系统,但其分布式特性是它成为目前最常用版本控制系统之一的主要原因。


版本控制系统广泛用于涉及代码的事务,但你也可以对图像、文档和任何数量的文件类型进行版本控制。


你可以通过命令行界面在没有Web界面的情况下使用Git,但GitHub是最受欢迎的Git仓库Web托管服务之一。


其他类似的托管服务包括GitLab、Bitbucket和Beanstalk。


在开始之前,你需要了解一些基本术语。



SSH协议是一种用于从一台计算机安全远程登录到另一台计算机的方法。仓库包含你为版本控制而设置的项目文件夹。分支是仓库的一个副本。拉取请求是你请求他人在你的更改最终确定之前进行审查和批准的方式。

工作目录包含你计算机上与Git仓库关联的文件和子目录。

在开始使用新仓库时,有几个基本的Git命令你会经常用到。你只需要创建一次,可以在本地创建然后推送到GitHub,或者通过使用git init命令克隆一个现有的仓库。
git add命令将更改从工作目录移动到暂存区。git status命令允许你查看工作目录的状态以及更改的暂存快照。



git commit命令获取你更改的暂存快照,并将它们提交到项目中。

git reset命令撤销你对工作目录中文件所做的更改。


git log命令使你能够浏览项目之前的更改。


git branch命令让你在仓库内创建一个隔离的环境来进行更改。


git checkout命令让你查看和切换现有的分支。git merge命令让你将所有内容重新整合在一起。

要学习如何有效使用Git并开始与全球的数据科学家协作,你需要掌握这些基本命令。幸运的是,GitHub提供了出色的资源来帮助你入门。访问try.github.io下载备忘单并完成教程。在接下来的模块中,我们将为你提供一个关于设置本地环境并开始项目的速成课程。
本节课中我们一起学习了Git与GitHub的核心概念、基本术语和常用命令。理解版本控制是有效协作和管理项目的基础。通过掌握这些工具,你将能够更好地跟踪项目变化并与他人高效合作。
025:GitHub入门指南

在本节课中,我们将学习如何使用GitHub的网页界面进行基本操作,包括创建仓库、编辑文件以及提交更改。这些是使用GitHub进行版本控制和协作的基础。

在上一节视频中,我们学习了Git和GitHub的基本概念。在继续本节内容之前,请确保你已经注册并登录了GitHub账户。

让我们从创建一个新的仓库开始。点击页面右上角的加号(+),然后选择“New repository”。

要创建一个新仓库,你需要提供以下信息:
- 为你的新仓库命名。
- 可选地,添加一段仓库描述。
- 选择仓库的可见性,即公开(Public)或私有(Private)。
- 选择“Initialize this repository with a README”选项,以便初始化一个README文件。
- 最后,点击“Create repository”按钮。


创建完成后,页面会自动跳转到你新建的仓库。仓库的根目录默认会列出,目前只有一个文件:README.md。


现在,我们来学习如何编辑README文件。你可以在浏览器中直接完成这个操作。点击文件旁边的铅笔图标,即可打开在线编辑器,然后修改README文件中的文本。
要将你的更改保存到仓库,你必须在修改后提交它们。滚动到页面底部的“Commit changes”部分。添加一条提交信息,并可选地添加详细描述。然后点击“Commit changes”按钮。


“Commit changes”操作用于将你的更改保存到仓库。

点击仓库名称链接,可以回到仓库的主页。请注意,README文件已经更新,你可以在此验证你的更改。


接下来,我们学习如何使用GitHub内置的、在浏览器中运行的网页编辑器来创建一个新文件。点击“Add file”按钮,然后选择“Create new file”来创建新文件。

要创建一个名为firstPython.py的Python文件,首先需要提供文件名。接着,添加一段描述代码的注释,然后编写你的代码。

完成后,将更改提交到仓库。

现在你可以看到,你的文件已经被添加到仓库中。仓库列表会显示文件是何时被添加或修改的。
当你需要修改文件时,可以再次编辑它。点击文件名,然后点击铅笔图标,进行编辑并提交更改。



你还可以将本地系统中的文件上传到仓库。在仓库主页,点击“Add file”按钮,然后选择“Upload files”选项。
点击“Choose your files”,从你的本地系统中选择想要上传的文件。
文件上传过程可能需要一点时间,具体取决于你上传的内容。一旦文件上传完成,点击“Commit changes”。现在,仓库中就会反映出你上传的文件。




在本节课中,我们一起学习了如何使用GitHub的网页界面创建仓库、编辑文件以及提交更改。这些是管理代码和项目版本的基础操作,为后续更深入的协作和版本控制打下了基础。
026:GitHub分支管理 🌿

在本节课中,我们将学习如何使用GitHub的网页界面来创建和合并分支。分支是Git和GitHub中用于并行开发和测试代码变更的核心功能,它能确保主分支的稳定性。




概述 📋
我们将首先理解分支的概念及其重要性,然后通过一个完整的示例,演示如何在GitHub上创建新分支、在新分支上修改文件,以及如何通过拉取请求(Pull Request)将更改安全地合并回主分支。
什么是分支? 🌳
在Git和GitHub中,分支是项目仓库的一个快照副本。你可以在这个副本上进行修改,而不会影响原始版本。


主分支(通常称为 master 分支)包含可部署的、稳定的代码,是项目的官方工作版本。一个重要的原则是:永远不要将未经测试的代码直接推送到主分支。
当我们希望对主分支的代码或工作流进行修改时,就会创建一个主分支的副本,我们称之为子分支。所有更改和实验都在子分支上进行。当我们对修改结果满意后,再将其合并回主分支,为部署做准备。

这样做的好处是,所有修改都在主分支之外进行,直到合并前都不会影响主工作流。这确保了团队成员的工作不会相互干扰,允许多人并行开发。





创建新分支 ➕
上一节我们介绍了分支的基本概念,本节中我们来看看如何在GitHub上实际操作。




以下是创建新分支的步骤:
- 进入你的GitHub仓库页面。
- 点击分支选择器的下拉箭头(通常显示为“Branch: master”)。
- 在输入框中输入新分支的名称,例如
child-branch。 - 按下回车键或点击“Create branch”完成创建。



创建后,仓库将拥有两个分支:master 和 child-branch。你可以通过分支选择器下拉列表切换到新创建的子分支。此时,主分支中的所有内容都被复制到了子分支中。
在分支上修改文件 ✏️
现在我们已经创建了一个独立的分支,可以安全地在此进行修改。




确保在分支选择器中已选中 child-branch。以下是添加新文件的步骤:



- 点击“Create new file”按钮。
- 为文件命名,例如
test_child.py。 - 在编辑区域添加代码。例如,我们可以添加一行打印语句:
print("Inside child branch") - 滚动到页面底部,找到“Commit new file”部分。
- 填写提交信息(Commit message),例如“Create test_child.py”。清晰的提交信息对于跟踪变更至关重要。
- 点击“Commit new file”按钮提交更改。
此文件只会被添加到 child-branch 中。你可以通过切换回 master 分支来验证,test_child.py 文件不会出现在那里。
通过拉取请求合并分支 🔀
在子分支上完成修改并测试无误后,我们需要将这些更改合并回主分支。这需要通过拉取请求来实现。




拉取请求是通知团队成员你的更改、并请求他们进行代码审查的一种方式,目的是将这些贡献合并到目标分支。它是GitHub上协作的核心。


以下是创建和合并拉取请求的步骤:



- 在仓库页面,点击“Compare & pull request”按钮。
- 系统会显示一个对比页面,清晰地展示两个分支之间的差异(例如,增加了哪些行,删除了哪些行)。
- 为拉取请求添加标题和描述性评论。
- 点击“Create pull request”创建请求。
- 在打开的拉取请求页面,你可以指派团队成员进行审查。
- 确认更改无误后,点击“Merge pull request”按钮,然后点击“Confirm merge”。
- 合并成功后,你可以选择删除已合并的子分支(
child-branch),因为它的更改已并入主分支。

合并完成后,切换回 master 分支,你将看到 test_child.py 文件已经存在。

总结 🎯
本节课中我们一起学习了GitHub分支管理的完整流程。



我们首先理解了分支是用于隔离开发的安全副本,其核心目的是保护主分支(master)的稳定性。接着,我们实践了如何创建新分支、在分支上修改和提交文件,最后通过拉取请求的流程,将经过测试的更改合并回主分支。





掌握分支管理是进行高效、协作式软件开发的基础技能。
027:数据科学工具 - P27 🛠️ 命令行操作Git与GitHub(选修)
在本节课中,我们将学习Git和GitHub的基本概念与操作。Git是一个版本控制系统,用于跟踪代码的变更历史;GitHub则是一个基于Git的代码托管平台。我们将通过命令行来学习如何创建仓库、提交更改以及与远程仓库同步。

概述 📋
本节内容面向Git和GitHub的初学者。我们将介绍如何创建远程仓库、克隆到本地、添加文件、提交更改以及推送更新。这些操作构成了使用Git进行版本控制的基础工作流。
创建远程仓库 🏗️
首先,我们需要在GitHub上创建一个远程仓库。仓库是存储项目文件的地方。



以下是创建仓库的步骤:

- 登录GitHub。
- 点击“New repository”按钮。
- 为仓库命名,例如
demo。 - 选择仓库的可见性(公开或私有)。
- 可以选择使用README文件初始化仓库。
- 点击“Create repository”完成创建。
创建完成后,你将获得一个远程仓库的地址。


克隆仓库到本地 💻

上一节我们创建了远程仓库,本节中我们来看看如何将其复制到本地计算机上。这个过程称为“克隆”。
克隆仓库有两种主要方式:通过HTTPS或SSH协议。使用SSH通常更方便,但需要预先配置SSH密钥。
以下是克隆仓库的命令:
git clone <repository-url>
例如:
git clone git@github.com:username/demo.git
执行此命令后,远程仓库的所有内容将被复制到当前目录下的一个新文件夹中。

本地工作流:添加与提交 ✍️
现在,我们已经在本地拥有了仓库的副本。接下来,我们学习如何在本地进行修改并保存这些更改。


Git的工作流涉及几个关键区域:工作目录、暂存区和本地仓库。你首先在工作目录中修改文件,然后将更改添加到暂存区,最后提交到本地仓库。


以下是操作步骤:

- 创建或修改文件:在本地仓库文件夹中创建新文件或编辑现有文件。
- 添加文件到暂存区:使用
git add命令将文件的更改放入暂存区。你可以添加单个文件或所有更改。git add filename.txt # 或添加所有更改 git add . - 检查状态:使用
git status命令查看哪些文件已被暂存。 - 提交更改:使用
git commit命令将暂存区的更改永久保存到本地仓库。每次提交都需要一个描述性的消息。git commit -m "描述此次提交的信息"
暂存区的存在让你可以精确控制哪些更改被包含在一次提交中。



同步到远程仓库 🔄


我们已经将更改提交到了本地仓库。为了让其他人看到这些更改,或者在不同设备间同步,我们需要将本地提交推送到远程仓库。

以下是推送命令:
git push
执行此命令后,本地仓库的提交历史将被上传到GitHub上的远程仓库。其他人现在可以拉取这些更新。

你可以返回GitHub网站,刷新仓库页面,确认新文件或更改已经出现。


从零初始化本地仓库 🆕
除了克隆现有仓库,你也可以先初始化一个本地Git仓库,然后将其与一个新的远程仓库关联。
以下是操作步骤:

- 初始化本地仓库:在一个空文件夹中,运行
git init命令。这会创建一个隐藏的.git文件夹,用于管理版本控制。git init - 添加文件并提交:与之前一样,创建文件,使用
git add和git commit命令。 - 关联远程仓库:使用
git remote add命令告诉本地仓库远程仓库的地址。git remote add origin <remote-repository-url> - 首次推送:由于是第一次推送,需要使用
-u参数设置上游分支。git push -u origin master
这样,一个全新的本地项目就与远程仓库建立了连接。

总结 🎯

本节课中我们一起学习了Git和GitHub的基础命令行操作。我们涵盖了从创建远程仓库、克隆项目到本地,到在本地进行添加、提交更改,最后将更改推送回远程仓库的完整流程。我们还了解了如何从零开始初始化一个本地仓库并与远程仓库关联。掌握这些核心操作是进行协作开发和版本控制的第一步。在接下来的课程中,我们将学习更高级的主题,如分支管理和拉取请求。
028:命令行分支与合并(选修)📚

在本节课中,我们将学习如何使用Git命令行进行分支创建、切换、同步远程更改以及将分支合并回主分支。这些是团队协作和项目管理中的核心技能。

上一节我们介绍了Git的基本操作,本节中我们来看看如何处理远程仓库的更新以及如何使用分支进行独立开发。


同步远程仓库更改 🔄


当其他协作者向远程仓库推送了新的更改时,你需要将这些更改拉取到你的本地仓库以保持同步。
以下是操作步骤:
- 假设远程仓库最初是空的。我们首先在本地创建一个
README.md文件,并将其推送到远程仓库。echo "# My Project" > README.md git add README.md git commit -m "Initial commit with README" git push origin master

-
接着,另一位协作者(或你自己在GitHub网页上)在远程仓库直接创建了一个名为
newfile.txt的新文件。此时,你的本地仓库还没有这个文件。 -
为了获取远程仓库的最新内容,你只需执行
git pull命令。git pull origin master执行后,
newfile.txt文件就会出现在你的本地工作目录中。

创建与使用分支 🌿


在进行大型项目开发时,为了避免干扰主线的稳定工作,你可以创建自己的分支进行独立开发。主线通常被称为 master 分支。

以下是创建和使用分支的步骤:

- 首先,创建一个名为
my-branch的新分支。git branch my-branch

- 创建分支后,使用
git checkout命令切换到新分支。
使用git checkout my-branchgit status命令可以确认当前已切换到my-branch分支。

- 在新分支上进行开发。例如,创建一个新文件并提交。
echo "Work in progress..." > stuff_on_branch.txt git add stuff_on_branch.txt git commit -m "Added work on my branch"

- 首次将本地分支推送到远程仓库时,需要建立追踪关系。
现在,远程仓库也会出现一个git push -u origin my-branchmy-branch分支,并且包含了stuff_on_branch.txt文件,而master分支则没有这个文件。

合并分支回主线 🔀

当你在分支上的工作完成后,需要将其合并回主分支(master)。

以下是合并分支的步骤:
- 首先,切换回主分支
master。git checkout master

- 然后,执行
git merge命令,将my-branch分支的更改合并到当前所在的master分支。
如果合并顺利,你会看到git merge my-branchstuff_on_branch.txt文件现在也出现在了本地的master分支目录中。

- 最后,将本地
master分支的更新推送到远程仓库,完成整个合并过程。
刷新远程仓库页面,你会看到git push origin mastermaster分支现在也包含了来自my-branch分支的文件。

本节课中我们一起学习了如何拉取远程更新、创建独立的分支进行开发,以及如何将分支的成果合并回主分支。这个过程实现了从本地分支到本地主线,再到远程主线的完整工作流。在下一节课中,我们将学习如何创建拉取请求(Pull Request)并为外部开源项目做贡献。
029:通过Pull Request参与协作(选修)
在本节课中,我们将学习如何在GitHub上通过Fork仓库、提交更改以及创建Pull Request来参与开源项目的协作。这是参与开源社区贡献的标准工作流程。

概述
上一节我们介绍了Git的基本操作。本节中我们来看看如何参与到他人维护的项目中。我们将学习三个核心步骤:Fork(复制)一个仓库到自己的账户,在本地进行修改并提交,最后通过创建Pull Request将你的修改提议合并回原始项目。


第一步:Fork项目仓库

首先,你需要找到想要贡献的项目。例如,假设你想为IBM组织下的“Coursera”仓库修复一个错误。
以下是Fork仓库的步骤:
- 访问目标仓库页面。
- 点击页面右上角的 Fork 按钮。
- 选择将仓库复制到你的个人账户。

完成此操作后,你将在自己的账户下拥有一个原仓库的完整副本。这个副本就是你独立工作的起点。
第二步:配置SSH密钥(可选但推荐)
为了安全地克隆和推送代码,建议配置SSH密钥进行身份验证。

以下是配置SSH密钥的步骤:
- 在本地终端生成SSH密钥对。命令通常为:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" - 生成的私钥(如
id_rsa)需妥善保管,切勿泄露。 - 将公钥(如
id_rsa.pub)的内容添加到你的GitHub账户设置中(Settings -> SSH and GPG keys)。
添加后,你就可以通过SSH协议安全地与GitHub进行通信。



第三步:克隆仓库与本地修改

现在,你可以将你Fork的仓库克隆到本地进行修改。
以下是克隆和修改的步骤:
- 使用
git clone命令克隆你的Fork仓库到本地。 - 在本地找到需要修改的文件并进行编辑。例如,修改
README.md文件中的一个拼写错误。 - 使用
git add命令将修改的文件加入暂存区。 - 使用
git commit -m “你的提交信息”命令提交更改。提交信息应清晰描述修改内容。 - 使用
git push命令将本地提交推送到你远程的Fork仓库。
此时,修改仅存在于你的Fork仓库中,尚未影响到原始项目。

第四步:创建Pull Request

最后一步是向原始项目的维护者提议合并你的修改。

以下是创建Pull Request的步骤:
- 在你的Fork仓库页面上,点击 Pull request 或 Compare & pull request 按钮。
- GitHub会自动比较你的分支与原始项目分支的差异。
- 确认差异无误后,填写Pull Request的标题和描述,清晰地说明你的修改内容和原因。
- 点击 Create pull request 提交申请。
提交后,原始项目的维护者会收到通知,并可以审查你的代码更改。如果被接受,你的修改就会被合并到原始项目中。
总结

本节课我们一起学习了参与开源协作的完整流程。我们掌握了如何Fork一个项目仓库到自己的账户,如何在本地进行修改和提交,以及最终如何通过创建Pull Request将贡献提交给原项目维护者进行审核。掌握这个流程,是成为开源社区积极贡献者的关键一步。
030:IBM Watson Studio简介 🚀
在本节课中,我们将学习IBM Watson Studio,这是一个旨在简化数据科学和机器学习工作流程的集成平台。我们将了解它如何帮助团队更高效地协作,并利用各种工具从数据中提取价值。


每个企业都希望更智能地工作。为此,企业需要利用其最宝贵的资源:数据。然而,从数据中提取全部价值并非易事。
首先,企业通常需要同时管理大量复杂的工具,这些工具用于查找和清洗数据、分析并生成数据可视化,以及使用数据构建和部署机器学习模型。

更复杂的是,这些工具通常需要大量时间进行单独管理,并且难以集成到现有系统中,这会严重拖慢工作流程。
但有了Watson Studio,情况就不同了。它通过一个简化的流程来简化您的数据项目,帮助您从数据中提取价值和洞察,从而让您的业务更快、更智能地发展。它提供了一个易于使用的协作式数据科学和机器学习环境,让您可以在一个地方完成模型构建与训练、数据准备与分析以及洞察共享。
上一节我们提到了传统数据科学工具的复杂性,本节中我们来看看Watson Studio如何通过其核心功能解决这些问题。
以下是Watson Studio的主要优势:
- 易于使用的可视化与拖放式编程:Watson Studio易于创建可视化并使用拖放式代码,将基于数据的决策能力赋予组织中的任何成员,无需IT协助。
- 集成强大的开源工具:如果您需要访问开源工具,该环境提供了当前最流行、最强大的一些工具。
- 高效协作的工作流:Watson Studio的单一环境创建了极其高效的工作流。数据科学家可以在系统内共享资产并协作解决问题,而无需每次遇到新问题都从头开始。开发人员可以利用这种效率,快速投入到机器学习和深度学习算法的构建中。



在深度学习领域,Watson Studio支持一些最流行的框架,并可以将深度学习部署到最新的GPU上,以加速建模过程。内置的神经网络建模器使环境更易用,即使您没有从头开始构建模型的专门资源,也能通过简化的图形界面构建模型。

Watson Studio还提供了入门模板,帮助您在视觉识别、语言分类等领域快速开始建模,并整合了其他IBM Watson服务的工具。
因为Watson Studio与IBM Watson知识目录(一个智能资产发现工具)无缝集成,您可以将数据和模型转化为可信的企业资源,并在不损害合规性、安全性或访问控制的前提下,充满信心地进行协作。

Watson Studio为组织带来了诸多益处,有助于将人工智能融入业务并推动创新。


以下是Watson Studio支持的一些关键技术与功能:
- 嵌入式AI服务:您可以使用嵌入式AI服务(如Watson视觉识别)来训练Watson Studio。
- 模型定制与部署:您可以定制模型,并使用开源工具(如Jupyter Notebooks、Anaconda和RStudio)将其部署为API或Core ML。
- 广泛的代码库支持:Watson Studio支持大多数流行的代码库。
- 无代码可视化建模:通过神经网络建模器进行无代码可视化建模。
- 深度学习框架:支持使用最流行的深度学习框架设计神经架构。


在Watson Studio中,您可以使用Data Refinery交互式地发现、清洗和转换数据。它通过内置的图表和统计数据帮助您理解数据的质量和分布,并通过交互式仪表板提供可视化结果。
Watson Studio包含一个直观的拖放界面,使非程序员能够通过可视化选择、配置、设计和自动编码神经网络来加速模型构建过程。
从开发、训练到生产与评估,Watson Studio会随时间跟踪您的模型,确保您为任何给定任务获得最佳性能,从而在机器学习模型的整个生命周期中使用最佳解决方案。




本节课中,我们一起学习了IBM Watson Studio。它是一个集成的数据科学与机器学习平台,通过提供协作环境、支持多种开源工具、简化可视化建模以及集成数据清洗和模型管理功能,极大地简化了从数据中提取价值的过程,帮助企业更智能、更高效地运作。
031:Watson Studio导论
在本节课中,我们将学习IBM Watson Studio平台的基本概念与核心功能。Watson Studio是一个集成了工具、服务和数据的综合性平台,旨在帮助企业加速向数据驱动型组织转型。我们将从平台概述开始,逐步介绍其界面、协作特性以及关键操作步骤。
🏢 Watson Studio平台概述
Watson Studio是一个集成的工具、服务和数据平台,帮助企业加速向数据驱动型组织转型。你可以通过免费账户开始探索其功能。
数据科学是一项团队协作的工作。不同类型的人员都对数据科学能够提供的洞察感兴趣,这包括业务分析师、数据工程师、数据管理员、数据科学家和开发人员。数据需要被定位和清洗,模型需要被创建、测试、监控和更新,所有这些都需要团队协作。因此,Watson Studio被构建为一个协作平台,一个志同道合者的社区。

本介绍涵盖内容很多,我们仅触及表面。你可以在IBM官方网站的“数字技术互动”站点(ibm.com/demos)找到更多信息。

🖥️ 平台界面与导航

登录后,你可能会看到“开始使用”欢迎屏幕。你可以通过点击右上角的“开始使用”按钮来最小化此屏幕。
一个容易错过的重要项目是左上角的“汉堡菜单”按钮。它为你提供直接访问项目、目录和服务等功能的途径。


🗂️ 资源库与资产管理
资源库特别有趣,它是一个资产集合,包含来自多个来源的教程、笔记本、数据集、文章和论文。新资产会不断添加。
可以使用类型、语言、技术、主题等过滤器搜索资产。

搜索结果可以按功能或日期排序。
“管理”选项让你快速访问特定管理区域。最后,Watson环境中集成了支持和文档。
🤝 项目协作与管理
如前所述,项目是协作的中心。创建项目非常简单:在欢迎屏幕点击“创建项目”或“新建项目”,然后选择创建空项目或基于现有项目创建。
接着,为项目命名,可能添加描述,然后就可以开始了。在项目层面,我们也有一个选项菜单。
首先是“概览”,你可以查看项目的基本信息。此选项卡还包括一个“自述文件”部分,你可以在其中提供关于项目内容的更多细节。
下一个是“资产”,你可以查看作为项目一部分的数据资产、模型、笔记本和其他资产。你可以使用屏幕顶部的“添加到项目”下拉菜单来添加特定资产。
我们不会深入讨论所有菜单项,但需要了解的一个重要项是“连接”。这允许你访问来自Watson Studio外部的数据。如你所见,它包括许多IBM的数据服务,也有不少来自第三方(如亚马逊和微软)的服务。
回到我们的项目,我想指出“环境”部分。用于数据探索、数据操作和模型创建的一个重要工具是笔记本。根据需要完成的工作量,我们可以选择资源分配。我们还可以定制环境以包含额外的库,从而从一开始就拥有一个完整的环境。
我想再指出顶部菜单中的两个选项:“访问控制”和“设置”。“访问控制”允许你控制协作者及其权限等。在“设置”部分,除其他功能外,你可以添加服务。例如,点击“添加服务”下拉菜单,选择Watson并添加机器学习服务。你可以选择添加之前在其他项目中创建的现有服务,或创建新服务。请注意,大多数服务都包含一个免费的轻量版本,这意味着你可以免费尝试各种功能。
📝 总结

本节课中,我们一起学习了IBM Watson Studio平台的核心概念与基本操作。我们了解到它是一个促进团队协作的集成平台,涵盖了从数据管理、模型开发到服务部署的多个环节。通过免费账户和丰富的内置资源,初学者可以轻松开始数据科学项目的探索与实践。
032:创建Watson Studio账户 🚀
在本节课中,我们将学习如何免费注册并试用IBM Watson平台。我们将逐步完成创建IBM Cloud账户、关联Watson服务以及验证设置的完整流程。

IBM Watson为您提供对IBM Watson Studio、IBM Watson Knowledge Catalog、Data Refinery、机器学习与深度学习模型、可视化识别工具、仪表板以及流处理流程的访问权限。
访问 dataplatform.cloud.ibm.com 可以注册免费试用。当您注册IBM Watson账户时,系统会自动为您创建一个免费的IBM Cloud账户。
下图展示了注册后将为您配置的Watson应用程序:IBM Watson Studio和IBM Watson Knowledge Catalog。

如果您已经拥有一个IBM Cloud账户,那么可以直接使用您的IBM ID登录IBM Watson。否则,请输入您的电子邮件地址,系统将用它为您创建一个IBM Cloud账户。

在接下来的页面中,您将被重定向到IBM Cloud注册页面,需要在此提供创建账户所需的基本信息。然后点击 创建账户。


现在,请检查您的电子邮箱并确认您的账户。


完成IBM Cloud注册后,您可以使用相同的凭据登录。


接下来,系统将引导您使用IBM Cloud凭据创建IBM Watson账户。最终,您将看到账户已成功创建的提示。


这个IBM账户默认只关联一个IBM Cloud账户和一个资源组。


如果您关联了多个账户,或者一个账户下有多个资源组,那么在设置Watson Studio账户时,您会看到以下屏幕,可以选择要使用的账户和资源组。


IBM Cloud使用资源组作为一种方式,让您以可定制的分组来组织账户资源,从而能够快速为用户分配同时访问多个资源的权限。



最后,请查看设置以验证已配置的应用程序和服务。


至此,您已准备就绪,可以开始在IBM Watson中工作了。


总结
本节课中,我们一起学习了如何免费注册IBM Watson Studio账户。整个过程包括访问注册页面、创建IBM Cloud账户、确认邮箱、登录以及了解资源组的概念。完成这些步骤后,您就可以使用IBM Watson提供的强大数据科学工具了。
033:Watson Studio中的Jupyter Notebook(上)
在本节课中,我们将学习如何在IBM Watson Studio中创建、配置和运行Jupyter Notebook。你将掌握从添加数据到运行代码,再到管理Notebook环境的基本工作流程。
在Watson Studio项目中创建Notebook

首先,进入一个Watson Studio项目,并向项目中添加一个Notebook。


只需提供一个名称和描述。


然后创建Notebook。让我们先加载一个文件,以便有一些数据可供操作。
加载数据文件
从文件侧滑面板中,浏览并选择要加载的文件。文件添加到项目后,即可在此Notebook中使用。


只需点击“插入代码”,并选择插入一个Pandas DataFrame。在运行Notebook之前,最佳实践是在顶部插入一个单元格来描述Notebook的功能。


添加描述性单元格
将单元格类型更改为Markdown,这样该单元格就不会被当作代码处理。


然后,添加描述。现在,你已准备好运行Notebook。


运行Notebook与查看数据
插入的代码会使用你的云对象存储实例凭证,将数据集加载到一个DataFrame中。

# 示例:使用pandas加载数据
import pandas as pd
df = pd.read_csv('your_data_file.csv')
然后,代码会显示数据集的前五行。
df.head()

在返回项目之前,请保存Notebook。在“资产”选项卡中,你可以找到已保存的Notebook。


编辑与管理Notebook

如果你打开Notebook,它将处于只读模式。

但你可以编辑Notebook并进行更改。例如,你可以访问信息面板并更改Notebook的名称。
在“环境”选项卡中,你可以更改用于运行Notebook的环境,以及停止或重新启动运行时环境。

分享Notebook

如果你想分享Notebook的只读版本,可以在此处操作。

你可以选择要分享的内容范围,以及通过链接或社交媒体分享Notebook的方式。



调度Notebook任务
如果你想在另一个时间调度运行Notebook,可以创建一个任务。


只需为任务提供一个名称,并选择调度选项,例如指定任务运行的日期,以及是否希望任务重复运行。


创建并运行任务后,你可以在项目的“任务”选项卡中查看其状态。


总结

本节课中,我们一起学习了在Watson Studio中操作Jupyter Notebook的核心步骤。从创建Notebook、加载数据、添加描述,到运行代码、管理环境和分享成果,你现在已经掌握了利用这一强大工具进行数据科学分析的入门技能。下一节课,我们将深入探索Notebook的更多高级功能。
034:Watson Studio中的Jupyter Notebook(下)
在本节课中,我们将学习如何在IBM Watson Studio中创建Jupyter Notebook,并掌握如何添加数据资产、配置运行时环境以及切换不同环境的核心操作。

🚀 创建Jupyter Notebook

上一节我们介绍了Watson Studio的基本界面,本节中我们来看看如何创建一个Jupyter Notebook并开始数据分析。
首先,为项目添加一个数据资产。您可以通过浏览选择文件,或将文件直接拖入面板。



数据文件上传后,将存储在对象存储中,并作为项目的数据资产可用。


接下来,创建Notebook。请提供名称和描述,然后选择运行此Notebook时使用的运行时环境。


以下是可用的环境列表。您将在后续课程中了解更多关于环境的内容。目前,只需选择默认的Spark Python环境,并确认语言和Spark版本。准备就绪后,创建Notebook。



等待运行时环境实例化完成。环境就绪后,在Notebook中访问数据源并定位文件。
点击“插入代码”,选择插入数据的方式。下拉框中的选项取决于Notebook使用的语言和文件类型。

插入的代码包含从对象存储实例读取数据文件所需的凭据。运行代码后,将显示前五行数据。


⚙️ 配置运行时环境

现在,让我们深入了解环境配置。在“环境”选项卡中,您可以为Watson Studio工具(如Notebook)定义运行时环境的硬件规格和软件配置。
您可以看到一个活跃的运行时环境,即您刚创建的Notebook正在使用的环境。

以下是其他默认环境。您可以查看任何默认环境以了解其配置摘要。


您还可以创建新的环境定义。首先,提供名称和描述。如果选择Spark作为类型,您将看到一些额外的配置选项。本例中,我们接受默认设置,并选择Scala作为软件版本。


准备就绪后,创建新环境。环境创建完成后,即可与Notebook一起使用。


🔄 切换Notebook环境
若要切换Notebook使用的环境,首先需要停止当前内核。然后,您可以更改环境。


选择您刚创建的自定义环境,并将其与Notebook关联。现在,以编辑模式打开Notebook,等待新环境实例化。


由于此Notebook上次保存时使用了不同的内核,您需要设置新内核。让我们删除现有的单元格。


定位源数据文件,并插入Spark Session DataFrame。

# 示例代码:插入Spark Session DataFrame
df = spark.read.csv("data_source_path", header=True, inferSchema=True)
df.show(5)

运行代码后,将显示前五行数据。



📚 总结
本节课中,我们一起学习了在Watson Studio中创建Jupyter Notebook的完整流程,包括添加数据资产、配置运行时环境以及切换不同环境。您现在可以开始探索社区,查找示例Notebook和数据集,以启动数据分析工作。
035:GitHub与Watson Studio集成 🔗

在本节课中,我们将学习如何将您的IBM Watson Studio账户与GitHub账户连接起来,以便将项目中的Notebook等资产直接发布到GitHub仓库或Gist中。


上一节我们介绍了Watson Studio的基本界面,本节中我们来看看如何将其与GitHub进行集成,以实现代码的版本控制和共享。

生成GitHub个人访问令牌
首先,您需要在Watson Studio中配置GitHub集成。这需要一个GitHub的个人访问令牌作为安全凭证。

以下是生成和配置令牌的步骤:

- 在Watson Studio中,导航至您的个人资料设置。
- 在“集成”选项卡下,访问链接以生成一个GitHub个人访问令牌。
- 为令牌提供一个描述性名称,并选择
repo权限范围。然后,生成令牌。 - 复制生成的令牌。
- 返回Watson Studio的GitHub集成设置页面,粘贴该令牌。
- 当您将令牌保存至个人资料设置时,系统会对其进行验证。


在项目中启用GitHub集成
成功配置个人令牌后,您可以在具体的项目级别启用GitHub集成。

操作步骤如下:

- 导航至您的项目。
- 在项目的“设置”选项卡中,找到并启用GitHub集成功能。
- 滚动至页面底部,粘贴一个已存在的GitHub仓库URL。
- URL验证通过后,点击“连接”按钮。
发布Notebook到GitHub
连接仓库后,您可以将项目中的Notebook发布到GitHub。
以下是发布Notebook的流程:
- 进入项目的“资产”选项卡,打开您想要发布的Notebook。
- 请注意,发布前的最佳实践是移除或替换掉凭证信息。示例中的Notebook已将凭证替换为“X”。
- 确认Notebook已准备就绪后,您可以提供目标路径和提交信息。
- 您还可以选择“发布时不包含隐藏代码”,这意味着Notebook中以隐藏单元格注释开头的任何单元格将不会被发布。
- 准备完成后,点击“发布”。系统将提示发布成功,并提供Notebook、仓库和提交的链接。
- 您可以查看具体的提交记录,并导航至仓库查看已发布的Notebook。
发布为Gist
除了仓库,您还可以将Notebook发布为Gist。Gist是GitHub上另一种分享工作的方式。
关于Gist的要点如下:
- 每个Gist都是一个Git仓库,因此可以被复刻和克隆。
- 存在两种类型的Gist:公开的和私密的。
- 如果您开始时创建的是私密Gist,之后可以将其转换为公开Gist。
- 同样,您可以选择在发布时移除隐藏的单元格。

本节课中我们一起学习了如何将Watson Studio与GitHub集成。我们掌握了生成个人访问令牌、在项目中连接GitHub仓库、将Notebook发布到仓库或Gist的完整流程。这为数据科学项目的版本管理和协作分享提供了便利。
036:其他IBM数据科学工具
在本节课中,我们将了解几种有助于数据科学家日常工作的其他IBM工具。
上一节我们介绍了数据科学的核心工作流程,本节中我们来看看IBM提供的一系列辅助工具,它们能帮助数据科学家更高效地管理数据、进行分析和部署模型。
🗂️ Watson Knowledge Catalog
Watson Knowledge Catalog 帮助数据科学家对所有的数据资源进行编目和管理。

它提供了一个集中的平台,让团队能够发现、理解、治理和保护数据资产。
以下是Watson Knowledge Catalog的主要功能:
- 数据资产编目与发现
- 数据治理与策略管理
- 数据质量与沿袭追踪
- 协作与数据共享
🔧 Data Refinery

Data Refinery 提供了用于分析和准备数据的图形化工具。

它允许用户通过直观的界面进行数据清洗、转换和可视化,而无需编写复杂的代码。
以下是使用Data Refinery的典型步骤:
- 连接到数据源。
- 使用图形化界面探索数据概况。
- 应用数据清洗和转换操作(例如,过滤、合并、派生新列)。
- 将处理后的数据输出到下游分析或模型训练。

📈 SPSS系列产品
基于SPSS的产品为各种统计和机器学习算法以及数据转换提供了易于使用的图形界面。
这些工具降低了高级分析的门槛,使业务分析师和数据科学家都能快速构建模型。
SPSS产品家族通常包括以下组件:
- SPSS Statistics:用于统计分析。
- SPSS Modeler:用于机器学习模型构建和部署。
- SPSS Collaboration and Deployment Services:用于团队协作和模型管理。
🚀 模型部署方法
我们将讨论模型部署的方法,包括开放标准和Watson Machine Learning。
将训练好的模型投入生产环境是数据科学项目的关键一步,IBM提供了灵活的部署方案。

以下是两种主要的部署途径:
- 开放标准:使用如 PMML (Predictive Model Markup Language) 或 ONNX (Open Neural Network Exchange) 等格式导出模型,以便在其他兼容平台上部署。
# 示例:使用sklearn2pmml导出PMML模型(伪代码) # from sklearn2pmml import sklearn2pmml # sklearn2pmml(pipeline, "model.pmml") - Watson Machine Learning:在IBM Cloud上托管和管理模型,提供自动化的部署、监控和扩展功能。


🤖 Watson Studio的新特性

Watson Studio 的新特性包括 Auto AI(自动计算最佳数据管道)和 Watson OpenScale(有助于确保模型的公平性和可解释性)。
这些功能代表了人工智能自动化和可信AI的最新发展方向。
以下是这两个核心特性的简要说明:
- Auto AI:自动化机器学习流程,从数据预处理、特征工程、算法选择到超参数调优,自动寻找最优模型。
- Watson OpenScale:监控生产中的AI模型,检测并减轻偏差,提供模型决策的解释,确保AI的透明与公平。
📝 总结
本节课中我们一起学习了IBM生态系统中的其他重要数据科学工具。
我们了解了Watson Knowledge Catalog如何帮助管理数据资产,Data Refinery如何通过图形化界面简化数据准备,以及SPSS系列产品如何提供强大的分析能力。

我们还探讨了模型部署的两种方法:遵循开放标准和使用Watson Machine Learning服务。

最后,我们介绍了Watson Studio的新特性——Auto AI和Watson OpenScale,它们分别致力于自动化机器学习流程和确保AI模型的公平、可信与可解释。
掌握这些工具将能极大地提升数据科学项目的效率与可靠性。
037:IBM Watson知识目录
在本节课中,我们将学习IBM Watson知识目录。这是一个强大的企业级数据治理与资产发现平台,旨在帮助组织高效管理和利用其分散的数据资产。
大多数组织拥有海量数据,这些数据以多种形式存储在不同位置。快速找到相关数据并连接不同的数据源,可能具有挑战性且耗时。

Watson知识目录将所有信息资产统一到一个富含元数据的单一目录中。其基础是Watson对资产间关系、以及它们在现有项目中如何被用户使用和共享的理解。

上一节我们介绍了数据科学工具的整体范畴,本节中我们来看看Watson知识目录在其中扮演的角色。


以下是Watson知识目录对应的工具类别:
- 数据资产管理
- 代码资产管理
- 数据管理
- 数据集成与转换

Watson知识目录是一个与企业数据治理平台集成的数据目录。它同时也融合了Watson Studio的分析能力。



数据目录的核心功能是帮助数据科学家。以下是其主要作用:
- 轻松查找所需数据。
- 准备数据以供分析。
- 理解数据的含义和结构。
- 按需使用数据。

除了管理,Watson知识目录还注重数据的安全与理解。以下是其关键特性:
- 保护数据免遭滥用,通过自动动态屏蔽敏感数据元素来实现资产共享。
- 提供数据概况可视化、内置图表和统计信息,帮助用户理解数据资产。


Watson知识目录与整个数据科学生态系统紧密集成。以下是其集成与部署能力:
- 与Watson Studio无缝集成,帮助数据从业者在一套强大的机器学习工具中驱动其数据产品的生产。
- 用户可以通过内置的数据精炼工具交互式地发现、清理和准备数据。
- 支持连接到超过30种IBM及第三方数据源,帮助您在原始位置对数据进行编目和使用。
- 提供多种部署选择:可在IBM Cloud上使用,也可通过IBM Cloud Pak for Data在任何地方运行。后者是一个基于Red Hat OpenShift容器构建的完全集成的数据和AI平台,可轻松部署到任何公有云、私有云或其他企业平台。

了解了整体功能后,我们来深入其核心概念:目录的构成。
一个目录包含以下核心部分:
- 资产的元数据:关于资产内容以及如何访问它们的信息。
- 协作者集合:需要使用这些资产进行数据分析的人员。
元数据存储在加密的IBM Cloud对象存储实例中。您可以将想要存储在云中的数据上传到您选择的对象存储,然后在创建目录时指定该存储位置。
数据元数据的存储位置与实际数据的存储位置是分开的。这意味着您可以保持数据在原位,无需将其移入目录,因为目录仅包含元数据。您的数据可以位于:
- 本地数据仓库
- 其他IBM Cloud服务(如Cloudant或Db2 on Cloud)
- 非IBM云服务(如Amazon或Azure)
- 流数据服务
- 甚至“暗数据”源(如PDF文件)
元数据中包含如何访问数据资产的信息,即位置和凭证。这意味着任何目录成员,只要拥有足够权限,都无需知道凭证或自行创建连接即可访问数据。
由于新创建的目录是空的,让我们浏览一个现有目录的“浏览资产”选项卡。以下是您可以看到的内容:
- 推荐资产
- 高评分资产
- 最近创建的资产
- 所有资产的列表
您可以输入搜索词来查找资产。您还可以按资产类型(如数据资产或笔记本)进行筛选,或按资产添加到目录时分配的标签进行筛选。
查看资产时,您会看到数据预览以及其他信息,例如描述、评分、标签、源位置以及任何分类。在“访问”选项卡上,有权限的人员可以添加成员来查看此特定资产。“评论”选项卡显示评论并允许您贡献评论。


当资产被添加到启用了数据策略的目录时,Watson知识目录会根据列中的值自动分析概况并对资产内容进行分类。“概况”选项卡包含关于推断分类的更详细信息。

您可以查看对每列进行分类的其他可能性,以及这些可能性的置信度分数。



在“沿袭”选项卡上,您将看到Watson知识目录捕获的、发生在此数据资产生命周期中的各种事件,从而可以追踪资产自创建以来发生的情况。在“访问控制”选项卡上,您可以查看当前的目录成员列表。您也可以添加成员,这与在项目中添加协作者非常相似。

大多数目录成员可能拥有“编辑者”角色。“查看者”角色受到有意限制,只有少数精选用户会拥有“管理员”角色。





Watson知识目录包含根据组织治理策略自动屏蔽敏感数据的功能。例如,在图中您可以看到数据集中的名字、姓氏和性别数据已被屏蔽。

本节课中我们一起学习了IBM Watson知识目录如何帮助组织处理其众多的数据和其他资产。您了解了它作为统一数据目录的核心功能、其安全与治理特性、灵活的部署选项以及用户如何通过它来发现、理解和协作使用数据资产。

在下一个视频中,我们将介绍数据精炼,这是一个用于分析和准备数据的强大工具。
038:数据精炼工具

在本节课中,我们将学习如何使用IBM Data Refinery这一数据精炼工具,来高效地清洗、转换和准备数据,从而为后续的数据分析和机器学习建模扫清障碍。
数据科学家通常需要花费大量时间执行数据清洗、整理和准备等基础任务。这些任务常常成为阻碍他们进入更有趣的数据集分析或机器学习模型构建阶段的瓶颈。这是因为数据集通常并非立即可用的格式,需要先经过清洗和精炼才能被数据科学家使用。

IBM Data Refinery正是为了解决这一问题而设计的,它简化了数据精炼及其工作流的任务。它提供了一个自助式的数据准备环境,让您可以快速分析、清洗和准备数据集。Data Refinery可在公共云、私有云和桌面端的Watson Studio中使用。
接下来,我们将通过一个具体场景,来了解Data Refinery的实际操作。

🛒 场景介绍:寻找最佳折扣
在本场景中,我们将使用Data Refinery来分析随时间变化的折扣数据,从而找出最佳交易。之后,我们还会将这一分析过程自动化,使其能够定期运行。
在开始分析之前,数据科学家首先查看了数据分布,并注意到“I”列存在数据缺失。


🔍 第一步:探索与清洗“offer”列
她首先对“offer”列进行了可视化。

她注意到该列包含了关于折扣的宝贵信息。许多字段包含百分比信息,有些则引用了之前的价格,表明当前有新的降价优惠。因此,她决定从“offer”列中提取信息。
以下是她的操作步骤:


- 使用条件列操作:她使用了条件列操作来创建一个新列。
![]()

-
筛选有效数据:接下来,她使用筛选操作来剔除那些不包含答案或无法提取折扣信息的交易记录。
![]()
-
提取折扣值:为了提取折扣信息,她使用了“替换子字符串”操作,并提供了一个用于从“offer”字段中提取折扣的模式。
![]()
-
转换数据格式:在将折扣值转换为十进制数之后,她可以直观地看到所有可用的折扣。
![]()
📅 第二步:处理日期数据

现在,她需要找出提供最佳折扣的月份。为此,她可视化了“date updated”列。




她注意到日期字段有多种格式:有些使用短横线(-),有些使用斜杠(/),还有些月份是以文本形式表示的。




她希望Data Refinery能够标准化这些数据并提取出月份。

以下是她的操作步骤:
- 转换日期格式:她使用“转换列”操作,将列转换为日期格式,并选择“年月日(YMD)”模式。
![]()
![]()

- 提取月份:接着,她提取出月份,并创建了一个名为“discount_month”的派生列。
![]()
至此,数据已经包含了所有提供销售的品牌、产品以及优惠可用的月份。



🏷️ 第三步:筛选心仪品牌

这位数据科学家只对她偏好的品牌感兴趣。长期以来,她建立了一个偏好品牌列表,并已将该数据导入到她的项目中。




Data Refinery提供了多种关系型操作,例如左连接、内连接、右连接、全连接、半连接和反连接。

为了确保数据只包含她偏好的品牌,她使用了半连接操作。



这个操作将品牌范围缩小,以匹配她的偏好。



然后,她选择了用于连接的键和结果字段。




可视化结果现在确认了品牌符合她的偏好,并且她需要执行一些聚合操作来找出最佳交易。



📊 第四步:数据聚合与分析


多个因素决定了一笔交易是否划算。她感兴趣的是最佳优惠以及折扣活动的持续时间。



聚合销售数据将有助于理解交易详情。她按“品牌”和“折扣月份”对列进行分组。



并计算了最大折扣。最后,她对结果进行了排序。
现在,Data Refinery按品牌偏好和优惠可用时长显示了最佳交易。



⚙️ 第五步:执行完整分析与自动化

最后一步是在完整数据集上执行分析。



她运行了完整分析,并可以监控其完成状态。


现在是时候将分析自动化,使其能够定期运行了,因为数据库中的数据会随时间增长。



她使用了一个个性化运行时环境来匹配更大的数据量。



并为自动化设置了计划。



这个每小时运行的计划会从数据库中读取更新后的数据。



并写入到目标表中。



✅ 总结
在本节课中,我们一起学习了如何使用IBM Data Refinery工具。通过一系列简单的操作和转换,Data Refinery帮助数据科学家从原始数据中发掘出有价值的交易信息,并完成了大部分繁重的工作。我们了解了如何:
- 探索和清洗数据列。
- 标准化和提取日期信息。
- 使用关系型操作(如半连接)筛选数据。
- 对数据进行聚合分析以得出结论。
- 将整个分析流程自动化,实现定期运行。

感谢观看。



039:Watson Studio中的SPSS建模流程

在本节课中,我们将学习如何使用一种易于上手的图形化方式来构建机器学习模型和流水线。我们将重点介绍Watson Studio中的SPSS建模流程功能。
概述:什么是SPSS建模流程?




SPSS建模流程是Watson Studio平台的一部分,它提供了一种图形化的方式来构建机器学习模型和数据处理流水线。该功能的设计灵感来源于IBM的另一款产品——SPSS Modeler。我们将在后续单元中详细讨论该产品。

核心概念与界面


SPSS建模流程集成了数据管理、数据准备、数据可视化和模型构建等多种工具。所有流程都通过一个拖放式编辑器创建,由不同类型的节点组成,数据根据节点间的连接从一个节点流向另一个节点。

以下是构建流程的核心步骤:
- 从界面左侧的“调色板”区域,将不同类型的节点拖拽到中央的“画布”上。
- 每个流程都始于“导入”组中的一个或多个数据源节点。
- 流程中可以包含其他所有类型的节点,用于数据处理和模型构建。
一个示例流程解析

为了帮助新用户上手,Watson Studio提供了一些示例流程。这里我们以一个药物研究的示例流程为例进行解析。
该流程使用了一个小型人造数据集。目标变量是一个名为drug的分类字段,共有五个类别,同时存在多个预测变量。

流程的执行步骤如下:
- 通过将一个预测变量的值除以另一个预测变量的值,创建出一个新的衍生字段。
- 流程最终构建了一个小型神经网络模型和一个决策树模型。
- 当用户点击顶部面板上的运行按钮(三角形图标)后,流程开始执行并构建模型。
模型构建完成后,每个模型节点下方会显示一个新的五边形节点,称为“模型块”。

查看与评估模型
模型块包含了模型的详细信息,并可用于对新数据进行预测。

以下是查看模型信息的主要方式:
- 查看模型:点击模型块右上角的三个点,选择“查看模型”,即可看到各类模型信息。
- 模型评估:模型查看器的第一个窗口会显示模型准确率及相关指标,如精确率和召回率。在示例中,我们得到了完美的准确率,但这在真实数据中通常难以实现。
- 混淆矩阵:该视图展示了模型在训练数据上的预测结果与实际观测值的匹配情况。在本示例中,所有案例都被正确分类。
- 模型信息:显示一个表格,提供关于模型细节的更多信息。
- 特征重要性:显示一个图表,表明各个模型输入变量的相对预测强度。
深入探索模型结构
我们可以进一步探索已构建模型的具体结构。

对于神经网络模型,“网络图”提供了我们所构建模型的视觉化表示:
- 输入层(左侧):包含与每个连续预测变量和每个分类预测变量的类别相对应的单元,外加一个偏置单元(神经网络每层通常都有)。
- 隐藏层(中间):包含七个单元(神经元)和一个偏置单元。
- 输出层(右侧):包含五个单元,对应五个目标类别。
- 图表右侧和底部的控件支持对模型进行一些交互式探索。单元间连接线的颜色表示该连接权重的值。

对于使用C5算法构建的决策树模型,除了显示模型信息表和特征重要性图表外,还会显示“顶级决策规则”表。决策树模型因其特殊的结构而广受欢迎,这种结构使得解释预测结果或提取决策规则变得非常容易。同时,树状图也会被显示出来。
自动化建模节点与AutoAI

在流程调色板的顶部,有“自动分类器”和“自动数值预测器”节点,分别可用于分类目标和连续目标。这些节点会构建多种类型的模型,并根据特定标准选择最佳的一个。

Watson Studio的AutoAI功能将这种自动化能力提升到了新的水平。它不仅自动寻找最佳模型,还能自动构建完整的数据流水线,其中包含各种数据转换步骤。
总结

本节课中,我们一起学习了Watson Studio中的建模流程如何帮助分析师通过图形化界面创建强大的机器学习流水线,而无需编写任何代码。该功能基于IBM SPSS Modeler。接下来,在完成一个实验以获得该技术的实践经验后,我们将了解另外两个可用于数据科学的IBM产品:IBM SPSS Modeler和IBM SPSS Statistics。
040:IBM SPSS建模工具 📊
在本节课中,我们将讨论两款对数据科学家非常有帮助的产品。这两款产品均随IBM在2009年收购SPSS公司而加入IBM。首先介绍的是IBM SPSS Modeler。

概述
我们将学习IBM SPSS Modeler,这是一个用于数据挖掘和文本分析的可视化软件。它允许用户无需编程即可构建复杂的预测模型管道。本节将详细介绍其界面、核心功能和一个预测客户流失的完整建模流程示例。

工具类别回顾
上一节我们介绍了不同的数据科学工具类别。IBM SPSS Modeler集成了数据管理、数据准备、可视化、模型构建和模型部署等多种能力。

IBM SPSS Modeler简介

该产品由英国Integral Solutions Limited公司于1994年创建,最初名为Clementine。1998年被SPSS公司收购,随后SPSS公司在2009年被IBM收购。
SPSS Modeler是一个数据挖掘和文本分析软件应用程序,用于构建预测模型和执行其他分析任务。它拥有可视化界面,使用户能够在不编程的情况下利用统计和数据挖掘算法。其核心目标之一是从一开始就创建易于使用的复杂预测建模管道。


界面与节点
一个示例模型或“流”如下图所示。它包含一个圆形数据源节点、三个三角形图形节点、一个用于计算新变量的六边形节点,以及画布下方的一个方形输出表节点。
在画布下方,我们可以看到丰富的节点面板,其中包含数据源、记录和字段操作、图形、模型、输出等独立选项卡。不同选项卡中的节点具有不同的形状,例如五边形用于建模节点。


示例流程:预测客户流失
现在,我们来查看产品自带的一个示例流程。该流程从一个电信记录数据集开始,目标是构建一个模型来预测哪些客户即将停止服务,即预测“客户流失”。
数据源由左侧的圆形节点表示。

数据角色与测量级别定义
六边形类型的节点通常跟在数据源节点之后。它使我们能够为所有变量指定角色(目标、预测变量或无)和测量级别(如连续、名义或标志)。
术语“标志”用于表示具有两个类别的变量,其中一个可视为正面,另一个为负面。在此示例中,“流失”字段的测量级别设置为“标志”,角色设置为“目标”。所有其他字段均设置为预测变量和输入。

特征选择
原始数据集有许多字段,其中一些与目标变量无关。因此,我们首先需要确定哪些字段作为预测变量更有用。有一个特征选择建模节点可以帮助完成此任务。
执行包含特征选择节点的流程后,会在流程图中该节点下方创建一个黄色的“模型块”。使用该模型块,我们可以生成一个过滤节点,以过滤掉对目标变量预测能力不强的变量。
数据审计与缺失值处理
位于过滤节点下方的数据审计节点,显示了数据的各种属性,例如每个变量中的异常值数量和有效值的百分比。它还可以帮助创建一个用于缺失值插补的特殊节点,即用基于领域知识选择的一些有效值替换变量的缺失值。

在此例中,变量“log_tool”有超过50%的缺失值。我们将指定一个值(均值)来替换它们。

超级节点

Modeler中的超级节点是一种特殊节点,不在面板中,而是由用户创建并包含特殊功能。数据审计节点使我们能够创建一个用于插补缺失值的超级节点。它呈星形,显示在屏幕右侧。

构建逻辑回归模型

最后,我们将逻辑回归模型节点连接到流程并点击运行。另一个模型块会出现,点击它可以查看各种模型信息和其他输出。

模型输出与评估
点击模型块后打开的“输出”窗口中,“摘要”选项卡显示了目标、输入和一些基于模型构建前指定的高级输出设置的模型构建设置。我们还可以看到分类表、准确度以及模型生成的其他一些输出。

请注意,这些结果仅基于训练数据。

防止过拟合:使用分区节点
为了评估模型在其他真实世界数据上的泛化能力,应始终使用分区节点来保留一部分记录用于测试和验证。
然后在模型设置屏幕中,选中“使用分区数据”复选框。这将有助于检测和避免模型过拟合。

过拟合的定义是:模型在训练数据(用于训练模型的数据)上的准确度显著高于在测试数据或未见数据上的准确度。
公式表示为:
过拟合风险 = 训练准确度 - 测试准确度,当此值过大时,表明可能存在过拟合。

模型评分与评估
之前添加的黄色模型块也可用于计算原始数据或新数据源上的预测(也称为评分)。我们只需将相关数据源连接到该模型块,确保其包含模型中使用的预测变量,并创建一个输出到表格或其他结构以存储评分。我们还可以在模型块内指定评分设置。
请注意,如果模型是基于转换后的预测数据构建的,那么在模型对新数据进行评分之前,会对新数据应用相同的数据转换步骤。
分析节点是流程中的最后一个节点。它连接到模型块,执行时将计算一些模型评估指标,例如混淆矩阵和准确度。




更广泛的功能
在此示例中,我们仅查看了逻辑回归模型。IBM SPSS Modeler提供了丰富的建模面板,包括许多分类、回归、聚类、关联规则和其他模型。它还包含大量数据源类型、数据转换、图形和输出节点的选择。我们甚至还没有讨论文本分析、实体解析以及该产品对数据科学家非常有帮助的许多其他功能。仅IBM SPSS Modeler就可以开设一门完整的课程。

总结

本节课中,我们一起学习了IBM SPSS Modeler如何帮助分析师通过图形界面创建强大的机器学习管道。你了解了其界面组成、核心概念如节点和模型块,并跟随一个预测客户流失的示例,走完了从数据准备、特征选择、缺失值处理到模型构建、评估和评分的完整流程。我们还强调了使用分区节点防止过拟合的重要性。
接下来,我们将讨论最初的SPSS产品,现在称为IBM SPSS Statistics。


041:IBM SPSS统计分析

在本节课中,我们将学习IBM SPSS Statistics软件。这是一个广泛用于统计分析、数据挖掘和预测建模的工具。我们将了解其历史、界面、核心功能以及如何通过图形界面和代码语法来执行数据分析任务。

🏛️ IBM SPSS Statistics的起源与发展
IBM SPSS Statistics由一款1968年发布的产品演变而来。该产品最初名为“社会科学统计软件包”,简称SPSS。
🖥️ 软件界面与数据视图
IBM SPSS Statistics是一款统计与机器学习软件应用,广泛应用于学术界、政府机构及大型企业。它用于构建预测模型、执行数据统计分析以及完成其他分析任务。
该软件拥有可视化界面,使用户无需编程即可利用统计和数据挖掘算法。其界面与Modeler软件有很大不同。
屏幕主区域看起来很像电子表格。它显示数据并允许手动编辑。这个名为“employee data”的小型数据集是早期创建的,不代表真实人物,随产品附带用于演示和教程。
屏幕底部有两个标签页:数据视图和变量视图。

在变量视图中,可以查看和编辑所有变量的信息,包括名称、标签、数据类型和测量级别。还可以指定分类变量的值标签和缺失值。




📂 数据导入与导出
数据窗口顶部是“文件”菜单。选择“导入数据”时,会看到可以导入的多种数据格式列表。
该产品使用其自身的.sav扩展名数据文件格式。该格式保存了我们在变量视图中看到的所有变量信息。
菜单支持从多种其他格式导入数据,也支持导出到多种格式。
🔧 数据操作与验证
在“数据”菜单下,可以找到一系列可能的数据操作选项。
数据验证可以通过用户定义的规则来执行,这些规则指定了变量值的预期行为。例如,如果日期和月份分别存储在不同列中,日期不能超过31天,但对于二月,日期不能超过29天。因此,可以创建特殊规则并在数据验证期间应用。
此外,可以启用一些检查,例如记录中或字段中的缺失值百分比。
点击“转换”菜单项时,会找到多种可用的数据转换选项。
在“计算变量”下,可以基于现有变量为新变量编写公式。可以使用产品中提供的任何主要数学和统计函数。还可以选择使用自动数据准备功能,类似于Modeler软件。
📊 分析与建模
在“分析”菜单中,可以看到多种类型的统计和机器学习分析。
在“回归”下,有多种与回归相关的模型。其他类型的回归也单独出现在分析菜单中,包括一般线性模型、广义线性模型、混合模型和对数线性模型。
现在,让我们在数据上构建一个决策树模型。在这个练习中,我们将尝试基于分析菜单中其他字段来预测“就业类别”字段。


以下是构建决策树的步骤:

- 在分析菜单中,选择“分类”,然后选择“树”。
- 在决策树窗口中,指定因变量为“就业类别”,并使用除ID和出生日期外的大多数其他字段作为预测变量或自变量。
- 通常不应将ID变量用作预测变量,因为它对新案例没有帮助;在此示例中,出生日期似乎也不是有用的预测变量。
- 选择“穷举CHAID”作为我们的生长方法,尽管还有其他三个选项可用。
- 点击“验证”按钮打开决策树验证窗口,在这里选择“拆分样本验证”以确保我们在新数据上测试模型。
- 在决策树窗口中点击“确定”以生成输出,包括此处显示的树形图。
同时会显示一个分类表,展示模型在训练数据和测试数据上的表现。在本例中,训练数据的准确率为91.2%,而测试数据的准确率仅为85.6%。这意味着模型对新数据的泛化能力不是很好。


通过使用不同的模型,有可能获得更好的结果。


📈 图表构建器
接下来,我们看看图表功能。点击“图形”菜单项时,会打开一个多功能图表构建器以及其他几个选项。

图表构建器使我们能够从图库中选择样式,并将所需字段拖到画布上,选择颜色,并从其他选项中进行选择。


以下是一个示例:我们将“先前经验”、“当前薪资”和“性别”变量拖到相应的槽位,以定义图表上点的坐标轴和颜色。
画布上的图并非基于真实数据。这个示例只是让你了解预期的效果。
这是从我们一直使用的数据中获得的真实图表。它显示了不同性别的不同颜色点,以及回归线,这些回归线显示了每个性别的当前薪资与先前经验之间的关系。



💻 语法编辑器与代码复用



在整个IBM SPSS Statistics中,你会看到一个“粘贴”按钮。当你点击粘贴按钮而不是立即执行任务时,应用程序会打开另一个名为“语法编辑器”的窗口。
在这里,你可以看到为你粘贴的代码,称为“语法”。例如,这是我们刚刚构建的决策树的代码。
一旦我们有了语法,就可以执行它、手动编辑它、存储它以备后用,或者将其发送给其他IBM SPSS Statistics用户。
有经验的SPSS用户可以从头开始编写代码,而其他人可能更喜欢通过图形界面生成代码。请记住,在整个程序中都可以使用粘贴语法的选项。
如果语法是由数据分析过程中的所有步骤生成的,包括打开数据集、应用任何数据转换、构建模型,然后保存为扩展名为.sps的语法文件,这类似于在IBM SPSS Modeler中保存一个流。
然而,一个重要的区别是,它没有提供一种简单的方法来用模型对新记录进行评分。我们将在下一节讨论部署模型的不同方式。
🎯 课程总结
在本节课中,我们一起学习了IBM SPSS Statistics如何帮助数据科学家使用许多统计和机器学习技术来分析数据。通过图形用户界面,我们可以创建复杂的分析,这些分析可以以语法的形式保存并在以后重复使用。

接下来,我们将讨论预测模型部署,这是整个数据科学生命周期的重要组成部分。
042:Watson机器学习模型部署 🚀

在本节课中,我们将学习机器学习模型部署的重要性,以及如何利用开放标准和IBM Watson Machine Learning服务将模型投入生产环境。模型部署是实现投资回报的关键步骤,它使模型能够对新数据进行预测或评分。

模型部署的挑战



上一节我们介绍了构建机器学习模型和流水线。本节中我们来看看模型部署环节。在许多实际应用中,只有当模型或流水线投入生产环境,用于对新案例进行预测或评分时,才能获得投资回报。

假设你努力创建了最佳的机器学习模型及其数据准备流水线。你将如何部署你的模型?在许多实际场景中,模型由不同的团队使用不同的编程语言(甚至可能是不同的人类语言)构建和部署。这些团队会使用不同的计算和数据存储环境,将你的程序以及相关的数据准备和后处理步骤从一个环境转换到另一个环境可能非常困难。


模型部署的现有方法
目前,有几种方法可以解决这个问题,包括商业方案和开源方案。然而,每种方案通常只支持从构建到部署的所有可能模型中的一个子集,因此用户会被锁定在特定的框架中。

模型部署的开放标准
开放标准旨在支持更广泛的专有和开源模型之间的模型交换。
以下是几种主要的开放标准:

- 预测模型标记语言:PMML是第一个基于XML的此类标准,由数据挖掘小组在20世纪90年代创建。PMML 4.4版本包含了17种统计和机器学习模型以及许多内置函数的数据转换方法。该标准被广泛认知和使用。Watson Studio、IBM SPSS Statistics、IBM SPSS Modeler等产品都支持将大多数模型导出为PMML格式。
- 分析可移植格式:2013年,市场产生了对新标准的需求,这种标准不描述模型及其特征,而是直接描述评分过程,并且基于JSON而非XML。这导致了PFA的创建。PFA现在被许多公司和开源包使用。
- 开放神经网络交换格式:2012年后,深度学习模型变得非常流行,但PMML和PFA未能迅速适应其发展。由于新兴深度学习框架和专用硬件的多样性,对标准中间表示形式的需求被放大。2017年,微软和Facebook创建并开源了ONNX格式,最初用于神经网络,后来扩展到也支持传统机器学习。目前,许多公司正在合作进一步开发和扩展ONNX,广泛的产品和开源包都在增加对它的支持。
IBM Watson Machine Learning
Watson Machine Learning是IBM用于模型部署的商业产品。它支持部署使用大多数开源包构建的模型,以及用PMML或ONNX表达的模型。它还支持部署IBM SPSS Modeler流和来自Watson Studio的Modeler流程。
部署可以通过图形界面或Python代码完成,可以用于通过REST API进行在线评分,也可以进行批量评分。

Watson Machine Learning通过提供多种编程语言的代码片段,帮助将已部署的模型集成到应用程序中。


总结

本节课中我们一起学习了模型部署的挑战、现有的部署方法以及关键的开放标准(PMML、PFA、ONNX)。我们还了解了IBM Watson Machine Learning如何作为一个综合性平台,支持多种格式的模型部署,并帮助将模型集成到生产应用程序中。接下来,我们将讨论AutoAI和OpenScale这两个高级Watson Studio功能,它们有助于进一步简化数据科学家的工作。
043:Watson Studio自动AI 🤖
在本节课中,我们将要学习IBM Watson Studio中的一项强大功能——AutoAI。这项功能能够自动化机器学习流程的创建,帮助数据科学家更快地获得结果,并专注于更具创造性的工作。
概述

在前面的章节中,我们了解了IBM SPSS Modeler和Watson Studio Modeler Flows如何允许您以图形化方式创建包含数据转换步骤和机器学习模型的流程。




这类步骤序列被称为数据流水线或机器学习流水线。



本节将探讨Watson Studio的一个特性,它有助于自动化创建机器学习流水线。这使得数据科学家能够更快地产生结果,并专注于更具创造性的工作。

自动化AI的必要性
目前,市场上缺乏合格的数据科学家。数据科学家通常执行的许多操作是重复且耗时的。因此,自动化部分重复性工作将有助于释放新手和经验丰富的数据科学家的时间,让他们能够专注于接受过培训的重要工作。








什么是AutoAI?
AutoAI系统由IBM研究专家与IBM杰出工程师、两届Kaggle大师Jean Francois Puget合作开发。它提供了一个图形界面,用于创建和部署带有实时可视化的机器学习模型。








AutoAI自动执行典型的机器学习步骤,例如:
- 数据准备
- 模型选择
- 特征工程
- 超参数优化


用户可以在图形界面上查看进度。
AutoAI实战:一个分类示例
上一节我们介绍了AutoAI的概念,本节中我们来看看一个具体的应用实例。
这个例子展示了训练一个模型来预测顾客是否可能从一家户外装备店购买帐篷。
我们从一个结构化的历史数据集开始。在这个数据集中,有四个特征或预测列:
gender:顾客的性别age:顾客的年龄marital_status:婚姻状况(已婚、单身或未指定)profession:顾客职业的一般类别,例如酒店业、销售或简单的“其他”
模型将学习预测Is_tent列的值,即顾客是否购买了帐篷。



当我们选择Is_tent作为要预测的列后,AutoAI会分析数据并确定Is_tent列包含True/False信息,这使得这些数据适合用于二元分类模型。二元分类的默认评估指标是ROC/AUC。


点击“运行实验”后,一个信息图会显示模型训练过程中构建流水线的过程。一旦流水线创建完成,我们可以在排行榜中查看和比较排名后的流水线。





流水线比较与回归示例


由于底层样本数据的原因,上述二元分类模型的流水线相当一致。




为了更清楚地观察流水线的作用,我们可以将实验重新运行为一个回归实验,以预测购买金额。该实验会在生成的流水线中产生更好的多样性。😊




点击“流水线比较”后,我们可以看到不同流水线在各种模型质量指标上的差异。这些流水线可以作为机器学习资产保存在Watson Studio项目中,然后进行部署和测试。
功能范围与总结
目前,AutoAI仅适用于分类和回归模型。计划在未来增加时间序列模型的支持。
在本节课中,我们一起学习了AutoAI如何自动化典型的数据科学任务,帮助更快地获得性能更好的数据流水线,同时简化了在Watson Machine Learning中将流水线部署到生产环境的过程。












在下一节中,我们将讨论Watson OpenScale,它有助于确保您的模型是公平的、可解释的并且是最新的。




044:IBM Watson公平性监测 👁️

在本节课中,我们将学习IBM Watson Studio的一个重要功能——Watson OpenScale。该工具旨在确保机器学习流程的公平性与可解释性,并在模型部署后持续监控其性能。


概述:什么是IBM Watson OpenScale? 🧠
IBM Watson OpenScale是一个综合性产品,它包含多个关键功能,旨在管理生产环境中的AI模型。
上一节我们介绍了Watson Studio平台,本节中我们来看看其子产品OpenScale的核心能力。

以下是OpenScale的主要功能:

- 公平性测试与纠偏:它能测试模型及其预测的公平性,并提供方法来克服偏见。
- 预测可解释性:它能帮助提供模型预测的解释,这对于某些应用领域的合规性至关重要。
- 性能监控与漂移检测:它监控模型在生产环境中的性能,并能检测其随时间的退化或“模型漂移”。
- 自动再训练:用户可以设定标准,当满足条件时,模型会自动使用新数据进行再训练。
- 业务影响衡量:它有助于衡量模型对业务的帮助程度。


核心功能一:监测与确保公平性 ⚖️

用户需要知道他们的AI模型是公平的。然而,模型训练所用的数据可能包含不希望的偏见,这些偏见可能会无意中被带入最终的模型中。
IBM Watson OpenScale不仅能在模型构建时,还能在模型投入生产后检测偏见。


公平性如何衡量?


OpenScale通过计算不同群体(例如,女性与男性)获得相同结果的比率差异来衡量模型的公平性。

公式表示:公平性值 = (监测群体获得有利结果的比率) / (参考群体获得有利结果的比率) * 100%


公平性值低于100%意味着被监测群体比参考群体更频繁地获得不利结果。

实例演示:信贷风险模型


在一个信贷风险模型的演示中,模型根据信用历史、年龄、抚养人数等多种特征来决定某人是否有资格获得贷款。
启动OpenScale后,我们可以看到被监控模型的几个关键指标,例如其质量和公平性分数。在本例中,数据显示女性获得“无风险”结果(即贷款获批)的比率低于男性。
洞察偏见根源


OpenScale允许检查每个模型的训练数据。检查揭示出,训练数据中男性的数据多于女性。这为了解模型为何对申请贷款的女性存在偏见提供了一些线索。数据科学家可以利用这些信息来改进模型。
缓解偏见


检测偏见是一方面,OpenScale还能通过创建一个“去偏见”模型来缓解它,该模型与受监控的模型一同运行。
这个“去偏见”模型经过训练,能够检测出您的生产模型何时会做出带有偏见的预测。对于这些预测,Watson OpenScale会将记录中的监测值(本例中为“女性”)翻转为参考值(“男性”),而保持该记录中所有其他数据点不变。


如果这一改变将预测从“有风险”变为“无风险”,那么“去偏见”模型就会将“无风险”结果作为去偏见后的结果呈现。这只是Watson OpenScale帮助确保模型公平性的方法之一。


核心功能二:提供预测解释 📝

用户和客户希望知道AI模型为何得出某个推荐或预测。但对于大多数模型而言,提供这种解释并非易事。

IBM Watson OpenScale能用业务友好的语言解释预测。例如,对于这个被预测为“有风险”的信贷申请,OpenScale会确定对该预测产生正面或负面贡献的特征,并将其清晰地列出来。


解释以可视化方式呈现,同时也提供基于句子的文本摘要,以确保最大程度的清晰度。

利用IBM专有的研究技术,OpenScale还能生成对比解释。在这里,我们可以看到对此输入记录所需的最小更改,这些更改将产生不同的输出,将预测从“有风险”变为“无风险”。

Watson OpenScale提供的解释可以帮助组织遵守诸如《公平信用报告法》和GDPR等法规,这些法规赋予客户权利要求知道其申请被拒绝的原因。

核心功能三:监控模型漂移与性能 📉


在AI模型投入生产之前,它必须证明自己能在测试数据(训练数据的一个子集)上做出准确的预测。然而,随着时间的推移,生产数据可能开始与训练数据有所不同,导致模型开始做出不那么准确的预测。这种现象被称为“漂移”。
IBM Watson OpenScale监控模型在生产数据上的准确性,并将其与在训练数据上的准确性进行比较。当准确性差异超过设定的阈值时,OpenScale会生成警报。

同时,OpenScale会揭示哪些交易导致了漂移,并识别出应负责的主要交易特征。例如,在此贷款审批模型中,导致漂移的交易有25%是因为某些特征存在问题,这些特征包含的数据与训练数据有至关重要的不同。
导致漂移的交易可以被发送进行手动标记,并用于重新训练模型,从而使其预测准确性在运行时不会下降。Watson OpenScale不仅帮助识别漂移,还突出其根本原因,并提供可转化为训练数据的交易,有助于修复漂移。
例如,根据Watson OpenScale的建议重新训练的模型版本,开始做出准确的推荐,缓解了漂移问题。这确保了您的模型能够随着时间的推移持续交付您期望的结果。


总结 🎯

本节课中,我们一起学习了IBM Watson OpenScale如何确保模型的公平性与可解释性,并在生产环境中监控模型漂移。我们了解了它通过量化指标检测偏见、提供直观预测解释、以及预警和辅助修复性能漂移的核心机制。这完成了关于IBM为数据科学家提供的产品介绍模块。祝测验顺利!😊

浙公网安备 33010602011771号