【漫话机器学习系列】130.主成分(Principal Components)

主成分(Principal Components)详解

1. 什么是主成分?

主成分(Principal Components,PCs)是数据集中方差最大的线性组合 ,它是主成分分析(Principal Component Analysis,PCA)中的核心概念。主成分可以看作是对原始特征的新表述方式,它通过数学变换找到一组新的正交坐标轴,使得数据的主要变化方向与这些轴对齐。

简单来说:

  • 主成分是数据集中信息量(方差)最大的方向。
  • 主成分相互正交(彼此不相关),即每个主成分都描述数据的一个不同方面。
  • 低维主成分可以用来表示数据的主要特征,实现降维和压缩。

2. 主成分的数学定义

假设我们有一个数据集 X ,其维度为 m × n(m 个样本,n 个特征),我们希望找到一组新的正交坐标轴 ,使得数据在这些新坐标上的投影方差最大。这些新坐标轴就是主成分,它们是原始特征的线性组合。

2.1 计算主成分的步骤

  1. 数据标准化:由于不同特征的取值范围可能不同,首先需要对数据进行标准化(均值为 0,方差为 1)。
  2. 计算协方差矩阵 : 这个矩阵描述了不同特征之间的相关性。
  3. 计算特征值和特征向量 :
    • 协方差矩阵的特征向量代表主成分方向。
    • 特征值代表该方向上的方差大小(信息量)。
  4. 选择主成分 :
    • 选择最大的 k 个特征值对应的特征向量作为新的坐标轴。
    • 这些向量构成一个投影矩阵 W,用于将数据从高维空间投影到低维空间: Z = XW
    • 其中,Z 是降维后的数据。

2.2 主成分的解释

  • 第一主成分(PC1):是数据变化最大的方向,保留了数据中最多的信息。
  • 第二主成分(PC2):与 PC1 正交,代表次要变化方向。
  • 更多主成分:后续主成分继续捕获剩余的信息,但方差越来越小。

通常情况下,我们可以选择前几个主成分来近似表示原始数据,从而达到降维的目的。


3. 主成分的几何解释

如图所示,主成分是最能表示数据分布的方向:

  • 第一主成分(PC1) 是数据方差最大的方向。
  • 第二主成分(PC2) 是与 PC1 垂直的方向,方差次大。
  • 在高维数据中,我们可以继续计算 PC3、PC4 等,但方差会逐渐减少。

主成分的几何意义:

  • 数据投影到主成分轴上后的方差最大,即信息损失最少。
  • 数据的主要特征被保留,而冗余信息被去除。

4. 主成分分析(PCA)与降维

PCA 是基于主成分的降维方法,它的目标是:

  • 减少数据的维度,保留主要信息,同时去除冗余数据。
  • 降低计算成本,使得后续机器学习任务更加高效。
  • 去除特征间的相关性,提高模型的泛化能力。

4.1 选择主成分的数量

在 PCA 中,我们通常选择累积方差达到某个阈值(如 95%)的前几个主成分。例如:

  • 如果前 2 个主成分的方差贡献率为 95%,那么我们可以只使用这 2 维数据,而舍弃其他维度。

4.2 主成分的方差贡献率

每个主成分的方差贡献率(Explained Variance Ratio)可表示为:

其中, 是第 i 个主成分的特征值,表示该主成分的重要性。

在 Python 中,可以使用 explained_variance_ratio_ 查看方差贡献率:

python 复制代码
import numpy as np
from sklearn.decomposition import PCA

# 示例数据
X = np.array([[1, 2], [3, 4], [5, 6]])
print("X:", X)  # 打印 X 以确认其存在

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

运行结果

python 复制代码
X: [[1 2]
 [3 4]
 [5 6]]

5. 主成分的应用

5.1 机器学习中的降维

  • 减少特征维度,提高模型训练速度
  • 避免多重共线性,增强模型稳定性
  • 提高可解释性,通过低维表示分析数据结构

5.2 图像处理

  • 例如,PCA 可以用于 图像压缩 :
    • 高维图像数据(如 1000 维像素)可以被降维到 50 维,同时保持主要信息。

5.3 基因数据分析

  • 基因数据通常包含数万维特征,PCA 可以帮助提取主要基因表达模式,提高分析效率。

5.4 经济和金融分析

  • PCA 可用于分析股票市场数据,找出主要的市场趋势。

6. 结论

  • 主成分(Principal Components)是数据集中方差最大的方向,可以用于降维和特征提取。
  • PCA 通过选取少数主成分来表示原始数据,实现信息压缩。
  • 在许多应用中,PCA 可以减少计算成本、提高模型性能,并增强数据可解释性。

通过理解主成分的概念,我们可以更好地利用 PCA 进行数据预处理和降维,提高机器学习模型的效果!

相关推荐
少司府17 分钟前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件
民乐团扒谱机18 分钟前
Agent-Skills 新手入门与实战部署指南
人工智能·ai·agent·skill
打工仔折腾 AI1 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
火云代理1 小时前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip
深圳雨林凯AI2 小时前
商品详情长图的自动生成:版块模板、要素抽取与版式约束的实现思路
人工智能·ai
lisw052 小时前
迁移学习(Transfer Learning):概念、历史、内容、挑战与展望
人工智能·机器学习·迁移学习
炫酷的大高个2 小时前
98% 连跑 20 次只剩 67%,我算了大模型重试账
人工智能·架构·开源
可乐ea2 小时前
智能体的模型列表为什么要从三处来源合成:一次让 GPT-6.1 Sol 选不上的发布延迟
人工智能·gpt·chatgpt·智能体框架·模型列表·多源数据合成·客户端工程
freewebsys2 小时前
【原始POSTMAN】最老一个版本的postman 大家还记得吗?官方已经不支持没有升级了,下载了组件用AI直接升级了下可以使用了!
人工智能
云南新人和数采集团2 小时前
云南靠谱软件开发公司选型指南:以昆明新腾科技为例
大数据·人工智能·科技