Cca全国少儿书画大赛:如何使用sklearnCCA模块计算相关系数

关于Cca全国少儿书画大赛的问题,在cca calculations中经常遇到, 我需要使用 CCA 模块来测量特征向量之间的相似性。我看到 sklearn 有一个很好的 CCA 模块可用:https://scikit-learn.org/stable/modules/generated/sklearn.cross_decomposition.CCA.html

我需要使用 CCA 模块来测量特征向量之间的相似性。我看到 sklearn 有一个很好的 CCA 模块可用:https://scikit-learn.org/stable/modules/generated/sklearn.cross_decomposition.CCA.html

在我回顾的不同论文中,我看到使用 CCA 测量相似性的方法是计算相关系数的平均值,例如在的笔记本示例中完成的:https://github.com/google/svcca/blob/1f3fbf19bd31bd9b76e728ef75842aa1d9a4cd2b/tutorials/001_Introduction.ipynb

如何使用 sklearn CCA 模块计算相关系数(如笔记本所示)?

from sklearn.cross_decomposition import CCA
import numpy as np
U = np.random.random_sample(500).reshape(100,5)
V = np.random.random_sample(500).reshape(100,5)
cca = CCA(n_components=1)
cca.fit(U, V)
cca.coef_.shape                   # (5,5)
U_c, V_c = cca.transform(U, V)
U_c.shape                         # (100,1)
V_c.shape                         # (100,1)

这是 sklearn CCA 模块的一个例子,但是我不知道如何从中检索相关系数。

6

参考您提供的notebook,它是以下两篇论文的支持人工制品并实现了其思想

"SVCCA: Singular Vector Canonical Correlation Analysis for Deep Learning Dynamics and Interpretability".神经信息处理系统 (NeurIPS) 2017

"Insights on Representational Similarity in Deep Neural Networks with Canonical Correlation".神经信息处理系统 (NeurIPS) 2018

那里的作者计算 50 = min(A_fake 神经元,B_fake 神经元)分量,并绘制每个分量(即 50)的变换向量之间的相关性。

在的代码的帮助下,使用sklearn CCA,我试图重现他们的Toy Example。正如我们将看到的相关图匹配。他们在笔记本中使用的健全性检查非常方便-它也与此代码无缝通过。

import numpy as np
from matplotlib import pyplot as plt
from sklearn.cross_decomposition import CCA
# rows contain the number of samples for CCA and the number of rvs goes in columns
X = np.random.randn(2000, 100)
Y = np.random.randn(2000, 50)
# num of components
n_comps = min(X.shape[1], Y.shape[1])
cca = CCA(n_components=n_comps)
cca.fit(X, Y)
X_c, Y_c = cca.transform(X, Y)
# calculate and plot the correlations of all components
corrs = [np.corrcoef(X_c[:, i], Y_c[:, i])[0, 1] for i in range(n_comps)]    
plt.plot(corrs)
plt.xlabel('cca_idx')
plt.ylabel('cca_corr')
plt.show()
Output:

enter image description here

对于健全性检查,请将 Y 数据矩阵替换为 X 的缩放可逆变换,然后重新运行代码。

Y = np.dot(X, np.random.randn(100, 100)) 
Output:

enter image description here

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(433)
Captura录屏:Capturadepantalla和Android( Telefono)
上一篇
电容代码查询:Ionic-Angular+电容器+firebase 帮助使用新的电容器3和Firebase9迁移 Google登
下一篇

相关推荐

  • cvt和自动挡哪个好提升驾驶体验的最佳选择

    CVT(可变转换器)是一种由传动带及传动轮组成的无级变速器,它可以在没有传动档位的情况下,根据驾驶者的驾驶习惯,自动调整传动轮之间的转速比,从而实现无级变速。自动挡是指车辆自动变速箱,它使用液力传动来实现变速,可以自动适应车辆的行驶状态,减少司机的疲劳,提高行车的舒适性。…

    2023-06-08 07:42:19
    0 12 96
  • cv一叶扁舟和清影轩阳:漫游在一叶扁舟和清影轩阳之间

    cv一叶扁舟是一款开源的计算机视觉库,用于图像处理、计算机视觉等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。清影轩阳是一款开源的计算机视觉框架,用于图像处理、目标检测、分类等。它提供了丰富的API,可以帮助开发者快速实现各种图像处理任务,如图像分割、目标检测、图像识别等。…

    2023-08-05 07:06:20
    0 32 12
  • css设置滚动条宽度设置:This is a title

    CSS设置滚动条宽度的方法:使用CSS3的。-webkit-属性:…

    2023-06-06 10:53:01
    0 44 39
  • xl和xe汽车cvt:探索XL和XE汽车的CVT技术优势

    XL和XE汽车CVT是一种变速器,它使用液力变矩器代替传统的机械变速器,以达到更高的效率。它的工作原理是,当发动机输出功率时,液力变矩器就会将这些功率转换为液压能量,然后将能量传递到变速器的输出轴上,从而实现变速。…

    2023-04-09 00:41:04
    0 26 89
  • cordon bleu是什么意思:法式炸鸡卷——Cordon Bleu的经典之作

    Cordon Bleu是一种烹饪技术,其中肉片被置于奶酪和火腿之间,然后用面包屑裹上,最后煎炸或烤熟。这种技术通常用于制作鸡肉,但也可以用于制作其他类型的肉类,如牛肉或猪肉。…

    2024-01-27 15:13:30
    0 33 11
  • countif 非空:非空单元格的计数

    Countif 非空是指计算某个单元格不为空的数量。代码如下:…

    2023-04-22 15:54:15
    0 83 91
  • java double保留一位小数:How to Round a Double to One Decimal Place in

    示例示例使用类可以轻松实现java double保留一位小数的功能,具体代码如下:// 创建对象…

    2023-05-14 07:40:03
    0 83 90
  • linux如何写c语言一个完整的指南

    示例示例在Linux系统中,可以使用C语言编写源代码文件,然后使用GCC编译器来编译源代码文件,生成可执行文件。下面是一个简单的C语言代码示例:…

    2023-05-16 02:02:45
    0 89 10

发表评论

登录 后才能评论

评论列表(24条)