相关系数矩阵 python,

  相关系数矩阵 python,

  利用相关矩阵对数据进行聚类是一个合理的想法,但必须先处理相关性。首先,numpy.corrcoef返回的相关矩阵受机器算术错误的影响:

  不一定对称。

  对角项不总是1。

  它们可以通过使用反向平均来固定,对角线可以用1填充。

  将numpy作为np导入

  Data=NP.random.randint (0 0,10,size=) 20,10)# 20可变宽度各10个观察值

  corr=NP.corrcoef(data ) # 20乘20相关矩阵

  corr=(corrcorr.t )/2 #

  NP.fill_diagonal(corr,1 ) #在对角线上放1

  然后,在链接等分组方式的输入中,需要衡量对象的相异度。因为相关性度量相似性,所以需要将其转换为0。有很多关联,1关联映射到0。

  这篇博客文章讨论了这种数据转换的几种方法,并建议不相似性=1ABS(相关性)。这种思想是强负相关的,也说明了物体之间的相关性和正相关一样。下面是例子的后续。

  来自scipy . cluster . hierarchyimportlinkage,fcluster

  来自scipy . spatial . distance importsquareform

  相异度=1 - np.abs(corr)

  Hierarchy=linkage(方形(相异),method= average )。

  labels=fcluster(Hierarchy,0.5,criterion=distance ())))))))

  注意不要向链路提供完整的距离矩阵。需要先用方块压缩。

  使用哪种确切的聚类方法和阈值取决于问题的背景。没有通用的规则。我这样做是因为通常0.5用于相关的合理阈值。用我的20组随机数,最终得到了7个集群。它在标签上

  [7、7、7、1、4、4、2、7、5、7、2、5、6、3、6、1、5、1、4、2]

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: