费舍尔线性判别分析

重要

对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习

从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。

ML 工作室(经典)文档即将停用,将来可能不会更新。

标识可最好地将数据分成单独的类的特征变量的线性组合

类别: 功能选择模块

注意

适用于:机器学习 Studio (经典) 应用

可在 Azure 机器学习设计器中获取类似的拖放模块。

模块概述

本文介绍如何使用 机器学习 Studio (经典) 中的"测量线性离散分析"模块创建一个新的特征数据集,该数据集捕获功能的组合,以最佳方式将两个或多个类分隔开。

此方法通常用于维数约简,因为它可以将一组特征投影到较小的特征空间,同时保留用于区分类的信息。 这不仅降低了给定分类任务的计算成本,而且可以帮助防止过度拟合。

若要生成分数,请提供一个标签列和一组数值特征列作为输入。 该算法确定而呈线性增长,同时最大的距离每个组中分隔每一组数据的输入列的最佳组合。 该模块返回一个数据集,其中包含压缩的转换特征,以及一个可以保存并应用于另一个数据集的转换。

有关线性离散分析的更多信息

线性离散分析类似于 A VARIANCE (方差) ,因为它的工作原理是比较变量的方法。 与 A一样,它依赖于以下假设:

  • 预测值各不相关
  • 每个样本的条件概率密度函数是正态分布的
  • 组间的方差类似

线性离散分析有时缩写为 LDA,但这很容易与 潜在 Dirichlet 分配混淆。 这些方法完全不同的,因此在本文档中,我们会尽可能使用全名。

如何配置线性离散分析

  1. 添加输入数据集,并检查输入数据是否满足以下要求:

    • 数据应尽可能完整。 忽略具有任何缺失值的行。
    • 值应具有正态分布。 在使用 费舍线性离散分析之前,请查看离群值的数据,或测试分布。
    • 预测器应少于样本。
    • 删除任何非数值列。 该算法检查 输入 中包含的所有有效数值列,如果包含无效列,则返回错误。 如果需要排除任何数值列,请在"执行线性离散分析"之前添加"选择数据集中的列"模块,以创建仅包含要分析的列的视图。 稍后可以使用"添加列"重新 加入列。 保留行的原始顺序。
  2. 连接线性离散分析模块中输入数据。

  3. 对于 "类标签"列,单击 "启动列选择器" 并选择一个标签列。

  4. 对于 "功能提取器数",键入要作为结果的列数。

    例如,如果数据集包含 8 个数字特征列 3 ,可以键入 将其折叠为仅包含三列的新缩减特征空间。

    必须了解,输出列并不完全对应于输入列,而是表示输入列中值的压缩转换。

    如果使用 0 作为特征提取器数的值,并且 n 列用作输入,则返回 n 个特征提取器,其中包含表示 n 维特征空间的新值。

  5. 运行试验。

结果

该算法确定输入列中的值的组合,这些值以线性方式分隔每组数据,同时最小化每个组内的距离,并创建两个输出:

  • 转换后的特征。 一个数据集,其中包含指定数目的特征提取程序列,名为 col1col2、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 错误代码

另请参阅

功能选择
基于筛选器的特征选择
主体组件分析