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了。
【文章原创作者:防ddos攻击 http://www.558idc.com/shsgf.html 复制请保留原URL】