pearson相关系数_使用gbdt我们到底应该怎么用相关系数?

import numpy as np
import pandas as pd
data=pd.DataFrame()
data['x']=list(range(1,100))
data['y']=list(range(1,100))
data['logy']=np.log(data.y.values)
data.corr('pearson')

0549cf3fd40b5dc00249f7d3c3bafb55.png

pearson相关系数实际上考察的是线性相关性,简单来说就是两个特征一个作为横坐标一个作为纵坐标之后画出来的图形要是线性方程的形式,

335eda048c9d4dedb4e995bef6ac6a3d.png

但是如果二者是非线性关系,则pearson则无法衡量其正相关关系。

8ba93b668b2fa5dc22d8b62892d3faf3.png

但是对于决策树或者gbdt来说,特征之间是线性或者非线性其实并不重要,重要的是相对排序性,举个例子,比如特征A[0.1,0.01,0.001,0.0001],特征B[4,3,2,1],二者的相关系数是不高的,但是对于tree系列算法来说这两个特征是等价的,因为树是基于排序进行分裂的,所以实际上我们对原始特征进行rank之后基本是没有区别的,因此,一般来说我们在进行特征选择的时候计算使用的是spearman 相关系数而不是pearson,即排序相关性。


但是实际上应用过程中存在另一种特殊的情况,就是数据的数量很少的情况下,spearman有时候无法捕捉到线性相关性。

bdfcaf398082f4ef6d30586174399b04.png

我们通过计算秩相关得到的结论是这三个特征之间不存在相关性。

但是:

45b326c8366fe29e673ae5784e68302d.png

使用pearson相关系数确得出有两个特征严格相关的原因。

主要是因为:

623885cefe29bb4f4ea63eb1060bbd59.png

ccf8e816157c0ead52a9bbd006e65c70.png

可以看到,这两个特征的取值一一对应并且组成恰好仅仅四个样本点,此时pearson相关系数却可以捕捉到这样的相关性。

878db3866ba72409eba555e9490ee779.png

c627e35101c42b6514133f74dd431762.png

9844481acbc371a73d879132d4c57309.png

bb3df2fc26e665c8fb7327c8205f69c4.png

通过详细测试,二者确实有非常强的相关性。

实际上对于这种连续特征,但是取值很少仅有四个取值,使用pearson或者spearman来计算都没有统计显著性,应该根据使用计算类别特征的相关系数来衡量,不过pearson的好处在于可以捕捉到这种很小级别的线性相关性,所以,以后给gbdt做特征选择的时候记得两种相关系数的手段都试试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值