相关性分析 协方差 相关系数
在机器学习当中,进行特征选择、特征筛选时都会使用特征之间的相关性分析。比如有两个特征相关程度非常大,几乎都是同一个意思,那么就可以只保留一个特征。简单总结一下一些计算变量之间相关性的指标。
协方差
协方差是概率论当中非常基础的知识点了,它是用来描述两个随机变量相关程度的指标。
公式:
如果两个变量呈正相关(即一个增大另一个也增大),则协方差值为正数;反之为负数。从协方差公式来看,它的算法是计算两个变量与其均值作差的乘积和。原理很好理解:当一个变量比均值大,另一个比均值小,就会乘出一个负数,则累加起来就是负相关;当两者几乎同时大于均值和小于均值,乘起来就是正数,最终看起来就是正相关。
然而假如数据的离散程度很大,也就是说每个变量减去均值的结果都很大,则协方差总体也非常大。此时协方差大只是因为两个变量的离散程度大,并不代表两个变量相关程度大。 因此协方差仅仅只有正负值具有参考作用,至于其值的大或小并不能反映出相关程度的大小。
皮尔逊相关系数
因为协方差受变量离散程度影响,我们使用皮尔逊相关系数来真正表示两个变量之间的线性相关关系。
公式:
皮尔逊相关系数就是在协方差的基础上除以了两个变量的标准差,即消除了离散程度的影响。皮尔逊相关系数值介于-1到1之间,分别表示负相关和正相关的程度。而当协方差值为0时,表示两者不存在线性关系。
大致画几个图来加强一下理解:
皮尔逊相关系数是用来表示两个变量之间的线性相关关系的,如果是非线性相关,则皮尔逊相关系数不是一个很好地选择,它所衡量的结果也会有所偏颇。
等等,什么是线性相关,什么是非线性相关?
补充:线性相关和非线性相关的区别:
1.线性相关是一次函数(图像是直线),一个变量成比例增大,另一个也会跟着增大;
2.非线性相关图像一般是曲线,比如是二次图像,虽然二者有关系,但在某一时刻,随着一个变量的增大,另一个变量会减小;在另一时刻,随着一个变量的增大,另一个变量又也增大,即图像并非直线,这样就是非线性相关。此外,指数关系,因为图像是弯曲的,也不是直线,也属于非线性关系。
斯皮尔曼等级相关系数
斯皮尔曼等级相关也是用来衡量两个变量之间的相关程度的,不过它不局限于呈线性相关的两个变量,而是只要两个变量同时增大、同时减小,它就可以算出很大的相关系数。举个例子,对于指数关系,y=x的十次方。当x增大时,y也会增大,但二者增加的度量根本不在一个维度上。假如我们使用只能衡量线性相关的皮尔逊相关系数,并不会算出一个很大的值;但使用斯皮尔曼等级相关,就可以得到值为1的相关性。
如何做到这一点呢?很简单,斯皮尔曼等级相关系数公式如下:
其中d是“等级差”,等级差是怎么来的呢?这就是斯皮尔曼等级相关的重点所在,它将两个变量进行等级排序,不管原来数据有多大,各自之间差距有多少,它都先按大小顺序进行等级划分。比如对于y=x的十次方,假设我们有三个数据点:(1,1),(2,1024),(3,59049),那么送入斯皮尔曼等级相关分析的计算,就会得到(1,1),(2,2),(3,3),(因为1,1024,59049 排序起来就是1,2,3,不管其数值有多大,就是三个等级而已。)此时等级差d=1-1和2-2和3-3=0,故从公式出发,斯皮尔曼等级相关系数ρ=1-0=1。
从宏观来看,斯皮尔曼等级相关系数也并不是可以表示一切非线性相关的关系,它只能很好地表示“同时增大或减小”的相关关系。只考虑“等级”的变化顺序,利用“将数值上的差距标准化至等级”来达到这一效果。
这篇主要简单整理了一下协方差、相关系数等常用的几个衡量两个变量之间相关性的指标。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了