分类变量和连续变量之间的相关性
介绍
在机器学习中,数据及其行为的相关知识是在处理任何类型数据时都必不可少的东西。在机器学习中,不可能获得具有相同参数和行为的相同数据,因此进行一些预训练阶段至关重要,这意味着在训练模型之前需要对数据有一些了解。
相关性是每个数据科学家或数据分析师都希望了解数据的东西,因为它揭示了关于数据的关键信息,这可以帮助一个人执行特征工程技术。本文将讨论分类变量和连续变量之间的相关性以及计算相关性的方法。
什么是相关性?
机器学习中的相关性是一种统计度量,它表示特定变量在更改某些其他变量的值时的行为,这意味着它让我们了解当我们波动或更改数据中某些其他变量的值时,一个变量将如何表现或变化。
相关性在进行一些特征工程和特征选择技术方面非常有帮助,因为我们可以快速了解与目标列相关的特征,并且可以从数据中删除次要相关的变量。
已知多种进行相关性检验的技术,其中一些是 Pearson 和 Spearman 相关性。但是,这些技术无助于在连续变量和分类变量之间进行相关性检验。
指导在何种条件下使用哪种检验的表格 |
因变量 | ||
---|---|---|---|
分类 |
连续 | ||
自变量 |
分类 |
卡方检验 |
方差分析检验 |
连续 |
逻辑回归 |
线性回归 |
在上图中,我们可以看到列出了一些针对不同变量情况的相关性计算方法。这里,卡方方法可用于查找分类变量之间的相关性,线性回归可用于计算连续变量之间的相关性,因为线性回归计算最佳拟合线的斜率和截距。
现在,如果您想计算分类变量和连续变量之间的相关性,则可以使用方差分析检验来进行计算。此外,如果目标列是分类的,则逻辑回归方法更适合计算相关性。除此之外,点二列方法也可用于计算分类变量和连续变量之间的相关性。
方差分析检验
方差分析或方差分析检验主要用于使用变量的方差来计算变量之间的相关性。方差分析检验也是一种参数检验,具有一定的假设 -
数据需要正态分布。
数据以相等的方差分布。
数据中没有明显的异常值。
各组相互独立。
如果数据正态分布,则可以使用对数和平方根变换轻松将其转换为正态分布。如果数据右偏,可以使用对数变换;如果数据左偏,可以使用平方根变换。
示例
import pingouin as pg import pandas as pd import numpy as np # create DataFrame df = pd.DataFrame({'values'': [1,2,5,6,89,67,54,34], 'groups': np.repeat(['cat1','cat2','cat3'], repeats=5)}) # perform Welch's ANOVA pg.welch_anova(dv='values', between='groups', data=df)
在上面的代码中,我们可以看到我们传递了我们拥有的所有不同类别以及我们想要计算相关性的值的类别。上面的代码将输出一个表格,其中包含 f 值和 p 值。
如果从上述代码获得的 p 值小于 0.05,则意味着它拒绝了零假设,并且所有类别的所有方差或均值对于特定值都是相同的。更改类别不会影响值。
点二列检验
点二列检验也用于计算数据集中分类变量和连续变量之间的相关性。此方法也是一种统计参数方法,具有一定的假设。
数据正态分布。
数据中没有明显的异常值。
数据中存在相等的方差。
从点二列检验获得的值介于 -1 到 1 之间,其中值为 1 表示强正相关,反之亦然。值为 0 表示不存在相关性。
示例
import numpy as np from scipy import stats a = np.array([1,1,1,2,2,2]) b = np.arange(6) stats.pointbiserialr(a, b) np.corrcoef(a, b)
我们可以使用 scipy.stats 库来计算此类变量之间的点二列相关性。np.corrcoef 将返回一个表格类型输出,表示变量之间的相关性范围从 -1 到 1。
关键要点
方差分析和点二列检验可用于计算分类变量和连续变量之间的相关性。
数据应正态分布且方差相等是这两种方法的主要假设。
点二列方法返回 -1 到 1 之间的相关性值,其中 0 表示变量之间没有相关性。
结论
在本文中,我们讨论了连续变量和分类变量之间的相关性、其核心直觉以及使用代码示例计算相关性的方法。这将帮助人们更好地理解这个概念并有效地进行此类案例。