读书笔记《distributed-data-systems-with-azure-databricks》第8章机器学习的数据库运行时
Chapter 8: Databricks Runtime for Machine Learning
本章将深入探讨经典机器学习算法的开发,以基于表格数据训练和部署模型,同时探索库和算法。这些示例将重点介绍使用 Azure Databricks Runtime for Machine Learning (Databricks Runtime ML) 的特殊性和优势。
在本章中,我们将探讨以下概念,这些概念侧重于我们如何提取和改进数据中可用的特征,以训练我们的机器学习和深度学习模型。我们将讨论的主题在这里列出:
- Loading data
- Feature engineering
- Time-series data sources
- Handling missing values
- Extracting features from text
- Training machine learning models on tabular data
在以下部分中,我们将讨论执行所介绍的操作所需的必要库,并提供一些关于最佳实践如何...
Loading data
逗号分隔 值(CSV)是最广泛使用的格式机器学习应用程序中的表格数据。正如名称所暗示的,它以行的形式存储数据,以逗号或制表符分隔。
此 部分介绍了有关加载专门用于机器学习和深度学习应用程序的数据的信息。尽管我们可以考虑前面章节中介绍的这些概念,但我们将加强有关如何将表格数据直接读入 Azure Databricks 以及执行此操作的最佳实践的概念。
Reading data from DBFS
在分布式计算环境(如 Azure Databricks)中训练机器学习算法时,共享存储的需求变得很重要,尤其是在使用分布式深度学习应用程序时。 Azure Databricks 文件 系统 (DBFS ) 允许使用 Spark 和本地文件应用程序 集群的数据>编程 接口(API):
在 Azure Databricks 中...
Feature engineering
机器学习模型使用输入数据进行训练,然后提供对未见数据的预测作为结果。此输入数据通常由通常以结构化列形式出现的特征组成。算法使用这些数据来推断可用于推断结果的模式。在这里,特征工程的需求产生于两个主要目标,如下所示:
- Refactoring the input data to make it compatible with the machine learning algorithm we have selected for the task. For example, we need to encode categorical values if these are not supported by the algorithm we choose for our model.
- Improving the predictions produced by the models according to the performance metric we have selected for the problem at hand.
通过特征工程,我们从原始输入数据中提取相关特征,以便能够根据要解决的问题的建模方式准确地表示它,从而产生...
Time-series data sources
Handling missing values
现实生活中的数据远非完美,缺失值的情况非常普遍。数据变得不可用的机制对于提出一个好的插补策略非常重要。我们将插补称为处理数据中缺失值的过程,在大多数情况下,这些值表示为 NaN 值。其中最重要的方面之一是知道缺少哪些值:
- In the following code example, we will show how we can find out which columns have missing or null values by summing up all the Boolean output of the Spark
isNull
method by casting this Boolean output to integers: - Another alternative would be to use the output of the Spark data frame describe method to filter out the count of missing values in each column and, finally, subtracting the count...
Extracting features from text
Training machine learning models on tabular data
在这个例子中,我们将使用数据科学中非常流行的数据集,即物理化学特性的葡萄酒数据集,来预测特定葡萄酒的质量。我们将使用 Azure Databricks Runtime ML,因此请确保将笔记本附加到运行此版本可用运行时的群集,如本章开头的要求中所述。
Engineering the variables
- Our first step is to load the necessary data to train our models. We will load the datasets, which are stored as example datasets in DBFS, but you can also get them from the UCI Machine Learning repository. The code is shown in the following snippet:
Summary
在本节中,我们介绍了许多与如何使用标记化、多项式扩展和 one-hot 编码等方法提取和改进数据中可用特征相关的示例。这些方法允许我们为模型的训练准备变量,并被视为特征工程的一部分。
接下来,我们深入研究了如何使用 TF-IDF 和 Word2Vec 从文本中提取特征,以及如何使用 PySpark API 处理 Azure Databricks 中的缺失数据。最后,我们完成了一个示例,说明如何训练深度学习模型并使其准备好在发布 REST API 请求时提供服务和获取预测。
在下一章中,我们将更多地关注使用 TFRecords 和 Petastorm 处理大量数据以进行深度学习,以及如何利用现有模型从 Azure Databricks 中的新数据中提取特征。