主成分分析
- 1、引言
- 2、主成分分析
- 2.1 定义
- 2.2 原理
- 2.3 实现方式
- 2.4 算法公式
- 2.5 代码示例
- 3、总结
1、引言
小屌丝:鱼哥, 快,快。
小鱼:… 啥情况, 你可别乱喊。
小屌丝:额… 我的意思,是你该继续
小鱼:… 说清楚, 继续啥???
小屌丝:就…就是… 继续啊
小鱼:我擦… 你说清楚,不然容易误会。
小屌丝:就是继续,无监督学习啊
小鱼:我…!!!
小屌丝:咋了,鱼哥,你想成啥了?
小鱼: 没…没…没想啥。
小屌丝: 你咋脸红了。
小鱼:不可能, 绝对不可能, 我从不脸红。
小屌丝:不承认就不承认吧。
小鱼:… 不解释,不掩饰,安安静静的看我的书了
小屌丝:别啊,把PCA讲完啊
小鱼: 然后呢?
小屌丝: 我就不打扰你看小人书
小鱼:…
2、主成分分析
2.1 定义
主成分分析(PCA)是一种通过正交变换将原始特征空间中的线性相关变量转换为少数几个线性无关的新变量的统计方法。
这些新变量称为主成分,它们按照方差从大到小的顺序排列,第一个主成分具有最大的方差,即包含最多的变异信息,后续的主成分则依次递减。
2.2 原理
PCA的原理基于以下两个基本思想:
- 最大方差理论:在降维后的低维空间中,样本的投影应该尽可能分开,即投影后的方差最大。
- 最近重构性:样本点到这个超平面的距离都足够近,即尽可能使原始数据点到这个超平面的垂直距离最短。
通过这两个原则,PCA能够在降维的同时尽可能地保留原始数据中的有用信息。
2.3 实现方式
PCA的实现主要包括以下步骤:
- 数据标准化:对原始数据进行标准化处理,消除量纲和尺度的影响。
- 计算协方差矩阵:计算标准化后数据的协方差矩阵,该矩阵反映了各变量之间的相关性。
- 计算协方差矩阵的特征值和特征向量:对协方差矩阵进行特征分解,得到特征值和特征向量。
- 选择主成分:根据特征值的大小选择前k个主成分,通常选择累积贡献率达到一定阈值的特征值对应的特征向量作为主成分。
- 转换数据:将原始数据投影到选定的主成分上,得到降维后的新数据集。
2.4 算法公式
PCA的关键公式包括:
-
协方差矩阵公式: ( Σ = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) ( x i − x ˉ ) T ) ( \Sigma = \frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})(x_i - \bar{x})^T ) (Σ=n−11∑i=1n(xi−xˉ)(xi−xˉ)T)其中 ( x i ) ( x_i ) (xi)是第i个样本, ( x ˉ ) ( \bar{x} ) (xˉ)是样本均值, n n n是样本数量。
-
特征值和特征向量公式:通过解特征方程 ( ∣ Σ − λ I ∣ = 0 ) ( |\Sigma - \lambda I| = 0 ) (∣Σ−λI∣=0)得到特征值 ( λ ) ( \lambda ) (λ)和对应的特征向量 ( v ) ( v ) (v)
-
主成分投影公式:对于第 j j j个主成分,其投影向量 ( p j ) ( p_j ) (pj)是对应的特征向量 ( v j ) ( v_j ) (vj),原始数据 ( x ) ( x ) (x)在该主成分上的投影为 ( z j = p j T x ) ( z_j = p_j^T x ) (zj=pjTx)。
2.5 代码示例
# -*- coding:utf-8 -*-
# @Time : 2024-03-13
# @Author : Carl_DJ
'''
实现功能:
scikit-learn库实现PCA
'''
import numpy as np
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
# 假设我们有一个二维数据集
X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
# 数据标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 创建PCA对象,设置主成分数量为1
pca = PCA(n_components=1)
# 拟合并转换数据
X_pca = pca.fit_transform(X_scaled)
# 输出降维后的数据
print("Original shape: ", X.shape)
print("Transformed shape:", X_pca.shape)
# 输出解释方差比,即每个主成分所占的方差比例
print("Explained variance ratio:", pca.explained_variance_ratio_)
运行结果
Original shape: (4, 2)
Transformed shape: (4, 1)
Explained variance ratio: [0.99999999]
3、总结
主成分分析(PCA)是一种强大的无监督学习算法,它通过正交变换将数据从原始的高维空间转换到低维空间,同时尽可能保留数据中的主要变异信息。
PCA在数据预处理、特征提取和降维等方面有着广泛的应用,能够简化数据的复杂性,提高机器学习算法的性能。
我是小鱼:
- CSDN 博客专家;
- 阿里云 专家博主;
- 51CTO博客专家;
- 企业认证金牌面试官;
- 多个名企认证&特邀讲师等;
- 名企签约职场面试培训、职场规划师;
- 多个国内主流技术社区的认证专家博主;
- 多款主流产品(阿里云等)测评一、二等奖获得者;
关注小鱼,学习机器学习领域的知识。