计算线性相关性
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
计算数据集中列值之间的线性相关性
类别: 统计函数
模块概述
本文介绍如何使用 机器学习 Studio (经典) 中的计算线性关联模块,为输入数据集中每个可能的变量配对计算一组 Pearson 相关系数。
皮尔逊相关系数(有时称为皮尔逊的 R 测试)是一个统计值,用于测量两个变量之间的线性关系。 通过检查系数值,可以推断两个变量之间的关系强度,以及它们是积极相关还是负相关。
如何配置线性关联
在计算相关系数之前,有一些先决条件,例如清理数据并验证变量之间的关系是否适合此模块。 还必须删除或插补缺失值。
使用此模块时,以下限制适用:
计算线性关联模块只能处理数值。 所有其他类型的值,包括缺失值、非数字值和分类值,将被视为 NaN。
将为数据集中作为输入传递的所有数字列计算皮尔逊相关性。 请务必排除适合此分析的任何列。
计算线性关联 不能与缺少值的数据一起使用。
步骤 1:确定线性
如果测试的列不应具有某种线性关系,则生成此系数没有意义。 因此,最好先测试列,看看它们是否具有正确的数据类型和一般分布的正确分布类型。
有多种方法可以确定列之间的关系是否大致是线性的:
使用数据集上的 “可视化 ”选项,在 Studio (经典) 中创建变量的散点图。 单击其中一个数值变量列,展开“可视化效果”,然后单击“比较”。 选择其他变量,并自动生成散点图。 如果生成不同类型的绘图,则表示至少有一列具有不同的 (非数值) 数据类型。
计算两个变量的回归公式。 有许多 R 包支持此功能,可以在 “执行 R 脚本 ”模块中加载和使用。
步骤 2:清理数据
必须删除或填写缺失值,删除或剪辑离群值,并确保列具有适当的数据类型。
在使用此模块之前,请务必检查占位符,并将此类值替换为其他适当的值。 如果在从源加载数据集时为缺失值插入 NaN,则可能会导致错误。 占位符值,例如 999
或 -1
也可能会导致结果不佳。
若要准备数据,可以使用以下模块:
可以使用 编辑元数据调整列的数据类型。 确保要分析的列标记为特征列。
步骤 3:生成系数
添加要分析的数据集。
建议在数据集和计算线性关联模块之间添加“选择列”模块,以删除不必要的列。 配置 数据集模块中的“选择列 ”,以便仅获取要计算系数的两个数值列。
否则, 计算线性关联 模块可能会生成许多 NaN 列。
没有为此模块设置的参数。 但是,如果作为输入传递的列不符合要求,它将失败。
运行试验。
两列的结果
给定两个特征列时, 计算线性相关性 模块返回标量皮尔逊产品时刻 (样本) 相关系数。 皮尔逊相关系数 (通常表示为 r) 值范围从 +1 到 -1。
+1
指示强正线性关系-1
指示强负线性关联0
表示两个变量之间没有线性关系。
系数的解释在很大程度上取决于要建模的问题,以及正在研究的变量。 因此,在报告和解释皮尔逊的相关系数时,了解数据的上下文非常重要。
如果你确定变量不相关,但皮尔逊的相关系数 (r > .5 左右) 强正,则应进一步调查。
如果对两个已知完全相关的变量使用线性关联,并且系数值不是预期值,则可能表示数据中存在问题。
两个以上的列的结果
给定矩阵 (,即) 两个以上的特征列,计算线性关联模块将返回一组皮尔逊产品时刻相关性,每个特征列配对。
因此,结果是一个 n x n 表,其中包含 n 列的每个组合的系数。 如果任何列不符合条件,则返回 NaN (“非数字”值) 。
例如,假设你传入了两个数值列 wheel-base
和 curb-weight
一个分类列, make
(从汽车价格数据集) 。 结果是输入列的所有可能组合的 3x3 系数表:
make |
wheel-base |
curb-weight |
---|---|---|
南 | 南 | 南 |
南 | 1 | 0.776386 |
南 | 0.776386 | 1 |
在此表中,可以理解这些行以该顺序表示每个变量make
、 wheel-base
变量和 curb-weight
行。
- 与自身关联的
wheel-base
r 值为 1。 - 要关联到
curb-weight
的wheel-base
r 值为 0.776386。 - 涉及列
make
的所有关联都会导致 NaN,包括与自身相关的关联,因为make
是字符串特征。
建议删除非数值列,以避免具有许多无意义的值的复杂表。
示例
若要查看此模块在机器学习试验中的用法,请参阅 Azure AI 库:
技术说明
本部分包含实现详情、使用技巧和常见问题解答。
实现详细信息
如果作为输入传递的列包含标量,则输入数组(x 和 y)是向量,并按如下所示计算皮尔逊积矩相关性:
在此公式中,每个数组分别包含 n 个元素和 x 和 y 样本的表示形式为μx 和μy。
对于矩阵,数据矩阵 (X) 为输入,其中的每个列表示值的向量。 数据矩阵应为 n x m。 输出为 m x m 矩阵,R 定义为
在此公式中,μx 表示 列 xi 的平均值。 位于 I,j 的元素始终等于 1,因为它们表示某个向量与自身的相关性。
预期输入
名称 | 类型 | 说明 |
---|---|---|
数据集 | 数据表 | 输入数据集 |
Outputs
名称 | 类型 | 说明 |
---|---|---|
结果数据集 | 数据表 | 相关矩阵 |
例外
异常 | 描述 |
---|---|
错误 0003 | 如果一个或多个输入为 NULL 或为空,将出现异常。 |
错误 0020 | 如果某些数据集中传递给模块的列数太小,则会发生异常。 |
错误 0021 | 如果某些数据集中传递给模块的行数太小,则会发生异常。 |
有关特定于 Studio (经典) 模块的错误列表,请参阅机器学习错误代码。
有关 API 异常的列表,请参阅 机器学习 REST API 错误代码。