实验 PCA实现
实验目标
本实验通过主成分分析(PCA)技术对鸢尾花数据集进行降维,旨在:使用PCA将原始4维数据降到2维,并进行可视化。分析降维前后数据的分布和类别区分情况。评估PCA对数据方差解释率的贡献,以便在最少维度中保留最多信息。
实验环境
o Python编程语言
o Scikit-learn库
o Matplotlib(用于数据可视化)
o NumPy和Pandas库(用于数据处理)
o Jupyter Notebook或类似IDE(用于代码编写和结果展示)
实验数据集
本实验使用的是鸢尾花数据集(Iris dataset),它是一个经典的多分类数据集,包含150个样本,4个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度),以及3个目标类别(Setosa、Versicolor、Virginica)。
实验步骤
1. 数据加载与初步探索
o 加载鸢尾花数据集,获取特征数据X和目标标签y。
2. 标准化特征
o 使用StandardScaler对特征数据进行标准化,使每个特征的均值为0,方差为1,以便消除量纲差异。
3. 原始数据可视化
o 使绘制原始数据的前两个特征,以便在降维前观察数据的分布。
4. 应用PCA降维
o 使用PCA将标准化后的数据从4维降到2维。
5. 降维后数据可视化
o 将降维后的2维数据进行可视化,用颜色区分类别,展示PCA在二维空间中的数据表现。
6. 方差解释率分析
o 计算每个主成分对方差的解释率,并绘制累计方差解释率图,观察PCA如何保留主要信息。
实验结果展示
o 原始数据的前两个特征图:展示了降维前的原始数据(4维中的两个特征)的分布情况。
o 降维后的2维数据图:在降维后的二维空间中显示各类别数据点的分布情况,展示了PCA保留的主要信息。
o 累计方差解释率图:通过累计方差解释率图观察不同数量主成分对信息量的保留情况,以帮助决定在降维中需要保留的维度数。
实验总结
o 实验表明,PCA能够有效地将4维数据压缩到2维,同时保留了较多信息。从降维后数据的可视化结果可以看出,降维后的二维空间能较好地分隔出不同类别。
o 累计方差解释率图显示,前两个主成分解释了大部分数据的方差,这说明PCA的降维在保留信息的同时简化了数据。
o PCA可以用于数据的降维和可视化,尤其适用于在高维数据中找到主要信息,并用于探索性数据分析或提高模型计算效率的场景。
实验代码参考
以下是一个PCA实现的实验代码(使用鸢尾花数据集):
——————————————
# 导入必要的库
imporimport numpy as np # 数值计算库,用于数组操作
import matplotlib.pyplot as plt # 绘图库,用于数据可视化
from sklearn.datasets import load_iris # 数据集模块,用于加载鸢尾花数据集
from sklearn.preprocessing import StandardScaler # 数据标准化模块
from sklearn.decomposition import PCA # 主成分分析模块
# 加载鸢尾花数据集(Iris Dataset)
# 加载鸢尾花数据集,X为特征数据,y为类别标签,target_names为类别名称
# 特征矩阵(形状为 150x4)
# 类别标签(0, 1, 2),共3类
# 类别名称(setosa, versicolor, virginica)
# 数据标准化
# 通过StandardScaler将数据进行标准化,使每个特征均值为0,方差为1,消除量纲差异
# 原始数据的前两个特征可视化(4维降到2维前的对比)
# 可视化原始数据的前两个特征,以便与PCA降维后的数据进行对比
# 设置图像大小
# 定义每个类别的颜色
# 按类别绘制前两个特征的散点图
# 设置x轴标签为第一个特征
# 设置y轴标签为第二个特征
# 图像标题
# 添加网格线
# 显示图像
# 应用PCA将数据降维到2维
# 使用PCA将数据从4维降到2维,以便在2D图中进行可视化
# 设置降维的目标维度为2
# 对标准化数据进行PCA降维
# 降维后的数据可视化
# 可视化降维后的2维数据,展示PCA在2维空间中重构的主要信息
# 设置图像大小
# 按类别绘制降维后的散点图
# 设置x轴标签为主成分1
# 设置y轴标签为主成分2
# 图像标题
# 显示图例
# 添加网格线
# 显示图像
# 方差解释率
# 使用完整的PCA分析各主成分的方差贡献率
# 对标准化数据进行PCA,包含所有主成分
# 累计方差
# 绘制累计方差解释率
# 设置图像大小
# 绘制主成分数量与累计方差解释率的关系曲线
# 设置x轴标签为主成分数量
# 设置y轴标签为累计方差解释率
# 图像标题
——————————————

