基于筛选器的特征选择

本文介绍如何在 Azure 机器学习设计器中使用“基于筛选器的特征选择”组件。 此组件可帮助你标识输入数据集中预测能力最高的列。

概括而言,“特征选择”是指在指定了输出的情况下,将统计测试应用到输入的过程。 目标是确定哪些列能够更准确地预测输出。 “基于筛选器的特征选择”组件提供多种特征选择算法供用户选择。 该组件包含“皮尔逊相关”和卡方值等关联方法。

使用“基于筛选器的特征选择”组件时,需要提供一个数据集,并标识包含标签或因变量的列。 然后,指定一个用于度量特征重要性的方法。

该组件将输出包含最佳特征列(按预测能力排名)的数据集。 它还根据所选的指标输出特征的名称及其评分。

基于筛选器的特征选择是什么?

此组件之所以称为“基于筛选器”的特征选择,是因为你要使用所选的指标来查找不相关的属性。 然后从模型中筛选出多余的列。 选择适合数据的单个统计度量后,该组件将计算每个特征列的评分。 返回的列已按其特征评分排名。

选择适当的特征可能会改善分类的准确度和效率。

通常只使用具有最高评分的列来生成预测模型。 可将特征选择评分不佳的列保留在数据集中,并在生成模型时将其忽略。

如何选择特征选择指标

“基于筛选器的特征选择”组件提供各种指标用于评估每个列中的信息值。 本部分将大致介绍每个指标及其应用方式。 可以在技术说明以及有关配置每个组件的说明中,找到使用每个指标所要满足的其他要求。

  • 皮尔逊相关

    皮尔逊相关统计(或皮尔逊相关系数)在统计模型中也称为 r 值。 对于任意两个变量,它会返回指示相关性强度的值。

    皮尔逊相关系数的计算方式是:将两个变量的协方差除以其标准偏差的积。 这两个变量的标度变化不影响该系数。

  • 卡方

    双向卡方测试是测量预期值与实际结果的接近程度的一种统计方法。 该方法假设变量是随机的,并且是从独立变量的足够样本中抽取的。 生成的卡方统计信息指示实际结果与预期(随机)结果之间的差距。

提示

如果需要对自定义特征选择方法使用不同的选项,请使用执行 R 脚本组件。

如何配置“基于筛选器的特征选择”

选择标准统计指标。 该组件计算一对列之间的关联:标签列和特征列。

  1. 将“基于筛选器的特征选择”组件添加到管道。 可以在设计器的“特征选择”类别中找到它。

  2. 连接至少包含两个列(潜在特征)的输入数据集。

    为了确保分析某列并生成特征评分,请使用编辑元数据组件来设置 IsFeature 属性。

    重要

    确保提供用作输入的列是潜在特征。 例如,包含单个值的列没有信息值。

    如果你知道某些列会产生不良的特征,可将其从列选择中删除。 还可以使用编辑元数据组件将其标记为“分类”。

  3. 对于“特征评分方法”,请选择以下已建立的统计方法之一,以便在计算评分时使用。

    方法 要求
    皮尔逊相关 标签可以是文本或数字。 特征必须是数字。
    卡方 标签和特征可以是文本或数字。 使用此方法来计算两个分类列的特征重要性。

    提示

    如果更改所选的指标,将重置所有其他选择。 因此,请务必先设置此选项。

  4. 选择“仅对特征列运行”选项,以便仅为事先已标记为特征的列生成评分。

    如果清除此选项,该组件也会为不满足条件的任何列创建评分,直到达到“所需特征数”中指定的列数。

  5. 对于“目标列”,请选择“启动列选择器”,以按名称或索引选择标签列。 (索引从 1 开始。)
    涉及到统计相关性的所有方法都需要一个标签列。 如果你未选择一个或多个标签列,该组件将返回设计时错误。

  6. 对于“所需特征数”,请输入要作为结果返回的特征列数目:

    • 可指定的最小特征数为 1,但我们建议增大此值。

    • 如果指定的所需特征数大于数据集中的列数,将返回所有特征。 甚至会返回评分为零的特征。

    • 如果指定的结果列少于特征列,则会按评分的降序将特征排名。 只返回评分最高的特征。

  7. 提交管道。

重要

如果打算在推理中使用“基于筛选器的特征选择”,则需要使用选择列转换来存储特征选择结果,并使用应用转换将特征选择转换应用到评分数据集。

请参考下面的屏幕截图来构建管道,以确保列选择与评分过程相同。

Sample pipeline

结果

处理完成后:

  • 若要查看已分析的特征列及其分数的完整列表,请右键单击该组件并选择“可视化”。

  • 若要根据特征选择条件查看数据集,请右键单击该组件并选择“可视化”。

如果数据集包含的列数少于预期,请检查组件设置。 此外,请检查作为输入提供的列数据类型。 例如,如果将“所需特征数”设置为 1,则输出数据集只包含两列:标签列,以及排名最高的特征列。

技术说明

实现详细信息

如果对数字特征和分类标签使用皮尔逊相关,则特征评分的计算方式如下:

  1. 对于分类列中的每个级别,将计算数字列的条件平均值。

  2. 将条件平均列与数字列相关联。

要求

  • 对于指定为“标签”或“评分”列的任何列,无法生成特征选择评分。

  • 如果你尝试对评分方法不支持的数据类型的列使用评分方法,该组件将引发错误。 或者,会将零评分分配到该列。

  • 如果某个列包含逻辑 (true/false) 值,这些值将作为 True = 1False = 0 进行处理。

  • 如果已将某个列指定为“标签”或“评分”,则该列不能是特征。

如何处理缺失值

  • 无法将包含所有缺失值的列指定为目标(标签)列。

  • 如果某个列包含缺失值,则该组件在计算该列的评分时,会忽略这些缺失值。

  • 如果指定为特征列的某个列包含所有缺失值,该组件将分配零评分。

后续步骤

请参阅 Azure 机器学习可用的组件集