上篇博客中,我们介绍了并用代码实现了PCA算法,本篇博客我们应用PCA算法对鸢尾花数据集降维,并可视化。

下文代码来自MOOC网的《Python机器学习应用》课程。
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
data = load_iris() # 以字典形式加载鸢尾花数据集
y = data.target # 使用y表示数据集中的标签
X = data.data # 使用X表示数据集中的属性数据
pca = PCA(n_components=2) # 加载PCA算法,设置降维后主成分数目为2
reduced_X = pca.fit_transform(X) # 对原始数据进行降维,保存在reduced_X中
red_x, red_y = [], [] # 第一类数据点
blue_x, blue_y = [], [] # 第二类数据点
green_x, green_y = [], [] # 第三类数据点
for i in range(len(reduced_X)): # 按照鸢尾花的类别将降维后的数据点保存在不同的列表中。
if y[i] == 0:
red_x.append(reduced_X[i][0])
red_y.append(reduced_X[i][1])
elif y[i] == 1:
blue_x.append(reduced_X[i][0])
blue_y.append(reduced_X[i][1])
else:
green_x.append(reduced_X[i][0])
green_y.append(reduced_X[i][1])
plt.scatter(red_x, red_y, c=‘r‘, marker=‘x‘)
plt.scatter(blue_x, blue_y, c=‘b‘, marker=‘D‘)
plt.scatter(green_x, green_y, c=‘g‘, marker=‘.‘)
plt.show()
运行结果:

[1] 鸢尾花数据集
原文:https://www.cnblogs.com/picassooo/p/12701058.html