使用PCA对鸢尾花数据集进行降维并可视化

这段代码使用PCA对著名的鸢尾花数据集进行降维,并将降维后的数据可视化。

代码解析:

  1. 导入库和数据:
k = 2
pca = PCA(n_components=k)

iris_fulldata = load_iris()
iris_dataset = iris_fulldata.data

print('加载鸢尾花数据....')
  • 首先,设置参数 k=2,表示要将数据降维到2维。
  • 然后,创建PCA对象并设置n_components为2,即指定降维后的维度数。
  • 使用 load_iris() 加载鸢尾花数据集,并提取数据特征到iris_dataset中。
  1. 拟合PCA模型:
pca.fit(iris_dataset)
print('平均值 = ', pca.mean_)

print('方差比例 = ', pca.explained_variance_ratio_)
print('主成分 = ', pca.components_)
  • 使用 fit 方法训练PCA模型,将鸢尾花数据集作为输入数据。
  • pca.mean_ 表示数据的平均值,它用于中心化数据。
  • pca.explained_variance_ratio_ 表示每个主成分解释的方差比例,用于评估降维后的信息损失。
  • pca.components_ 表示主成分,它是一个矩阵,每一行代表一个主成分的方向。
  1. 降维并可视化:
X = pca.transform(iris_dataset)

species_value = 2 
print('选择: Iris-',iris_fulldata['target_names'][species_value],'作为真实数据分布')
species_ind = [i for i, e in enumerate(iris_fulldata['target']) if e == species_value]
plt.scatter(X[:,0], X[:,1],c=iris_fulldata['target'])
plt.show()
  • 使用 transform 方法将原始数据降维到2维,并将结果保存到X中。
  • 然后,选择 Iris-versicolor (species_value=2) 作为真实数据分布进行可视化。
  • 使用 plt.scatter 绘制降维后的数据,并将不同的鸢尾花类别用不同的颜色表示。
  1. 数据归一化:
scaler = MinMaxScaler()
scaler.fit(X)
X = scaler.transform(X)
plt.scatter(X[:,0], X[:,1],c=iris_fulldata['target'])
plt.show()
  • 使用 MinMaxScaler 将数据归一化到0-1之间,以便更好地可视化。
  • 最后,再次使用 plt.scatter 绘制归一化后的数据,以便更好地观察数据分布。

总结:

这段代码演示了如何使用PCA对鸢尾花数据集进行降维,并可视化降维后的数据。它展示了如何使用PCA进行降维、计算主成分、提取特征值和方差比例,并使用matplotlib库对降维后的数据进行可视化。代码也体现了数据预处理的重要性,例如数据归一化可以帮助我们更好地可视化数据分布。


原文地址: https://www.cveoy.top/t/topic/lAn9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录