数学里的协方差和皮尔逊相关系数到numpy模块的cov()和corrcoef()函数

仅适用本人记录
文档:
https://docs.scipy.org/doc/numpy/reference/generated/numpy.cov.html

https://docs.scipy.org/doc/numpy/reference/generated/numpy.corrcoef.html

重点:
1.方差和样本方差的不同点,除以样本数N还是除以N-1。在numpy函数里可以通过修改bias参数改变。
2.cov(),corrcoef()/协方差,皮尔逊系数都是客观的计算两个变量的相关情况,我们要根据具体的算法去判断我们比较的是哪两个变量,这在具体的算法是不一样的。例如,协方差在PCA计算的是特征之间的而非样本之间的。但是他在其他算法里不一定。又比如协同过滤里用皮尔逊系数表示相似度(这里说明一下在上面第二个链接可以看到协方差和皮尔逊相关系数是类似的,只是相关系数是消除了量纲,使相关系数对用户本身的打分量级不敏感),要看你是基于用户还是基于物品,基于用户就把用户作变量,基于物品就把物品作变量。然后选择相应的rowvar参数值(If rowvar is True (default), then each row represents a variable, with observations in the columns. Otherwise, the relationship is transposed: each column represents a variable, while the rows contain observations.)。
3.cov()的原型为cov(m,y=None,rowvar=True,bias=False,ddof=None,fweights=None,aweights=None),如果cov()用于PCA算法,它默认是将行认为是一个样本,列认为是一个特征(即变量)。可以通过修改rowvar = False来改成行是一个特征。
4.np.cov(X)其实就是把np.cov(x,y)中两个变量所有的维度纵向拼接在一起作为X参与运算,他并不是数学意义上的运算x,y的协方差。cov()的内部已经实现了这种数学意义上的运算,然后将其作为输出的协方差矩阵中的一个对应位置的元素,并不用我们自己去表示和操作。
4.cov(X),如果我们输入的X是一维的,它就是代表一个特征了,它在数学意义上求的是X与他自身的协方差,并不是说就是求的方差,同样不用我们自己去表示和操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值