主成分分析:技术概述

邮寄人

上周,我们在博客上讨论了BigML的新功能beplay2网页登陆主成分分析(PCA)特色在这篇文章中,我们将继续讨论这个主题,讨论PCA的一些数学基础,并揭示BigML实现的一些技术细节。beplay2网页登陆

几何解释

让我们再次访问我们的老朋友iris数据集。为了简化可视化,我们只看它的两个变量:花瓣长度和萼片长度。现在想象一下,我们在这个二维空间中取一条直线,求这条直线与数据集中每个点之间的垂直距离之和。当我们围绕数据集的中心旋转这条线时,该和的值会发生变化。您可以在以下动画中看到此过程。

我们在这里看到的是,当线条与数据集最“伸展”的方向对齐时,此总和的值达到最小值。我们将指向此方向的向量称为数据集的第一个“主分量”。它绘制在下图的左侧,因此您不必在动画中看到它时感到眩晕。

主成分的数量等于数据集的维数,那么我们如何为2D虹膜数据找到第二个主成分呢?我们需要首先消除第一个因素的影响。从每个数据点,我们将减去其沿第一主分量的投影。因为这是最后一个主分量,所有的点都在一条直线上,所以我们不需要旋转另一个向量。这是下图右侧显示的结果。

主成分分析

主成分的重要性通常通过其“解释方差”来衡量。我们的示例数据集的总方差为3.80197。减去第一个主成分后,总方差减小到0.14007。因此,PC1的解释差异为:

\分形{3.80197-0.14007}{3.80197}\约0.96315

这个过程可以推广到更高维度的数据。例如,从一个三维点云开始,减去第一个主分量,得到平面中的所有点,然后找到第二个和第三个分量的过程与我们刚才讨论的相同。然而,即使是中等数量的维度,这个过程也变得非常难以可视化,因此我们需要求助于一些线性代数工具。

协方差分解

给定一组数据点,我们可以计算其协方差矩阵. 这是数据集中每个变量如何单独变化以及如何与其他变量一起变化的量化。我们的2D iris数据集具有以下协方差矩阵:

\Sigma=\begin{bmatrix}3.11628&1.27432\\1.27432&0.68569\end{bmatrix}

这里,萼片长度和花瓣长度分别是第一和第二个变量。主对角线上的数字是它们的方差。萼片长度的方差是花瓣长度的几倍,我们在绘制数据点时也可以看到这一点。非对角线上的值是两个变量之间的协方差。此处的正值表示它们正相关。

一旦我们有了协方差矩阵,我们就可以对它进行特征分解,以获得特征向量和特征值的集合。

\mathbf{e}_1=[0.91928,0.39361]\qquad\lambda_1=3.66189

\mathbf{e}_2=[0.39361,-0.91928]\qquad\lambda_2=0.14007

我们现在可以做一些观察。首先,特征向量基本上与我们使用重复直线拟合发现的主分量方向相同。其次,特征值等于相应分量的解释方差量。由于协方差矩阵可以为任意数量的维度构造,我们现在有了一种可以应用于我们希望分析的任何大小问题的方法.

缺失值

当我们超越像iris这样的玩具数据集领域时,我们遇到的挑战之一是如何处理缺失值,因为协方差矩阵的计算不允许这些。一种策略是简单地删除数据集中包含缺失数据的所有行。但是,由于缺失值的比例很高,这可能会导致无法接受的数据丢失。相反,BigML的实现使用了描述的无偏估计beplay2网页登陆在这里. 首先,我们通过将所有缺失值替换为0并将协方差矩阵计算为正常值,形成一个简单的估计。称之为估算\tilde{\Sigma},并让\mathrm{diag}(\tilde{\Sigma})与非对角元素设置为0的矩阵相同。我们还需要计算一个参数\三角洲,其中值的比例未缺失。这很容易从数据集的字段摘要中得出。无偏估计值计算如下:

\Sigma^{(\delta)}=(\delta^{-1}-\delta^{-2})\mathrm{diag}(\tilde{\Sigma})+\delta^{-1}\tilde{\Sigma}

使用示例数据,我们随机删除100个值。因为我们有150个二维数据点,所以\δ=2/3. 原始和修正的缺失值协方差矩阵估计值为:

\tilde{\Sigma}=\begin{bmatrix}2.25964&0.51222\\0.51222&0.44881\end{bmatrix}\qquad\Sigma^{(\delta}=\begin{bmatrix}3.38946&1.15251\\1.15251&0.67322\end{bmatrix}

校正后的协方差矩阵显然更接近“真”值。

非数值变量

PCA通常只应用于数字数据,但BigML的实现结合了一些额外的技术,允许分析包含其他数据类型的数据集。beplay2网页登陆对于文本和项目字段,我们将它们分解为多个数字字段,在标记云中每个项目一个,其中的值是术语计数。

范畴字段稍微复杂一些。BigML使用了一对称为多重对应分析(MCA)和因子分析混合数据(FAMbeplay2网页登陆D)的方法。每个字段都扩展为多个0/1值字段y\u 1\l您知道吗,每个分类值一个。如果P是每个此类字段的平均值,然后我们使用以下两个表达式之一计算移位和缩放值:

x{MCA}=\frac{y-p}{J\sqrt{Jp}\qquad x{FAMD}=\frac{y-p}{\sqrt{p}

如果数据集完全由分类字段组成,则使用第一个等式,并且J是字段的总数。否则,我们将使用一个混合数据类型数据集,并使用第二个等式。应用这些变换后,我们将数据输入到我们常用的PCA解算器中。

我们希望这篇文章能对主成分分析的技术细节有所启发,并突出BigML带来的独特技术特性。要使你新发现的理解发挥作用,请前往beplay2网页登陆beplay2网页登陆BigML仪表板并开始运行一些分析!

想了解更多关于PCA的信息吗?

如需更多问题和阅读,请访问发布页面并参加关于2018年12月20日,星期四. 出席是免费的,但空间有限,所以尽快注册!

留话

在下面填写详细信息或单击图标登录:

掘墓人
WordPress.com徽标

您正在使用WordPress.com帐户进行评论。(注销/改变)

谷歌照片

您正在使用您的Google帐户进行评论。(注销/改变)

推特图片

您正在使用您的Twitter帐户发表评论。(注销/改变)

Facebook照片

您正在使用您的Facebook帐户发表评论。(注销/改变)

正在连接到%s