plot_pca_correlation_graph: 绘制原始特征与主成分之间的相关性图


A function to provide a correlation circle for PCA.

> from mlxtend.plotting import plot_pca_correlation_graph

在所谓的相关性圆圈图中,通过坐标展示原始数据集特征与主成分之间的相关性。

示例

以下相关性圆圈图示例可视化了前两个主成分与鸢尾花数据集的 4 个原始特征之间的相关性。

  • 具有正相关性的特征将被分组在一起。
  • 完全不相关的特征相互正交。
  • 具有负相关性的特征将绘制在此图的对立象限中。
from mlxtend.data import iris_data
from mlxtend.plotting import plot_pca_correlation_graph
import numpy as np
X, y = iris_data()

X_norm = X / X.std(axis=0) # Normalizing the feature columns is recommended

feature_names = [
  'sepal length',
  'sepal width',
  'petal length',
  'petal width']

figure, correlation_matrix = plot_pca_correlation_graph(X_norm, 
                                                        feature_names,
                                                        dimensions=(1, 2),
                                                        figure_axis_size=10)

png

correlation_matrix
维度 1 维度 2
萼片长度 -0.891224 -0.357352
萼片宽度 0.449313 -0.888351
花瓣长度 -0.991684 -0.020247
花瓣宽度 -0.964996 -0.062786

此外,请注意,x 轴和 y 轴上显示的百分比值表示每个主成分轴解释了原始数据集中方差的多少。例如,如果 PC1 显示 72.7%,PC2 显示 23.0%(如上所示),则这两个主成分合计解释了总方差的 95.7%。

API

plot_pca_correlation_graph(X, variables_names, dimensions=(1, 2), figure_axis_size=6, X_pca=None, explained_variance=None)

计算 X 的 PCA 并绘制相关性图

参数

  • X : 类似二维数组。

    列表示不同的变量,行表示这些变量的样本。

  • variables_names : 类似数组。

    X 的列(变量)名称

    dimensions: 包含两个元素的元组。要绘制的维度 (x,y)

    figure_axis_size : 最终框架的大小。创建的图形是长宽等于 figure_axis_size 的正方形。

  • X_pca : np.ndarray, 形状 = [n_samples, n_components]。

    可选。X_pca 是从 X 转换后的成分矩阵。如果未提供,函数将使用 mlxtend.feature_extraction.PrincipalComponentAnalysis 自动计算 PCA。要求 n_componentes >= max(dimensions)

  • explained_variance : 1 维 np.ndarray, 长度 = n_components

    可选。explained_variance 是 PCA 转换中对角化协方差矩阵的特征值。如果未提供,函数将独立计算 PCA。要求 n_componentes == X.shape[1]

返回值

matplotlib 图形, 相关性矩阵

示例

有关使用示例,请参阅 https://mlxtend.cn/mlxtend/user_guide/plotting/plot_pca_correlation_graph/