人工智能-python-数据处理实战-特征降维(PCA)
文章目录
- 特征降维方法汇总表格
- PCA的详细原理和步骤
- 1. 数据中心化
- 2. 计算协方差矩阵
- 3. 计算特征值和特征向量
- 4. 选择主成分并降维
特征降维方法汇总表格
方法 | 原理 | 适用场景 | 优点 | 缺点 |
---|---|---|---|---|
主成分分析(PCA) | 通过线性变换将数据投影到新空间,使得数据的方差最大化。 | 适用于大部分数据集,尤其是特征相关性较强时 | 简单有效,适用于高维数据降维 | 只能处理线性关系,受噪声影响较大 |
线性判别分析(LDA) | 最大化类间差异和最小化类内差异,寻找最优投影方向。 | 适用于分类问题,类别标签明确时 | 适用于监督学习,能够处理类别数据 | 需要类别标签,假设数据符合高斯分布 |
t-SNE | 通过概率分布确保数据点之间的相似性在低维空间中尽可能保留,适用于可视化。 | 数据可视化,聚类结果可视化 | 能处理非线性关系,适合可视化 | 计算复杂度高,不能用于预测任务 |
自编码器(Autoencoder) | 基于神经网络,通过编码器和解码器压缩和重建数据。 | 深度学习应用,适用于大规模数据 | 能处理复杂数据,适应性强 | 需要训练模型,计算复杂度高 |
独立成分分析(ICA) | 寻找数据的独立成分,与PCA不同,目标是数据的非高斯性。 | 信号分离,图像、音频处理 | 能处理信号分离任务 | 假设数据是非高斯的 |
特征选择方法 | 基于特征的方差、相关性或模型重要性,选择对结果影响最大的特征。 | 分类和回归任务 | 计算简单,容易理解 | 可能丢失重要信息,依赖数据特性 |
基于树的方法(如随机森林) | 通过训练模型计算特征的重要性,并选取最重要的特征。 | 适用于分类和回归任务 | 能自动评估特征重要性 | 对于高维数据处理时可能较慢 |
PCA的详细原理和步骤
1. 数据中心化
-
目的:通过中心化,将每个特征的均值变为0,消除不同特征之间的尺度差异。
-
公式:
Xcentered=X−μX_{\text{centered}} = X - \mu Xcentered=X−μ
其中:
- XXX 为原始数据集。
- μ\muμ 为每列特征的均值向量。
-
步骤:
- 对每个特征(每一列)计算其均值。
- 从每个数据点中减去该特征的均值。
-
示例:
假设数据集为:X=(123456)X = \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{pmatrix} X=135246
每列均值:
μ=(34)\mu = \begin{pmatrix} 3 & 4 \end{pmatrix} μ=(34)
数据中心化后:
Xcentered=(1−32−43−34−45−36−4)=(−2−20022)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通过协方差矩阵找出数据的主要方向。
-
公式:
Σ=1n−1XcenteredTXcentered\Sigma = \frac{1}{n-1} X_{\text{centered}}^T X_{\text{centered}} Σ=n−11XcenteredTXcentered
其中:
- XcenteredTX_{\text{centered}}^TXcenteredT 为数据中心化后的转置矩阵。
- Σ\SigmaΣ 为协方差矩阵。
-
示例:
对于上述中心化后的数据集:Xcentered=(−2−20022)X_{\text{centered}} = \begin{pmatrix} -2 & -2 \\ 0 & 0 \\ 2 & 2 \end{pmatrix} Xcentered=−202−202
协方差矩阵为:
Σ=12(−202−202)(−2−20022)=(4444)\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λ)和特征向量(vvv)。
- 特征值表示了主成分的方差,特征向量表示主成分的方向。
-
特征值和特征向量计算方法:
解方程:Σv=λv\Sigma v = \lambda v Σv=λv
其中,Σ\SigmaΣ 为协方差矩阵,vvv 为特征向量,λ\lambdaλ 为对应的特征值。
-
示例:
对于协方差矩阵:Σ=(4444)\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
对应的特征向量为:
v1=(11),v2=(−11)v_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix}, \quad v_2 = \begin{pmatrix} -1 \\ 1 \end{pmatrix} v1=(11),v2=(−11)
4. 选择主成分并降维
-
目的:选择最重要的特征(主成分),并将数据投影到这些主成分上,达到降维效果。
-
步骤:
- 根据特征值的大小选择前几个特征向量(主成分)。
- 使用这些特征向量对原始数据进行投影。
-
示例:
选择最大的特征值对应的特征向量:v1=(11)v_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix} v1=(11)
然后将数据投影到该特征向量上。
投影后的数据为:
Xreduced=Xcentered⋅v1=(−2−20022)⋅(11)=(−404)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
总的来说,特征降维在机器学习处理数据方面是必不可少的,不仅为大量数据提取主要特征的同时,也提高了模型训练的效率。