Machine Learning 简明教程

Machine Learning - Correlation Matrix Plot

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

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

Python Implementation of Correlation Matrix Plots

既然我们对相关矩阵图有了基本的了解,现在让我们在 Python 中实现它们。对于我们的示例,我们将使用 Sklearn 中的 Iris 花数据集,其中包含属于三种不同物种(Setosa、Versicolor 和 Virginica)的 150 朵鸢尾花的萼片长度、萼片宽度、花瓣长度和花瓣宽度的测量值。

Example

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

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