主成分分析法应用实例及python代码
时间: 2024-02-06 19:03:22 浏览: 38
主成分分析(PCA)是一种常用的数据分析方法,用于降低数据维度、发现数据之间的关系和提取主要特征等。下面以一个实例来说明PCA的应用过程,并给出Python代码。
实例:对鸢尾花数据进行PCA分析
我们使用经典的鸢尾花数据集来进行PCA分析。该数据集包含了3个不同品种的鸢尾花,每个品种50个样本,每个样本有4个特征值:萼片长度、萼片宽度、花瓣长度和花瓣宽度。我们将使用PCA方法,将这4个特征值降到2个维度,并可视化数据集。
1. 导入数据集和模块
首先,我们需要导入鸢尾花数据集和相关模块。可以使用scikit-learn库中的load_iris函数来读取数据集,使用matplotlib库来可视化数据集,使用sklearn.decomposition中的PCA类来进行PCA分析。
```python
# 导入数据集和模块
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
# 读取鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
```
2. 进行PCA分析
接下来,我们将使用PCA类进行PCA分析。我们将降维到2个维度,这意味着我们将把4个特征值压缩成2个新特征值。我们还将使用fit_transform函数来拟合数据并进行降维操作。
```python
# 进行PCA分析
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
```
3. 可视化数据集
最后,我们将使用matplotlib库来可视化数据集。我们将使用散点图来显示鸢尾花数据集的分布情况,并使用不同颜色和形状来表示不同品种的鸢尾花。我们还将使用PCA分析生成的新特征值来绘制新的坐标轴。
```python
# 可视化数据集
plt.figure(figsize=(8, 6))
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis')
plt.xlabel('PCA1')
plt.ylabel('PCA2')
plt.title('Iris Dataset')
plt.show()
```
完整代码如下:
```python
# 导入数据集和模块
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
# 读取鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 进行PCA分析
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
# 可视化数据集
plt.figure(figsize=(8, 6))
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis')
plt.xlabel('PCA1')
plt.ylabel('PCA2')
plt.title('Iris Dataset')
plt.show()
```
运行以上代码,可得到如下的可视化结果:
![Iris Dataset PCA](https://cdn.jsdelivr.net/gh/feather321/image-hosting/images/Iris%20Dataset%20PCA.png)
从图中可以看出,使用PCA方法将鸢尾花数据集降到2个维度后,数据集的品种之间的分布情况更加明显,不同品种的鸢尾花更加容易区分。这证明了PCA方法在降低数据维度、发现数据之间的关系和提取主要特征等方面的有效性。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)