用主成分分析法分析鸢尾花数据
时间: 2023-11-21 19:06:41 浏览: 119
鸢尾花数据集是机器学习领域中常用的数据集之一,它包含了三个品种的鸢尾花(山鸢尾、变色鸢尾和维吉尼亚鸢尾)的花萼长度、花萼宽度、花瓣长度和花瓣宽度等四个特征,每个品种有50个样本。
主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维方法,它可以将高维数据转化为低维数据,同时保留原始数据的大部分信息。下面是使用Python进行鸢尾花数据的主成分分析的示例代码:
```python
import pandas as pd
import numpy as np
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv('iris.csv')
X = df.iloc[:, :-1].values
y = df.iloc[:, -1].values
# 数据标准化
X = (X - np.mean(X, axis=0)) / np.std(X, axis=0)
# 进行主成分分析
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
# 绘制散点图
colors = ['r', 'g', 'b']
markers = ['s', 'x', 'o']
for i, target_name in enumerate(np.unique(y)):
plt.scatter(X_pca[y==target_name, 0], X_pca[y==target_name, 1], color=colors[i], marker=markers[i], label=target_name)
plt.legend()
plt.xlabel('PC1')
plt.ylabel('PC2')
plt.show()
```
首先,使用Pandas库读取iris.csv数据文件,并将数据集分为特征X和标签y两部分。然后,对特征进行标准化处理,以便在主成分分析中得到更加准确的结果。接下来,使用sklearn库中的PCA类进行主成分分析,将高维的特征数据转换为二维的数据。最后,使用matplotlib库绘制散点图,展示主成分分析的结果。
运行以上代码,即可得到如下的散点图:
![PCA](https://i.loli.net/2021/08/26/mnLryvVhYCOt8Xx.png)
从图中可以看出,使用主成分分析将鸢尾花数据降到二维之后,不同品种的鸢尾花在空间中的分布已经很明显了,可以方便地进行分类或者聚类分析。同时,PCA还可以输出每个主成分对应的方差贡献率,可以用来评估每个主成分对原始数据的解释能力。
阅读全文