python协方差阵转为相关阵_协方差矩阵python实现

当你有一个数据集,每一条数据都M种属性,然后你想知道M种属性对数据集的影响的时候。你需要用到协方差矩阵。

求协方差矩阵之前请一定要知道协方差矩阵是干嘛的,是表示属性之间关系的矩阵,协方差矩阵的规模只与属性数量有关,和数据总量无关。blog.sciencenet.cn/blog-455004-805926.html 这里讲的很清楚。

python代码如下:

class PCA:

def avg(self,data):

avgData = [0]*len(data[0])

for i in range(0,len(data)):

for t in range(0,len(data[i])):

avgData[t] += data[i][t]

for i in range(0,len(avgData)):

avgData[i] = float(avgData[i])/len(data)

return avgData

def getCovMatrix(self,data,avg):

covData = [[0 for i in range(len(data[0]))] for i in range(len(data[0]))]

for i in range(0,len(data[0])):

for t in range(0,len(data[0])):

covData[i][t] = self.getCov(data,i,t,avg)

return covData

def getCov(self,data,col1,col2,avg):

cov = 0;

for i in range(0,len(data)):

cov += (data[i][col1]-avg[col1])*(data[i][col2]-avg[col2])

#print cov/(len(data)-1)

return cov/(len(data)-1)

data = [[-1,-1,1],[-2,-1,4],[-3,-2,-2],[1,1,1],[2,1,2],[3,2,1],[1,2,4]]

example = PCA()

avgdata = example.avg(data)

print example.getCovMatrix(data,avgdata)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值