费舍尔线性判别分析
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
标识可最好地将数据分成单独的类的特征变量的线性组合
类别: 功能选择模块
模块概述
本文介绍如何使用 机器学习 Studio (经典) 中的"测量线性离散分析"模块创建一个新的特征数据集,该数据集捕获功能的组合,以最佳方式将两个或多个类分隔开。
此方法通常用于维数约简,因为它可以将一组特征投影到较小的特征空间,同时保留用于区分类的信息。 这不仅降低了给定分类任务的计算成本,而且可以帮助防止过度拟合。
若要生成分数,请提供一个标签列和一组数值特征列作为输入。 该算法确定而呈线性增长,同时最大的距离每个组中分隔每一组数据的输入列的最佳组合。 该模块返回一个数据集,其中包含压缩的转换特征,以及一个可以保存并应用于另一个数据集的转换。
有关线性离散分析的更多信息
线性离散分析类似于 A VARIANCE (方差) ,因为它的工作原理是比较变量的方法。 与 A一样,它依赖于以下假设:
- 预测值各不相关
- 每个样本的条件概率密度函数是正态分布的
- 组间的方差类似
线性离散分析有时缩写为 LDA,但这很容易与 潜在 Dirichlet 分配混淆。 这些方法完全不同的,因此在本文档中,我们会尽可能使用全名。
如何配置线性离散分析
添加输入数据集,并检查输入数据是否满足以下要求:
- 数据应尽可能完整。 忽略具有任何缺失值的行。
- 值应具有正态分布。 在使用 费舍线性离散分析之前,请查看离群值的数据,或测试分布。
- 预测器应少于样本。
- 删除任何非数值列。 该算法检查 输入 中包含的所有有效数值列,如果包含无效列,则返回错误。 如果需要排除任何数值列,请在"执行线性离散分析"之前添加"选择数据集中的列"模块,以创建仅包含要分析的列的视图。 稍后可以使用"添加列"重新 加入列。 保留行的原始顺序。
连接线性离散分析模块中输入数据。
对于 "类标签"列,单击 "启动列选择器" 并选择一个标签列。
对于 "功能提取器数",键入要作为结果的列数。
例如,如果数据集包含 8 个数字特征列
3
,可以键入 将其折叠为仅包含三列的新缩减特征空间。必须了解,输出列并不完全对应于输入列,而是表示输入列中值的压缩转换。
如果使用 0 作为特征提取器数的值,并且 n 列用作输入,则返回 n 个特征提取器,其中包含表示 n 维特征空间的新值。
运行试验。
结果
该算法确定输入列中的值的组合,这些值以线性方式分隔每组数据,同时最小化每个组内的距离,并创建两个输出:
转换后的特征。 一个数据集,其中包含指定数目的特征提取程序列,名为 col1、col2、col3 等。 输出还包括 类或标签变量。
可以使用这个精简的值集来训练模型。
线性离散分析转换。 一个转换,可以保存该转换,然后应用于具有相同架构的数据集。 如果要分析许多相同类型的数据集,并且想要将相同的特征缩减应用于每个数据集,则这很有用。 应用于的数据集应具有相同的架构。
示例
有关机器学习中功能选择的示例,请参阅以下 Azure AI 库:
- 线性离散分析:演示如何使用此模块来减少维数。
技术说明
本部分包含实现详情、使用技巧和常见问题解答。
使用提示
此方法仅适用于连续变量,而不适用于分类或顺序变量。
在计算转换矩阵时,将忽略具有缺失值的行。
如果从试验中保存转换,则从原始试验计算的转换将重新应用到每个新数据集,并且不会重新计算。 因此,如果要计算每组数据的新特征集,请针对每个数据集使用 一个新的 Linear Discriminant Analysis 实例。
实现详细信息
特征数据集使用特征 函数进行转换。 输入数据集的特征函数是根据提供的特征列(也称为正比矩阵) 计算的。
模块的转换输出包含这些特征函数,可以应用这些特征函数来转换具有相同架构的另一个数据集。
要详细了解如何计算特征值,请参阅此白皮书 (PDF) : 基于特征提取的分类。 Tymbal, Puuronen et al。
预期输入
名称 | 类型 | 说明 |
---|---|---|
数据集 | 数据表 | 输入数据集 |
模块参数
名称 | 类型 | 范围 | 可选 | 默认 | 说明 |
---|---|---|---|---|---|
类标签列 | ColumnSelection | 必须 | 无 | 选择包含分类类标签的列 | |
特征提取器数 | Integer | >=0 | 必选 | 0 | 要使用的特征提取器数。 如果数量为零,将使用所有特征提取器 |
Outputs
名称 | 类型 | 说明 |
---|---|---|
转换后的特征 | 数据表 | 费舍尔线性判别分析功能转换为 eigenvector 空间 |
费舍尔线性判别分析转换 | ITransform 接口 | 费舍尔线性判别分析转换 |
例外
异常 | 描述 |
---|---|
错误 0001 | 如果找不到数据集的一个或多个指定列,将出现异常。 |
错误 0003 | 如果一个或多个输入为 NULL 或为空,将出现异常。 |
错误 0017 | 如果一个或多个指定列具有当前模块不支持的类型,则会发生异常。 |
有关特定于 Studio (经典) 模块的错误列表,请参阅机器学习错误代码。
有关 API 异常的列表,请参阅机器学习 REST API 错误代码。