PCA降维可视化:鸢尾花数据集示例
使用PCA对鸢尾花数据集进行降维并可视化
这段代码使用PCA对著名的鸢尾花数据集进行降维,并将降维后的数据可视化。
代码解析:
- 导入库和数据:
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中。
- 拟合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_表示主成分,它是一个矩阵,每一行代表一个主成分的方向。
- 降维并可视化:
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绘制降维后的数据,并将不同的鸢尾花类别用不同的颜色表示。
- 数据归一化:
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 著作权归作者所有。请勿转载和采集!