特征降维之相关系数

特征降维之相关系数

  • 公式
  • 特点
  • API
  • 示例
  • 处理

这里用了

  • 皮尔逊相关系数(Pearson Correlation Coefficient)
    • 反映变量之间相关关系密切程度的统计指标

公式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QbJ7IySZ-1608184450702)(C:\Users\ASUS\Desktop\6451559c335fbb31eefc6273e2611d6a.svg)]

特点

相关系数的值介于-1与+1之间,即-1<= r <= +1。其性质如下:

  • 当r>0时,表示两变量正相关,r<0时,两变量为负相关
  • 当|r|=1时,表示两变量为完全相关,当r=0时,表示两变量间无相关关系
  • 当0<|r| <1时,表示两变量存在一定程度的相关。且d越接近1,两变量间线性关系越密切;|r|越接近于0,表示两变量的线性相关越弱
  • 一般可按三级划分:|r|<0.4为低度相关;0.4 <= r < 0.7为显著性相关;0.7 <= |rl < 1为高度线性相关

API

  • from scipy.stats import pearsonr
    • x:(N,) array_like
    • y:(N,) array_like Returns:(Pearson's correlation coefficient, p-value)

示例

from scipy.stats import pearsonr
import numpy as np


if __name__ == '__main__':
    data = [
        [1, 2, 3, 4, 5],
        [1, 7, 8, 14, 10],
        [1, 12, 13, 24, 15]
    ]
    m = np.array(data)
    r = pearsonr(m[:, 1], m[:, 3])
    print(r)    # 第一个值即为它们之间的相关系数
'''
(0.9999999999999998, 1.3415758552508151e-08)
'''

处理

当特征与特征之间相关性很高的时候,我们可以采取以下措施:

  1. 选取其中一个
  2. 加权求和
  3. 主成分分析

你可能感兴趣的:(机器学习,人工智能,算法,python,大数据)