推荐直接网站在线阅读:aicoting AI算法面试学习在线网站
降维与表示学习是无监督学习中的重要方法,旨在将高维数据映射到低维空间,同时尽可能保留数据的结构与信息。降维方法如 主成分分析(PCA)、独立成分分析(ICA) 能去除冗余特征,降低计算复杂度,并便于可视化;非线性方法如 t-SNE、UMAP 则能在低维空间中保留数据的局部或全局结构。表示学习通过自动提取数据的潜在特征表示,为后续聚类、分类或生成模型提供更加紧凑和有效的特征,是处理高维复杂数据的重要工具。
所有相关源码示例、流程图、模型配置与知识库构建技巧,我也将持续更新在Github:AIHub,欢迎关注收藏!
1. 什么是主成分分析(PCA)?
主成分分析(PCA, Principal Component Analysis)是一种经典的线性降维方法,旨在将高维数据映射到低维空间,同时保留数据的主要信息。通过提取数据中的主要方向(主成分),PCA 可以去除冗余特征、降低计算复杂度,并方便可视化和后续分析。
常见应用场景包括:
- 数据可视化:将高维数据降到 2D 或 3D,便于观察数据分布和聚类结构。
- 特征压缩:减少特征数量,提高机器学习模型训练效率。
- 噪声去除:去掉低方差方向的特征,提升数据质量。
- 模式识别:提取数据的主要变化方向,用于分类、聚类或异常检测。
PCA 的目标是找到一个正交坐标系,使得数据在新坐标轴上的投影方差最大。设数据矩阵为 ,每行表示一个样本,每列表示一个特征。
2. 主成分分析的核心步骤
主成分分析的核心步骤包括:
- 中心化:减去每个特征的均值,使数据均值为零。
- 协方差矩阵:
- 特征值分解(EVD):求协方差矩阵的特征值和特征向量。
- 选择主成分:选取前 个最大特征值对应的特征向量作为投影矩阵 。
- 数据投影:
PCA 的每个主成分都是数据的线性组合,且相互正交,第一主成分方差最大,第二主成分方差次大,以此类推。
PCA的算法步骤如下:
- 对原始数据进行中心化处理。
- 计算数据的协方差矩阵。
- 对协方差矩阵进行特征值分解或奇异值分解(SVD)。
- 选择前 k 个特征向量构建投影矩阵。
- 将原始数据投影到低维空间,得到降维后的数据。 下面通过示例代码实现来形象的理解:
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
# 1. 加载数据
iris = load_iris()
X = iris.data
y = iris.target
# 2. PCA 降维到 2 维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
# 3. 可视化
plt.scatter(X_pca[:,0], X_pca[:,1], c=y, cmap='viridis', s=30)
plt.xlabel("Principal Component 1")
plt.ylabel("Principal Component 2")
plt.title("PCA of Iris Dataset")
plt.show()
# 4. 查看各主成分解释的方差比例
print("Explained variance ratio:", pca.explained_variance_ratio_)
运行结果如下,其中散点图展示了降维后的样本分布,explained_variance_ratio 显示每个主成分解释的数据方差比例。
PCA的优点是简单易用,计算高效,可以降低维度,减少噪声和冗余;但是它仅考虑线性关系,无法捕捉非线性结构,并且主成分的物理意义可能不明确,同时对异常值敏感,噪声可能影响主成分方向。
最新的文章都在公众号aicoting更新,别忘记关注哦!!!
📚 推荐阅读
作者:aicoting
分享是一种信仰,连接让成长更有温度。
我们下次不见不散!