【发布时间】:2021-11-17 02:53:53
【问题描述】:
我需要使用 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 模块的示例,但我不知道如何从中检索相关系数。
【问题讨论】:
-
一旦我得到它,实现最终会在这里:github.com/brando90/ultimate-utils/issues/10我认为可以使用cca方向(即线性组合学习
a, b或w1, w2大小[n, p1], [n, p2])如下对于第 k 个相关性:correlation_k = pearson_correlation(a_k, b_k)。可能可以通过诸如a^T b之类的矩阵乘法获得。或者使用一些奇异值的东西......如果 scipy 给我们的话。顺便说一句,我注意到 scipy 不是很快,所以如果它实际上除了调试之外真的有用的话。 -
你试过用numpy函数numpy.corrcoefnumpy.org/doc/stable/referencehttps://numpy.org/doc/stable/…
-
@t2solve 链接已损坏。
标签: python scikit-learn