PCA简介(主成分分析)
发布时间:2023-06-18 03:26:18 作者:互联网收集 浏览量:909
PCA是一种常用的降维技术:它可用于降低n维数据集的维数,同时保留尽可能多的信息。
主成分分析是一种降维技术。维度只是指数据中有多少特征(也就是列或属性)。我们用维度空间来考虑数据就像我们居住的第三维度或者任何平面形状的第二维度。
您拥有的特征越多→数据的维度越多
现在,当您拥有大量特征或者您不断增加数据中的特征数量时会发生什么呢?一种被称为维度诅咒的现象开始出现。
重点是,你拥有的特征越多,你的数值计算就越困难。
这意味着机器学习算法的性能将受到影响,这些算法是对数据的数值计算。每个添加的变量都会导致预测能力呈指数下降。
示例
您可以看到,我们在问题中添加的维度越多,解决的难度就越大。这基本上是维度诅咒的概念。
那么PCA与其中的任何一个有什么关系呢?PCA是一种维度降低技术,旨在简化对数据的理解:数字或视觉。
在我们开始谈论PCA之前,让我们来谈谈降维技术。
通常,这些技术旨在减少数据集中特征列的数量。它通过组合和重新组织您的特征列或直接删除它们来实现此目的。
如果您处理过具有许多特性列的数据,您就会知道它会引发许多问题。您是否理解每个特征之间的关系(如果数量很大,则非常困难)?特征的数量是否导致您的机器学习模型过度适合?这会违反我的模型假设吗?我的模型什么时候能完成训练?
由于这些问题,您现在开始问自己:“我如何减少特征的数量,以便我不会遇到这些问题?”
有两种方法可以做到这一点:
特征消除就是这样。您可以消除/删除不需要的特征。然而,你会失去来自模型的数据。
特征提取没有上述问题。假设你有100个特征。在特征提取中,我们丢弃旧特征,创建100个“新”独立特征,其中每个“新”特征是前一个特征的组合。独立的“新”特性由您使用的算法(如PCA)决定,并根据它们对目标变量(即因变量)的预测程度排序。最后,根据您希望维护的方差大小,删除最不重要的“新”列:例如,假设上面示例中的前80个特征解释了95%的方差,我们希望保留这个百分比。这意味着我们将放弃后面的20个“新”特征。
最后,您的数据集看起来应该是这样的
PCA是一种特征提取技术; 其中,主成分是我们上面讨论过的“新”独立特征。目标是尽可能多地保留“新”特征,同时删除最不重要的特征。这很容易确定,因为新特征是根据他们预测目标类别的顺序排序的。您现在可能会问:“好吧,我们减少了特征的数量,但是我们不会像在特征消除中那样失去过程中的数据吗?”。确实,我们放弃了一部分,但每个“新特征”都是我们“旧特征”的组合。这意味着即使我们删除了一些“新”特征,我们仍然保留旧特征中最有价值的部分。
另一个值得注意的有趣内容:所有这些“新”特征都是线性独立的。原因是因为在应用PCA之前,您需要将数据集归一化为正态分布。这意味着我们可以保证线性模型的线性数据集,如线性回归,Logistic回归,线性SVM。
主成分分析(PCA)通过识别在训练集中占最大方差的轴来找到第一个主成分。
然后,它找到了占第二大方差的轴,这个轴正交于它。它会一直这样下去,直到你有足够多的主成分,就像你工作的维度空间一样。
下面是一个二维空间的例子
我们选择第一个主成分,即[ PC1 ],基于具有最大方差和最小误差的向量。我们可以在右边的图上直观地看到这一点。实线表示我们PC1具有最大的方差和误差率最小,那么虚线,PC2,线正交到PC1,拥有量最大的剩余方差。没有标签的虚线不是主成分,它只表示一个轴,该轴共享来自PC1和PC2的数据。
在当前场景中,我们在二维空间中工作,两个主成分应该解释~100%的数据。记住,我解释过主成分是旧特征的组合。因此,如果我在2-D空间中有2个主成分,它们基本上包含与原始2个特征相同的信息,但重新排序。如果我们在三维空间中工作,只使用两个主成分,那么这些成分的组合可以解释< 100%的数据。
下面是一个动画,向您展示超平面上的不同projections 是什么样的。紫色刻度线表示PC1的位置,线上的点表示该线上的数据的方差。
对于机器学习优化,您需要选择组合方差在85%左右或更高的前n个组件。对于可视化高维数据,这并不重要;你可以建立两个主成分来观察你在二维空间中的数据。
PCA可视化
我将使用着名的Iris机器学习数据集来可视化不同类型的虹膜。
首先,我导入我要使用的包。
接下来,我将从URL中读取数据并将其存储为pandas dataframe
现在,我将值缩放到正态分布并实现PCA。我们使用standard scaler的原因是因为PCA最适合具有正态分布的数据。事实上,大多数机器学习(ML)算法对于遵循钟形曲线的数据效果最佳。
让我们将主成分数据放在pandas DataFrame中
是时候在2维中可视化数据了。
最后,让我们看看保留了多少方差,因为当我们从4维移动到2维时,会有一些数据丢失。
似乎PC1和PC2的组合方差约为95%
何时使用PCA
何时不使用PCA
收藏