主体组件分析
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
计算一组减少了维数的特征以便更高效地学习
类别: 数据转换/采样和拆分
模块概述
本文介绍如何使用机器学习 Studio 中的 "主体组件分析" 模块 (经典) 来减小定型数据的维数。 该模块分析你的数据,并创建一个精简功能集,用于捕获数据集中包含的所有信息,但不包含在更少的功能中。
此外,此模块还会创建一个转换,你可将它应用于新数据以便在功能维数和压缩方面实现类似的精简,而无需额外的训练。
详细了解主成分分析
主体组件分析 (PCA) 是机器学习中常用的技术。 它依赖于许多类型的矢量空间数据可压缩的事实,并且通过采样可以最有效地实现压缩。
增加了 PCA 的好处是改进了数据可视化,并优化了学习算法所使用的资源。
机器学习 Studio 中的主体组件分析模块 (经典) 在提供的数据集中使用一组功能列,并创建具有较低维数的特征空间的投影。 该算法使用随机化技术来识别捕获完整功能矩阵中的大部分信息的功能子空间。 因此,转换后的数据矩阵捕获原始数据的方差,同时降低噪音的影响并将过度拟合的风险降到最低。
有关主体组件分析 (PCA 的一般信息) 参阅此 维基百科文章。 有关此模块中使用的 PCA 方法的信息,请参阅以下文章:
查找具有随机性的结构:用于构造近似矩阵分解的概率算法。 Halko、Martinsson 和 Tropp,2010。
在大规模 PCA 中合并结构化和非结构化随机性在大规模 PCA 中合并结构化和非结构化随机性。 Karampatziakis 和 Mineiro,2013。
如何配置主体组件分析
将 主体组件分析 模块添加到试验中。 您可以在 " 数据转换" 下的 " 缩放和缩小 " 类别中找到它。
连接要转换的数据集,并选择要分析的功能列。
如果它还不清楚哪些列是功能,哪些列是标签,则建议使用 编辑元数据 模块来提前标记列。
要减少到的维度数:在最终输出中键入所需的列数。 每个列都表示一个维度,该维度捕获输入列中的部分信息。
例如,如果源数据集具有八列,并且你键入
3
了,则将返回三个新列来捕获八个选定列的信息。 列的名称为Col1
、Col2
和Col3
。 这些列不会直接映射到源列;相反,列包含原始列1-8 描述的特征空间的近似值。提示
当缩减维度数比原始维度大得多时,该算法将以最佳方式工作。
将密集数据集标准化为零平均值:如果数据集为密集数据集,则选择此选项,这意味着它包含缺少的值。 如果选择此选项,则在任何其他处理之前,模块会将列中的值规范化为零的平均值。
对于稀疏数据集,不应选择此选项。 如果检测到稀疏数据集,则该参数将被重写。
运行试验。
结果
该模块输出一组可以在创建模型时使用的缩减列。 可以将输出保存为新的数据集,或在试验中使用。
(可选)可以将分析过程保存为保存的转换,以便使用 应用转换应用到另一个数据集。
应用转换的数据集必须与原始数据集具有相同的架构。
示例
有关如何在机器学习中使用主体组件分析的示例,请参阅 Azure AI 库:
聚类分析:查找类似的公司:使用主体组件分析将文本挖掘中的值数减少到可管理的功能数。
虽然在此示例中使用自定义 R 脚本应用 PCA,但它阐释了如何通常使用 PCA。
技术说明
计算较低尺寸的组件分为两个阶段。
- 第一种是构造一个用于捕获矩阵操作的低端子空间。
- 第二种是将矩阵限制为子空间,然后计算简化矩阵的标准因子分解。
预期输入
名称 | 类型 | 说明 |
---|---|---|
数据集 | 数据表 | 要减少其维度的数据集 |
模块参数
名称 | 类型 | 范围 | 可选 | 说明 | 默认 |
---|---|---|---|---|---|
选定的列 | ColumnSelection | 必选 | 要应用 PCA 的选定列 | ||
要减少到的维度数 | Integer | >=1 | 必选 | 精简数据集中所需的维度数 | |
将密集数据集规范化为零平均值 | 布尔值 | 必须 | 是 | 指示密集数据集的输入列是否进行平均值规范化处理(对于稀疏数据,将忽略此参数) |
Outputs
名称 | 类型 | 说明 |
---|---|---|
结果数据集 | 数据表 | 维度减少后的数据集 |
PCA 转换 | ITransform 接口 | 应用于数据集时,此转换将会产生一个维度已减少的新数据集 |
例外
异常 | 描述 |
---|---|
错误 0001 | 如果找不到数据集的一个或多个指定列,将出现异常。 |
错误 0003 | 如果一个或多个输入为 NULL 或为空,将出现异常。 |
错误 0004 | 如果参数小于或等于特定值,将出现异常。 |
有关特定于 Studio (经典) 模块的错误列表,请参阅机器学习错误代码。
有关 API 异常的列表,请参阅机器学习 REST API 错误代码。