计算线性相关性

重要

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

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

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

计算数据集中列值之间的线性相关性

类别: 统计函数

注意

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

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

模块概述

本文介绍如何使用 机器学习 Studio (经典) 中的计算线性关联模块,为输入数据集中每个可能的变量配对计算一组 Pearson 相关系数。

皮尔逊相关系数(有时称为皮尔逊的 R 测试)是一个统计值,用于测量两个变量之间的线性关系。 通过检查系数值,可以推断两个变量之间的关系强度,以及它们是积极相关还是负相关。

如何配置线性关联

在计算相关系数之前,有一些先决条件,例如清理数据并验证变量之间的关系是否适合此模块。 还必须删除或插补缺失值。

使用此模块时,以下限制适用:

  • 计算线性关联模块只能处理数值。 所有其他类型的值,包括缺失值、非数字值和分类值,将被视为 NaN。

  • 将为数据集中作为输入传递的所有数字列计算皮尔逊相关性。 请务必排除适合此分析的任何列。

  • 计算线性关联 不能与缺少值的数据一起使用。

步骤 1:确定线性

如果测试的列不应具有某种线性关系,则生成此系数没有意义。 因此,最好先测试列,看看它们是否具有正确的数据类型和一般分布的正确分布类型。

有多种方法可以确定列之间的关系是否大致是线性的:

  • 使用数据集上的 “可视化 ”选项,在 Studio (经典) 中创建变量的散点图。 单击其中一个数值变量列,展开“可视化效果”,然后单击“比较”。 选择其他变量,并自动生成散点图。 如果生成不同类型的绘图,则表示至少有一列具有不同的 (非数值) 数据类型。

  • 计算两个变量的回归公式。 有许多 R 包支持此功能,可以在 “执行 R 脚本 ”模块中加载和使用。

步骤 2:清理数据

必须删除或填写缺失值,删除或剪辑离群值,并确保列具有适当的数据类型。

在使用此模块之前,请务必检查占位符,并将此类值替换为其他适当的值。 如果在从源加载数据集时为缺失值插入 NaN,则可能会导致错误。 占位符值,例如 999-1 也可能会导致结果不佳。

若要准备数据,可以使用以下模块:

可以使用 编辑元数据调整列的数据类型。 确保要分析的列标记为特征列。

步骤 3:生成系数

  1. 计算线性关联 模块添加到试验。 可以在 机器学习 Studio (经典) 的“统计函数”类别中找到此模块。

  2. 添加要分析的数据集。

  3. 建议在数据集和计算线性关联模块之间添加“选择列”模块,以删除不必要的列。 配置 数据集模块中的“选择列 ”,以便仅获取要计算系数的两个数值列。

    否则, 计算线性关联 模块可能会生成许多 NaN 列。

  4. 没有为此模块设置的参数。 但是,如果作为输入传递的列不符合要求,它将失败。

  5. 运行试验。

两列的结果

给定两个特征列时, 计算线性相关性 模块返回标量皮尔逊产品时刻 (样本) 相关系数。 皮尔逊相关系数 (通常表示为 r) 值范围从 +1 到 -1。

  • +1 指示强正线性关系

  • -1 指示强负线性关联

  • 0 表示两个变量之间没有线性关系。

系数的解释在很大程度上取决于要建模的问题,以及正在研究的变量。 因此,在报告和解释皮尔逊的相关系数时,了解数据的上下文非常重要。

  • 如果你确定变量不相关,但皮尔逊的相关系数 (r > .5 左右) 强正,则应进一步调查。

  • 如果对两个已知完全相关的变量使用线性关联,并且系数值不是预期值,则可能表示数据中存在问题。

两个以上的列的结果

给定矩阵 (,即) 两个以上的特征列,计算线性关联模块将返回一组皮尔逊产品时刻相关性,每个特征列配对。

因此,结果是一个 n x n 表,其中包含 n 列的每个组合的系数。 如果任何列不符合条件,则返回 NaN (“非数字”值) 。

例如,假设你传入了两个数值列 wheel-basecurb-weight 一个分类列, make (从汽车价格数据集) 。 结果是输入列的所有可能组合的 3x3 系数表:

make wheel-base curb-weight
1 0.776386
0.776386 1

在此表中,可以理解这些行以该顺序表示每个变量makewheel-base变量和 curb-weight行。

  • 与自身关联的 wheel-base r 值为 1。
  • 要关联到curb-weightwheel-base r 值为 0.776386。
  • 涉及列 make 的所有关联都会导致 NaN,包括与自身相关的关联,因为 make 是字符串特征。

建议删除非数值列,以避免具有许多无意义的值的复杂表。

示例

若要查看此模块在机器学习试验中的用法,请参阅 Azure AI 库

技术说明

本部分包含实现详情、使用技巧和常见问题解答。

实现详细信息

如果作为输入传递的列包含标量,则输入数组(xy)是向量,并按如下所示计算皮尔逊积矩相关性:

linear correlation formula

在此公式中,每个数组分别包含 n 个元素和 xy 样本的表示形式为μx 和μy。

对于矩阵,数据矩阵 (X) 为输入,其中的每个列表示值的向量。 数据矩阵应为 n x m。 输出为 m x m 矩阵,R 定义为

formula for linear correlation

在此公式中,μx 表示 列 xi 的平均值。 位于 I,j 的元素始终等于 1,因为它们表示某个向量与自身的相关性。

预期输入

名称 类型 说明
数据集 数据表 输入数据集

Outputs

名称 类型 说明
结果数据集 数据表 相关矩阵

例外

异常 描述
错误 0003 如果一个或多个输入为 NULL 或为空,将出现异常。
错误 0020 如果某些数据集中传递给模块的列数太小,则会发生异常。
错误 0021 如果某些数据集中传递给模块的行数太小,则会发生异常。

有关特定于 Studio (经典) 模块的错误列表,请参阅机器学习错误代码

有关 API 异常的列表,请参阅 机器学习 REST API 错误代码

另请参阅

统计函数
A-Z 模块列表