一文搞懂机器学习中的PCA主成分分析!

66 阅读5分钟

推荐直接网站在线阅读:aicoting AI算法面试学习在线网站

降维与表示学习是无监督学习中的重要方法,旨在将高维数据映射到低维空间,同时尽可能保留数据的结构与信息。降维方法如 主成分分析(PCA)、独立成分分析(ICA) 能去除冗余特征,降低计算复杂度,并便于可视化;非线性方法如 t-SNE、UMAP 则能在低维空间中保留数据的局部或全局结构。表示学习通过自动提取数据的潜在特征表示,为后续聚类、分类或生成模型提供更加紧凑和有效的特征,是处理高维复杂数据的重要工具。

所有相关源码示例、流程图、模型配置与知识库构建技巧,我也将持续更新在Github:AIHub,欢迎关注收藏!

1. 什么是主成分分析(PCA)?

主成分分析(PCA, Principal Component Analysis)是一种经典的线性降维方法,旨在将高维数据映射到低维空间,同时保留数据的主要信息。通过提取数据中的主要方向(主成分),PCA 可以去除冗余特征、降低计算复杂度,并方便可视化和后续分析。

常见应用场景包括:

  • 数据可视化:将高维数据降到 2D 或 3D,便于观察数据分布和聚类结构。
  • 特征压缩:减少特征数量,提高机器学习模型训练效率。
  • 噪声去除:去掉低方差方向的特征,提升数据质量。
  • 模式识别:提取数据的主要变化方向,用于分类、聚类或异常检测。

PCA 的目标是找到一个正交坐标系,使得数据在新坐标轴上的投影方差最大。设数据矩阵为 ,每行表示一个样本,每列表示一个特征。

2. 主成分分析的核心步骤

主成分分析的核心步骤包括:

  1. 中心化:减去每个特征的均值,使数据均值为零。
  2. 协方差矩阵:
  3. 特征值分解(EVD):求协方差矩阵的特征值和特征向量。
  4. 选择主成分:选取前 个最大特征值对应的特征向量作为投影矩阵 。
  5. 数据投影:

PCA 的每个主成分都是数据的线性组合,且相互正交,第一主成分方差最大,第二主成分方差次大,以此类推。

PCA的算法步骤如下:

  1. 对原始数据进行中心化处理。
  2. 计算数据的协方差矩阵。
  3. 对协方差矩阵进行特征值分解或奇异值分解(SVD)。
  4. 选择前 k 个特征向量构建投影矩阵。
  5. 将原始数据投影到低维空间,得到降维后的数据。 下面通过示例代码实现来形象的理解:
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更新,别忘记关注哦!!!

📚 推荐阅读

机器学习之数据预处理篇!

机器学习特征工程中的特征选择

机器学习中的特征构造

机器学习之特征降维

到底什么才是回归模型?都有哪些方法?

一文搞懂监督学习中的分类模型!

一文搞懂监督学习中的树模型!

一文读懂监督学习中的集成学习!

一文搞懂K-Means 聚类方法

K-Medoids聚类方法和K-Means有什么区别?

一文搞懂层次聚类和密度聚类方法!

作者:aicoting

分享是一种信仰,连接让成长更有温度。

我们下次不见不散!