机器学习 - 相关矩阵图



相关矩阵图是数据集变量之间成对相关性的图形表示。该图由散点图和相关系数矩阵组成,其中每个散点图表示两个变量之间的关系,相关系数表示关系的强度。矩阵的对角线通常显示每个变量的分布。

相关系数是衡量两个变量之间线性关系的指标,其范围从 -1 到 1。系数为 1 表示完全正相关,其中一个变量的增加与另一个变量的增加相关联。系数为 -1 表示完全负相关,其中一个变量的增加与另一个变量的减少相关联。系数为 0 表示变量之间没有相关性。

相关矩阵图的 Python 实现

现在我们已经对相关矩阵图有了基本的了解,让我们在 Python 中实现它们。在我们的示例中,我们将使用 Sklearn 中的 Iris 花数据集,其中包含 150 朵鸢尾花的花萼长度、花萼宽度、花瓣长度和花瓣宽度的测量值,这些鸢尾花属于三个不同的物种 - 山鸢尾、变色鸢尾和维吉尼亚鸢尾。

示例

import numpy as np
import pandas as pd
import seaborn as sns
from sklearn.datasets import load_iris

iris = load_iris()
data = pd.DataFrame(iris.data, columns=iris.feature_names)
target = iris.target

plt.figure(figsize=(7.5, 3.5))

corr = data.corr()
sns.set(style='white')
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True
f, ax = plt.subplots(figsize=(11, 9))
cmap = sns.diverging_palette(220, 10, as_cmap=True)
sns.heatmap(corr, mask=mask, cmap=cmap, vmax=.3, center=0,
   square=True, linewidths=.5, cbar_kws={"shrink": .5})
plt.show()

输出

此代码将生成 Iris 数据集的相关矩阵图,其中每个方块代表两个变量之间的相关系数。

correlation_matrix_plot

从该图中,我们可以看到变量“花萼宽度 (cm)”和“花瓣长度 (cm)”具有中等负相关性 (-0.37),而变量“花瓣长度 (cm)”和“花瓣宽度 (cm)”具有强正相关性 (0.96)。我们还可以看到变量“花萼长度 (cm)”与变量“花瓣长度 (cm)”具有弱正相关性 (0.87)。

广告