Python 如何计算MxN相关矩阵

Python 如何计算MxN相关矩阵,python,dataframe,correlation,cross-correlation,pearson-correlation,Python,Dataframe,Correlation,Cross Correlation,Pearson Correlation,我有一个CSV文件包含一些tweet和两组功能(a和B),如下所示: TWEET, A1, A2, B1, B2, B3 tweet text, 0.23, 0.54, 120, 60, 39 tweet text, 0.33, 0.7, 70, 20, 36 tweet text, 0.8, 0.41, 68, 52, 29 如您所见,它们具有不同的长度(A要素为2列,B要素为3列)。我想比较他们之间的关系(或依赖性)。我的目标是识别相关特征,以删除一些特征并减少特征维度。一种可能的解决方案

我有一个CSV文件包含一些tweet和两组功能(a和B),如下所示:

TWEET, A1, A2, B1, B2, B3
tweet text, 0.23, 0.54, 120, 60, 39
tweet text, 0.33, 0.7, 70, 20, 36
tweet text, 0.8, 0.41, 68, 52, 29
如您所见,它们具有不同的长度(A要素为2列,B要素为3列)。我想比较他们之间的关系(或依赖性)。我的目标是识别相关特征,以删除一些特征并减少特征维度。一种可能的解决方案是使用
相关矩阵
,该矩阵可通过
DataFrame.corr
访问。但是这个矩阵只接受相同大小的数组。问题是如何计算不同长度特征的
相关矩阵
,如上例中的A和B?在关联之后,我将能够说,例如,特征A1和B2足够了,我们可以删除其他特征;因为它们完全依赖于A1和B2


欢迎任何其他建议。

相关性不需要是MxN。您所做的只是检查
N
列之间的相关性,这样它将是
NxN
矩阵。从<代码> n*n < /代码>你可以考虑你喜欢的那些,而忽略其他的。< /P>
import seaborn as sns
import pandas as pd
from io import StringIO
df = pd.read_csv(StringIO('''TWEET, A1, A2, B1, B2, B3
tweet text, 0.23, 0.54, 120, 60, 39
tweet text, 0.33, 0.7, 70, 20, 36
tweet text, 0.8, 0.41, 68, 52, 29
'''),sep=',')
print(df.corr()) # Pandas correlation matrix
sns.heatmap(df.corr(),annot = True)
输出:

    A1              A2          B1         B2          B3
A1  1.000000    -0.732859   -0.661319   0.167649    -0.991352
A2  -0.732859   1.000000    -0.025703   -0.793614   0.637235
B1  -0.661319   -0.025703   1.000000    0.628619    0.754036
B2  0.167649    -0.793614   0.628619    1.000000    -0.036827
B3  -0.991352   0.637235    0.754036    -0.036827   1.000000

只需取下所有5列并绘制相关性即可。你会有所有可能的组合。你能给我一个实施的小例子吗?(相关URL也足够)添加了一个答案,希望对您有所帮助