如何通过遍历每一行在Python中创建相关矩阵?
相关矩阵是一个包含许多变量的相关系数的表格。表格中的每个单元格表示两个变量之间的相关性。值可能介于 -1 和 1 之间。相关矩阵用于数据汇总、高级分析诊断以及作为更复杂研究的输入。
相关矩阵用于表示数据集中变量之间的关系。它是一种帮助程序员分析数据组件之间关系的矩阵。它表示 0 到 1 之间的相关系数。
正值表示良好的相关性,负值表示弱/低相关性,值为零 (0) 表示给定变量集之间没有依赖关系。
回归分析和相关矩阵显示了以下观察结果:
识别数据集中自变量之间的关系。
帮助从数据集中选择重要且非冗余的变量。
这仅适用于数值型或连续型变量。
在本文中,我们将向您展示如何使用 Python 创建相关矩阵。
假设我们已经获取了一个名为 **starbucksMenu.csv** 的 CSV 文件,其中包含一些随机数据。我们需要为数据集中指定的列创建相关矩阵并绘制相关矩阵。
输入文件数据
starbucksMenu.csv
商品名称 | 卡路里 | 脂肪 | 碳水化合物 | 纤维 | 蛋白质 | 钠 |
酷莱姆星巴克清爽™ | 45 | 0 | 11 | 0 | 0 | 10 |
Evolution Fresh™ 有机姜味青柠汽水 | 80 | 0 | 18 | 1 | 0 | 10 |
冰咖啡 | 60 | 0 | 14 | 1 | 0 | 10 |
Tazo® 瓶装莓花白茶 | 0 | 0 | 0 | 0 | 0 | 0 |
Tazo® 瓶装黑莓 | 130 | 2.5 | 21 | 0 | 5 | 65 |
Tazo® 瓶装巨型桃子 | 140 | 2.5 | 23 | 0 | 5 | 90 |
Tazo® 瓶装冰镇百香果 | 130 | 2.5 | 21 | 0 | 5 | 65 |
Tazo® 瓶装李子石榴 | 80 | 0 | 19 | 0 | 0 | 10 |
Tazo® 瓶装塔佐莓 | 60 | 0 | 15 | 0 | 0 | 10 |
Tazo® 瓶装白蔓越莓 | 150 | 0 | 38 | 0 | 0 | 15 |
创建相关矩阵
我们将绘制数据集的三列(它们是独立的连续变量)的相关矩阵。
- 碳水化合物
- 蛋白质
- 钠
算法(步骤)
以下是执行所需任务的算法/步骤:
导入 os、pandas、NumPy 和 seaborn 库。
使用 **read_csv()** 函数读取给定的 CSV 文件(将 CSV 文件加载为 pandas 数据框)。
从给定的数据集中创建必须创建相关矩阵的列列表。
使用 **corr()** 函数创建相关矩阵(它计算数据框中所有列的成对相关性。任何 **na(空)** 值都会自动过滤掉。对于数据框中的任何非数值数据类型列,它都会被丢弃)。
打印数据集指定列的相关矩阵。
使用 seaborn 库的 **heatmap()** 函数绘制相关矩阵(对于要绘制的每个值,热图具有指示相同颜色几种阴影的值。图表中较深的颜色通常表示比较浅的颜色更高的值。同样可以为明显不同的值使用完全不同的颜色)。
将数据集导入 Pandas 数据框
现在,我们首先将任何样本数据集(这里我们使用 starbucksMenu.csv)导入 pandas 数据框并打印它。
示例 1
# Import pandas module as pd using the import keyword import pandas as pd # Reading a dataset givenDataset = pd.read_csv('starbucksMenu.csv') print(givenDataset)
输出
商品名称 | 卡路里 | 脂肪 | 碳水化合物 | 纤维 | 蛋白质 | 钠 |
酷莱姆星巴克清爽™ | 45 | 0 | 11 | 0 | 0 | 10 |
Evolution Fresh™ 有机姜味青柠汽水 | 80 | 0 | 18 | 1 | 0 | 10 |
冰咖啡 | 60 | 0 | 14 | 1 | 0 | 10 |
Tazo® 瓶装莓花白茶 | 0 | 0 | 0 | 0 | 0 | 0 |
Tazo® 瓶装黑莓 | 130 | 2.5 | 21 | 0 | 5 | 65 |
Tazo® 瓶装巨型桃子 | 140 | 2.5 | 23 | 0 | 5 | 90 |
Tazo® 瓶装冰镇百香果 | 130 | 2.5 | 21 | 0 | 5 | 65 |
Tazo® 瓶装李子石榴 | 80 | 0 | 19 | 0 | 0 | 10 |
Tazo® 瓶装塔佐莓 | 60 | 0 | 15 | 0 | 0 | 10 |
Tazo® 瓶装白蔓越莓 | 150 | 0 | 38 | 0 | 0 | 15 |
导入数据集后创建相关矩阵
以下程序演示了如何为给定数据集创建相关矩阵、打印它们以及绘制相关矩阵:
示例 2
import os # Importing pandas module import pandas as pd import numpy as np import seaborn # Reading a dataset givenDataset = pd.read_csv('starbucksMenu.csv') # Assigning the list of columns from the dataset numericColumns = ['Carb','Protein','Sodium'] # Creating a correlation matrix correlationMatrix = givenDataset.loc[:,numericColumns].corr() # Printing the correlation matrix. print(correlationMatrix) # Displaying the correlation matrix seaborn.heatmap(correlationMatrix, annot=True)
输出
执行上述程序后,将生成以下输出: