PCA实现

实验目标

本实验通过主成分分析(PCA)技术对鸢尾花数据集进行降维,旨在:使用PCA将原始4维数据降到2维,并进行可视化。分析降维前后数据的分布和类别区分情况。评估PCA对数据方差解释率的贡献,以便在最少维度中保留最多信息。

实验环境

o Python 3.x

o Scikit-learn、NumPyPandas

o Jupyter Notebook

o Matplotlib

实验数据集

本实验使用的是鸢尾花数据集(Iris dataset),它是一个经典的多分类数据集,包含150个样本,4个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度),以及3个目标类别(Setosa、Versicolor、Virginica)。

实验步骤

一、导入必要的库

import numpy as np  
import matplotlib.pyplot as plt  
from sklearn.datasets import load_iris  
from sklearn.preprocessing import StandardScaler  
from sklearn.decomposition import PCA  
import matplotlib  # 设置中文字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']    # SimHei 是常用的中文黑体字体
matplotlib.rcParams['axes.unicode_minus'] = False    # 显示负号

二、加载数据集

iris = load_iris()
X = iris.data
y = iris.target
target_names = iris.target_names

三、数据标准化 

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

四、原始数据的前两个特征可视化  

plt.figure(figsize=(8, 6))
for i, color in zip(range(3), ['red', 'green', 'blue']):
    plt.scatter(X[y == i, 0], X[y == i, 1], color=color, label=target_names[i], alpha=0.7)
plt.xlabel('花萼长度 (sepal length)')
plt.ylabel('花萼宽度 (sepal width)')
plt.title('原始数据的前两个特征')
plt.legend()
plt.grid(True)
plt.show()

五、应用PCA将数据降维到2维

pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)

六、降维后的数据可视化

plt.figure(figsize=(8, 6))
for i, color in zip(range(3), ['red', 'green', 'blue']):
    plt.scatter(X_pca[y == i, 0], X_pca[y == i, 1], color=color, label=target_names[i], alpha=0.7)
plt.xlabel('主成分 1')
plt.ylabel('主成分 2')
plt.title('PCA降维后的数据')
plt.legend()
plt.grid(True)
plt.show()

七、打印决策树的规则

pca_full = PCA(n_components=4)
pca_full.fit(X_scaled)

 

explained_variance_ratio = pca_full.explained_variance_ratio_
plt.figure(figsize=(8, 6))
plt.plot(np.cumsum(explained_variance_ratio), marker='o', linestyle='--')
plt.xlabel('主成分数量')
plt.ylabel('累计方差解释率')
plt.title('PCA方差解释率')
plt.grid(True)
plt.show()

实验结果展示

1、原始数据的前两个特征图:展示了花萼长度和花萼宽度的分布,可以看到三个类别之间有一定的重叠。

2、降维后的2维数据图:PCA降维后,数据点在二维空间中被更好地分隔,不同类别的样本明显区分。

3、累计方差解释率图:展示了前两个主成分解释了大部分的方差,说明PCA有效地保留了大部分信息。

实验总结

1、PCA能够有效地将4维数据压缩到2维,同时保留了较多信息。从降维后数据的可视化结果可以看出,降维后的二维空间能较好地分隔出不同类别。

2、累计方差解释率图显示,前两个主成分解释了大部分数据的方差,这说明PCA的降维在保留信息的同时简化了数据。

3、PCA可以用于数据的降维和可视化,尤其适用于在高维数据中找到主要信息,并用于探索性数据分析或提高模型计算效率的场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值