使用 Azure 机器学习工作室连接到数据
本文介绍如何使用 Azure 机器学习工作室访问数据。 使用 Azure 机器学习数据存储连接到 Azure 上存储服务中的数据,然后使用 Azure 机器学习数据集为 ML 工作流中的任务打包这些数据。
下表定义并汇总了数据存储和数据集的好处。
对象 | 说明 | 好处 |
---|---|---|
数据存储 | 安全地连接到 Azure 上的存储服务,方法是将连接信息(如订阅 ID 和令牌授权)存储在与工作区关联的 Key Vault 中 | 由于你的信息已安全存储,因此, |
数据集 | 通过创建数据集,可以创建对数据源位置的引用及其元数据的副本。 利用数据集,你可以, |
由于数据集是延迟计算的,并且数据仍保留在其现有位置,因此 |
若要了解在 Azure 机器学习总体数据访问工作流中的哪些位置使用数据存储和数据集,请参阅安全地访问数据一文。
若要获得代码优先体验,请参阅以下文章来使用 Azure 机器学习 Python SDK 以:
先决条件
Azure 订阅。 如果没有 Azure 订阅,可在开始前创建一个试用帐户。 试用免费版或付费版 Azure 机器学习。
访问 Azure 机器学习工作室。
Azure 机器学习工作区。 创建工作区资源。
- 创建工作区时,会将 Azure Blob 容器和 Azure 文件共享作为数据存储自动注册到工作区。 它们分别命名为
workspaceblobstore
和workspacefilestore
。 如果 blob 存储足以满足你的需要,则workspaceblobstore
设置为默认数据存储,并且已配置,可供使用。 否则,你需要 Azure 上具有支持的存储类型的存储帐户。
- 创建工作区时,会将 Azure Blob 容器和 Azure 文件共享作为数据存储自动注册到工作区。 它们分别命名为
创建数据存储
可从这些 Azure 存储解决方案创建数据存储。 对于不支持的存储解决方案,为了在 ML 试验期间节省数据出口成本,你必须将数据移到支持的 Azure 存储解决方案。 了解有关数据存储的详细信息。
可以创建具有基于凭据的访问或基于标识的访问的数据存储。
在 Azure 机器学习工作室中通过几个步骤创建新的数据存储。
重要
如果数据存储帐户位于虚拟网络中,则需要执行其他配置步骤以确保工作室可以访问你的数据。 请参阅网络隔离和隐私,以确保应用了适当的配置步骤。
- 登录到 Azure 机器学习工作室。
- 在左窗格的“资产”下,选择“数据”。
- 在顶部,选择“数据存储”。
- 选择“+创建”。
- 完成表单以创建和注册新的数据存储。 该表单会根据你选择的 Azure 存储类型和身份验证类型智能地进行更新。 请参阅存储访问和权限部分,了解在哪里可以找到填充此窗体所需的身份验证凭据。
下面的示例展示了创建 Azure Blob 数据存储时窗体的外观:
创建数据资产
创建数据存储后,创建一个数据集以与数据交互。 数据集可将数据打包成一个延迟计算的可供机器学习任务(例如训练)使用的对象。 了解有关数据集的详细信息。
有两种类型的数据集:FileDataset 和 TablerDataSet。 FileDatasets 创建对单个或多个文件或公共 URL 的引用。 然而,TabularDatasets 以表格格式表示数据。 可以从 .csv、.tsv、.parquet、.jsonl 文件以及从 SQL 查询结果创建 TabularDatasets。
以下步骤介绍如何在 Azure 机器学习工作室中创建数据集。
注意
通过 Azure 机器学习工作室创建的数据集会自动注册到工作区。
导航到 Azure 机器学习工作室
在左侧导航的“资产”下,选择“数据”。 在“数据资产”选项卡上,选择“创建”
为数据资产提供一个名称和可选说明。 然后,在“类型”下,选择其中一种数据集类型(“文件”或“表格”)。
对于数据源,你有多个选项。 如果数据已存储在 Azure 中,请选择“来自 Azure 存储”。 如果要上传本地驱动器中的数据,请选择“来自本地文件”。 如果数据存储在公共 Web 位置,请选择“来自 Web 文件”。 还可以从 SQL 数据库创建数据资产。
在文件选择步骤中,请选择希望将数据存储在 Azure 中的位置以及要使用的数据文件。
- 如果数据位于虚拟网络中,请启用“跳过验证”。 详细了解虚拟网络隔离和隐私。
按照步骤为数据资产设置数据分析设置和架构。 设置将基于文件类型进行预填充,你可以在创建数据资产之前进一步配置设置。
到达“审阅”步骤后,单击最后一页上的“创建”
数据预览和配置文件
创建数据集后,请按照以下步骤验证是否可以在工作室中查看配置预览和配置文件:
- 登录到 Azure 机器学习工作室
- 在左侧导航栏的“资产”下,选择“数据”。
- 选择要查看的数据集的名称。
- 选择”浏览“选项卡。
- 选择“预览”选项卡。
- 选择“配置文件”选项卡。
可以获取整个数据集的各种摘要统计信息,以验证该数据集是否随时可在机器学习中使用。 对于非数字列,仅包括最小值、最大值和误差计数等基本统计信息。 对于数字列,还可以查看其统计时刻和估算的分位数。
具体而言,Azure 机器学习数据集的数据配置文件包括:
注意
对于具有不相关类型的特征,将显示空白条目。
统计信息 | 说明 |
---|---|
功能 | 正在汇总的列的名称。 |
配置文件 | 基于推理的类型显示的内联可视化效果。 例如,字符串、布尔值和日期包含值计数,而小数(数字)则包含近似的直方图。 这样,就可以快速了解数据的分布。 |
类型分布 | 列中类型的内联值计数。 Null 是其自身的类型,因此,此可视化效果可用于检测反常值或缺失值。 |
类型 | 列的推理类型。 可能的值包括:字符串、布尔值、日期和小数。 |
Min | 列的最小值。 对于没有固有顺序(例如布尔值)的特征类型,将显示空白条目。 |
Max | 列的最大值。 |
计数 | 列中缺失和未缺失条目的总数。 |
非缺失计数 | 列中的非缺失条目数。 空字符串和错误被视为值,因此它们将计入“非缺失计数”。 |
分位数 | 每个分位数中的近似值,用于提供数据分布的概观。 |
平均值 | 列的算术中间值或平均值。 |
标准偏差 | 此列数据的离散量或差异量的度量。 |
Variance | 此列数据与其平均值之间的分散程度度量。 |
倾斜 | 此列数据与正态分布之间的差异程度度量。 |
峰度 | 此列数据与正态分布相比的落后程度度量。 |
存储访问和权限
为了确保安全连接到 Azure 存储服务,Azure 机器学习会要求你具有相应数据存储的访问权限。 此访问权限依赖用于注册数据存储的身份验证凭据。
虚拟网络
如果你的数据存储帐户在虚拟网络中,则需要执行额外配置步骤来确保 Azure 机器学习能够访问你的数据。 请参阅在虚拟网络中使用 Azure 机器学习工作室,以确保在创建和注册数据存储时应用适当的配置步骤。
访问验证
警告
不支持跨租户访问存储帐户。 如果方案需要跨租户访问,请联系 AzureML 数据支持团队(别名 amldatasupport@microsoft.com),获取自定义代码解决方案的帮助。
在初始的数据存储创建和注册过程中,Azure 机器学习会自动验证基础存储服务是否存在,以及用户提供的主体(用户名、服务主体或 SAS 令牌)是否有权访问指定的存储。
创建数据存储后,此验证只针对要求访问基础存储容器的方法执行,而不是每次检索数据存储对象时都执行 。 例如,如果要从数据存储中下载文件,则会进行验证;但如果只想更改默认数据存储,则不进行验证。
若要验证对基础存储服务的访问,可以根据要创建的数据存储类型提供帐户密钥、共享访问签名 (SAS) 令牌或服务主体。 存储类型矩阵列出了与各种数据存储类型对应的受支持的身份验证类型。
可在 Azure 门户上查找帐户密钥、SAS 令牌和服务主体信息。
如果计划使用帐户密钥或 SAS 令牌进行身份验证,请在左窗格中选择“存储帐户”,然后选择要注册的存储帐户。
- “概述”页面提供了帐户名称、容器和文件共享名称等信息。
- 对于帐户密钥,请转到“设置”窗格中的“访问密钥” 。
- 对于 SAS 令牌,请转到“设置”窗格中的“共享访问签名” 。
- “概述”页面提供了帐户名称、容器和文件共享名称等信息。
如果计划使用服务主体进行身份验证,请转到“应用注册”,然后选择要使用的应用。
- 其对应的“概览”页面将包含租户 ID 和客户端 ID 之类的必需信息。
重要
- 如果需要更改 Azure 存储帐户的访问密钥(帐户密钥或 SAS 令牌),请确保将新凭据与工作区以及与其连接的数据存储同步。 了解如何同步更新的凭据。
- 如果你注销了一个数据存储并重新注册一个同名数据存储,但注册失败,则表示工作区的 Azure Key Vault 可能未启用软删除。 默认情况下,将为工作区创建的密钥保管库实例启用软删除,但如果使用的是现有密钥保管库或是在 2020 年 10 月之前创建的工作区,则可能无法启用软删除。 有关如何启用软删除的信息,请参阅对现有的密钥保管库启用软删除。
权限
对于 Azure Blob 容器和 Azure Data Lake Gen2 存储,请确保身份验证凭据具有“存储 Blob 数据读取者”访问权限。 详细了解存储 Blob 数据读取器。 帐户 SAS 令牌默认为无权限。
如需进行数据读取访问,你的身份验证凭据必须至少具有容器和对象的“列出”和“读取”权限。
若需进行数据写入访问,还需要“写入”和“添加”权限。
使用数据集进行训练
在机器学习试验中使用数据集来训练 ML 模型。 详细了解如何使用数据集进行训练。