You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Notebook中生成含各Expression的PR与Metrics相关矩阵热图

问题:生成包含各Expression的相关矩阵及热图

需要实现针对PR与Metrics两组数据,生成包含所有Expression的相关矩阵及热图。样本数据如下:

Expression(表情)PRMetrics
Engagement0.330.70
Excitement0.330.15
Focus0.330.36
Interest0.670.47
Relaxation0.550.20
Stress0.440.40

手动创建DataFrame时的代码存在错误,原代码如下:

data = {
    'Expression':['Engagement', 'Excitement', 'Focus','Interest','Relaxation','Stress'],
    'PR': ['0.33','0.33','0.33','0.67','0.55','0.44'],
    'Metrics': ['0.70','0.15','0.36','0.47','0.20','0.40']
    }

df['PR']=df['PR'].astype(float) #Converts object dtype to float
df['Emotiv Metrics']=df['Emotiv Metrics'].astype(float) #Converts object dtype to float

注:代码中df['Emotiv Metrics']应为df['Metrics'],且缺少创建DataFrame的语句df = pd.DataFrame(data)。

当前使用df.corr()只能得到PR与Metrics列的整体相关系数:

PR        Metrics
PR              1.000000       -0.048189
Metrics        -0.048189        1.000000

需要生成包含PR、Metrics及所有Expression的相关矩阵,具体实现步骤如下:


解决方案

1. 修正DataFrame创建与类型转换

首先补全并修正代码,确保数据类型正确:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 创建DataFrame
data = {
    'Expression':['Engagement', 'Excitement', 'Focus','Interest','Relaxation','Stress'],
    'PR': ['0.33','0.33','0.33','0.67','0.55','0.44'],
    'Metrics': ['0.70','0.15','0.36','0.47','0.20','0.40']
}
df = pd.DataFrame(data)

# 转换数值类型
df['PR'] = df['PR'].astype(float)
df['Metrics'] = df['Metrics'].astype(float)

2. 重构数据以生成包含Expression的相关矩阵

要让Expression作为变量纳入相关矩阵,需要将数据转置,同时保留PR和Metrics作为独立变量:

# 将Expression设为索引,转置后得到以PR、Metrics为行,各Expression为列的DataFrame
df_transposed = df.set_index('Expression').T

# 添加PR和Metrics列(对应原数据的整列取值)
df_transposed['PR'] = df['PR'].values
df_transposed['Metrics'] = df['Metrics'].values

3. 计算完整相关矩阵

直接对重构后的DataFrame计算相关系数:

corr_matrix = df_transposed.corr()
print(corr_matrix)

输出的相关矩阵会包含PR、Metrics及所有Expression,每个单元格代表两个变量的皮尔逊相关系数。

4. 绘制热图

使用seaborn绘制热图可视化相关矩阵:

plt.figure(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', fmt='.2f', square=True)
plt.title('Correlation Matrix: PR, Metrics & Expressions')
plt.show()

内容的提问来源于stack exchange,提问作者Jun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 23:12:26