Python中的主成分分析实例

Python中的主成分分析实例

主成分分析(Principal Component Analysis,PCA)是一种常用于数据降维的方法,可以将高维度数据降维至低维度,保留尽可能多的数据变异信息。Python提供了许多用于实现PCA的库和工具,本文就通过一个实例来介绍如何使用Python中的sklearn库实现PCA。

首先,我们需要准备一个数据集。本文将使用Iris数据集,该数据集包含150条样本数据,每个样本都有4个特征值(花萼的长度和宽度、花瓣的长度和宽度),以及一个标签(鸢尾花的类型)。我们的目标是将这4个特征进行降维,找到最重要的主成分。

首先,我们需要导入必要的库和数据集。

from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

iris = load_iris()
X = iris.data
y = iris.target

现在我们可以创建一个PCA对象并应用它。

pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

这里的PCA对象设置n_components=2,表示我们只想在二维平面上展示我们处理后的数据。我们将fit_transform应用于原始数据X,获取处理后的数据集X_pca。

现在我们可以绘制结果图。

plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y)
plt.xlabel('Component 1')
plt.ylabel('Component 2')
plt.show()

在这个图中,我们可以看到Iris数据集在降维后的二维空间中的分布。每个点都表示一个鸢尾花的样本,颜色表示鸢尾花的类型。

现在让我们看看主成分应该是什么。

print(pca.components_)

这会输出两个向量,分别称为“成分1”和“成分2”。

[[ 0.36158968 -0.08226889 0.85657211 0.35884393]
[-0.65653988 -0.72971237 0.1757674 0.07470647]]

每个元素表示原始数据中的一个特征的权重。换句话说,我们可以将主成分看作是用于线性组合原始特征的向量。结果中的每个向量都是一个单位向量。

我们也可以查看每个成分解释的数据方差量。

print(pca.explained_variance_ratio_)

这个输出会显示每个成分解释的数据方差量的比例。

[0.92461621 0.05301557]

我们可以看到,这两个成分总共解释了数据中94%的方差量。这意味着我们可以非常准确地捕捉数据的特征。

有一件事需要注意,PCA会将所有特征从原始数据中都删除。因此,如果我们需要保留某些特征,我们需要在应用PCA之前手动删除它们。

这就是如何使用Python中的sklearn库实现PCA的实例。PCA可应用于所有类型的数据,帮助我们从高维度数据中发现最重要的成分。如果您可以理解本文中的代码,你也就会有能力在您自己的数据集上应用PCA了。

以上就是Python中的主成分分析实例的详细内容,更多请关注其它相关文章!