机器学习主成分分析算法 PCA—python详细代码解析(sklearn)

一、问题背景

在进行数据分析时,我们常常会遇到这样的情况:各个特征变量之间存在较多的信息重叠,也就是相关性比较强。就好比在研究一个班级学生的学习情况时,可能会收集到学生的语文成绩、数学成绩、英语成绩等多个特征变量。但往往会发现,语文成绩好的学生,数学和英语成绩也可能比较好,这就说明这些变量之间存在一定的相关性。这种情况在线性回归分析中被称为多重共线性关系。

同时,如果我们的样本观测值数量较少,而选取的变量却很多,就会产生高维数据带来的 “维度灾难” 问题。想象一下,我们在一个三维空间中可以比较容易地理解和分析数据点的分布情况,但如果数据的维度增加到几十个甚至上百个,我们就很难直观地理解数据的结构和关系了。这就像是模型的自由度太小,构建效果自然就欠佳。

二、主成分分析算法的作用 —— 降维

为了解决这个问题,我们就需要用到降维的方法。主成分分析算法就是一种非常有效的降维手段。它针对有过多特征变量的数据集,在尽可能不损失信息或者少损失信息的情况下,将多个特征变量减少为少数几个潜在的主成分。

例如,在研究学生学习情况的例子中,主成分分析可能会将语文成绩、数学成绩、英语成绩等多个特征变量整合为几个主成分,比如综合学习能力主成分、学习努力程度主成分等。这几个主成分可以高度概括数据中的信息,既减少了变量个数,又能最大程度地保留原有特征变量中的信息。

三、主成分分析算法的基本原理

  1. 统计过程
    主成分分析是一种降维分析的统计过程。它通过正交变换将原始的 n 维数据集变换到一个新的被称作主成分的数据集中。这个过程就像是对数据进行了一次 “重新排列”,把原本复杂的数据变得更加简洁和易于理解。

  2. 整合特征变量
    在这个新的数据集中,众多的初始特征变量被整合成少数几个相互无关的主成分特征变量。这些新的特征变量尽可能地包含了初始特征变量的全部信息。比如,在学生学习情况的例子中,主成分分析可能会把语文成绩、数学成绩、英语成绩等多个特征变量整合为综合学习能力主成分和学习努力程度主成分。这两个主成分之间相互独立,不再像原始特征变量那样可能存在相关性。

  3. 代替原始变量进行分析
    我们可以用这些新的特征变量来代替以前的特征变量进行分析。比如在线性回归分析算法中,如果遇到样本个数小于变量个数的高维数据情形,或者原始特征变量之前存在较强相关性造成多重共线性的情况,我们可以先进行主成分分析,以提取的主成分作为新的特征变量,再进行线性回归分析等监督式学习。

  4. 正交变换
    主成分分析法从原始特征变量到新特征变量是一个正交变换(坐标变换)。通过正交变换,将原随机向量(分量间有相关性)转换成新随机向量(分量间不具有相关性),也就是将原随机向量的协方差矩阵变换成对角矩阵。这就像是把一堆杂乱无章的线整理成相互垂直的方向,使得每根线都独立不干扰。

  5. 最大方差原则
    变换后的结果中,第一个主成分具有最大的方差值,每个后续的主成分在与前述主成分正交的条件限制下也具有最大方差。方差可以理解为数据的分散程度,方差越大,说明这个主成分包含的信息越多。所以,主成分分析会按照方差从大到小的顺序提取主成分。

  6. 降维保留信息
    降维时仅保存前 m(m<n)个主成分即可保持最大的数据信息量。这是因为前面的主成分包含了大部分的数据信息,后面的主成分可能只包含少量的噪声或者冗余信息。通过只保留前几个主成分,我们可以在减少变量个数的同时,最大程度地保留原有特征变量中的信息。

四、确定主成分个数的方法

  1. 累积方差贡献率标准
    如果从尽可能保持原始特征变量信息的角度出发,最终选取的主成分的个数可以通过各个主成分的累积方差贡献率来确定。一般情况下,以累积方差贡献率大于或等于 85% 为标准。这就意味着,我们选择的主成分能够解释原始数据中至少 85%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值