人工智能-python-数据处理实战-特征降维(PCA)
特征降维方法汇总表格
| 方法 | 原理 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|---|
| 主成分分析(PCA) | 通过线性变换将数据投影到新空间,使得数据的方差最大化。 | 适用于大部分数据集,尤其是特征相关性较强时 | 简单有效,适用于高维数据降维 | 只能处理线性关系,受噪声影响较大 |
| 线性判别分析(LDA) | 最大化类间差异和最小化类内差异,寻找最优投影方向。 | 适用于分类问题,类别标签明确时 | 适用于监督学习,能够处理类别数据 | 需要类别标签,假设数据符合高斯分布 |
| t-SNE | 通过概率分布确保数据点之间的相似性在低维空间中尽可能保留,适用于可视化。 | 数据可视化,聚类结果可视化 | 能处理非线性关系,适合可视化 | 计算复杂度高,不能用于预测任务 |
| 自编码器(Autoencoder) | 基于神经网络,通过编码器和解码器压缩和重建数据。 | 深度学习应用,适用于大规模数据 | 能处理复杂数据,适应性强 | 需要训练模型,计算复杂度高 |
| 独立成分分析(ICA) | 寻找数据的独立成分,与PCA不同,目标是数据的非高斯性。 | 信号分离,图像、音频处理 | 能处理信号分离任务 | 假设数据是非高斯的 |
| 特征选择方法 | 基于特征的方差、相关性或模型重要性,选择对结果影响最大的特征。 | 分类和回归任务 | 计算简单,容易理解 | 可能丢失重要信息,依赖数据特性 |
| 基于树的方法(如随机森林) | 通过训练模型计算特征的重要性,并选取最重要的特征。 | 适用于分类和回归任务 | 能自动评估特征重要性 | 对于高维数据处理时可能较慢 |
PCA的详细原理和步骤
1. 数据中心化
-
目的:通过中心化,将每个特征的均值变为0,消除不同特征之间的尺度差异。
-
公式:
X centered = X − μ X_{\text{centered}} = X - \mu Xcentered=X−μ
其中:
- X X X 为原始数据集。
- μ \mu μ 为每列特征的均值向量。
-
步骤:
- 对每个特征(每一列)计算其均值。
- 从每个数据点中减去该特征的均值。
-
示例:
假设数据集为:X = ( 1 2 3 4 5 6 ) X = \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{pmatrix} X= 135246
每列均值:
μ = ( 3 4 ) \mu = \begin{pmatrix} 3 & 4 \end{pmatrix} μ=(34)
数据中心化后:
X centered = ( 1 − 3 2 − 4 3 − 3 4 − 4 5 − 3 6 − 4 ) = ( − 2 − 2 0 0 2 2 ) X_{\text{centered}} = \begin{pmatrix} 1-3 & 2-4 \\ 3-3 & 4-4 \\ 5-3 & 6-4 \end{pmatrix} = \begin{pmatrix} -2 & -2 \\ 0 & 0 \\ 2 & 2 \end{pmatrix} Xcentered= 1−33−35−32−44−46−4 = −202−202
2. 计算协方差矩阵
-
目的:协方差矩阵衡量特征之间的线性关系,PCA通过协方差矩阵找出数据的主要方向。
-
公式:
Σ = 1 n − 1 X centered T X centered \Sigma = \frac{1}{n-1} X_{\text{centered}}^T X_{\text{centered}} Σ=n−11XcenteredTXcentered
其中:
- X centered T X_{\text{centered}}^T XcenteredT 为数据中心化后的转置矩阵。
- Σ \Sigma Σ 为协方差矩阵。
-
示例:
对于上述中心化后的数据集:X centered = ( − 2 − 2 0 0 2 2 ) X_{\text{centered}} = \begin{pmatrix} -2 & -2 \\ 0 & 0 \\ 2 & 2 \end{pmatrix} Xcentered= −202−202
协方差矩阵为:
Σ = 1 2 ( − 2 0 2 − 2 0 2 ) ( − 2 − 2 0 0 2 2 ) = ( 4 4 4 4 ) \Sigma = \frac{1}{2} \begin{pmatrix} -2 & 0 & 2 \\ -2 & 0 & 2 \end{pmatrix} \begin{pmatrix} -2 & -2 \\ 0 & 0 \\ 2 & 2 \end{pmatrix} = \begin{pmatrix} 4 & 4 \\ 4 & 4 \end{pmatrix} Σ=21(−2−20022) −202−202 =(4444)
3. 计算特征值和特征向量
-
目的:通过计算协方差矩阵的特征值和特征向量,找到数据的主要方向(即主成分)。
-
步骤:
- 计算协方差矩阵的特征值( λ \lambda λ)和特征向量( v v v)。
- 特征值表示了主成分的方差,特征向量表示主成分的方向。
-
特征值和特征向量计算方法:
解方程:Σ v = λ v \Sigma v = \lambda v Σv=λv
其中, Σ \Sigma Σ 为协方差矩阵, v v v 为特征向量, λ \lambda λ 为对应的特征值。
-
示例:
对于协方差矩阵:Σ = ( 4 4 4 4 ) \Sigma = \begin{pmatrix} 4 & 4 \\ 4 & 4 \end{pmatrix} Σ=(4444)
解方程得到特征值为:
λ 1 = 8 , λ 2 = 0 \lambda_1 = 8, \quad \lambda_2 = 0 λ1=8,λ2=0
对应的特征向量为:
v 1 = ( 1 1 ) , v 2 = ( − 1 1 ) v_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix}, \quad v_2 = \begin{pmatrix} -1 \\ 1 \end{pmatrix} v1=(11),v2=(−11)
4. 选择主成分并降维
-
目的:选择最重要的特征(主成分),并将数据投影到这些主成分上,达到降维效果。
-
步骤:
- 根据特征值的大小选择前几个特征向量(主成分)。
- 使用这些特征向量对原始数据进行投影。
-
示例:
选择最大的特征值对应的特征向量:v 1 = ( 1 1 ) v_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix} v1=(11)
然后将数据投影到该特征向量上。
投影后的数据为:
X reduced = X centered ⋅ v 1 = ( − 2 − 2 0 0 2 2 ) ⋅ ( 1 1 ) = ( − 4 0 4 ) X_{\text{reduced}} = X_{\text{centered}} \cdot v_1 = \begin{pmatrix} -2 & -2 \\ 0 & 0 \\ 2 & 2 \end{pmatrix} \cdot \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} -4 \\ 0 \\ 4 \end{pmatrix} Xreduced=Xcentered⋅v1= −202−202 ⋅(11)= −404
总的来说,特征降维在机器学习处理数据方面是必不可少的,不仅为大量数据提取主要特征的同时,也提高了模型训练的效率。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)