一.数据降维(Dimensionality Reduction)
在讲PCA之前,我们先来说一说数据降维,先看看一个例子:
任务:通过美国1929-1938年各年经济数据,预测国民收入与支出
数据包括:雇主补贴、消费资料和生产资料、纯公共支出、净增库存、股息、利息、外贸平衡等十七个指标。
统计学家斯通通过一个主成分分析的数据降维的方法将十七项指标降到了三项指标。当然这三项指标并不是原来十七项指标中的三项指标,而是下图所示的三项指标,最后精确率达到了97.4%。在以前计算机还不是那么发达的年代,这无疑大大提高了运算速度,节约了大量时间和人力成本。
数据降维:是指在某些限定条件下,降低随机变量的个数,得到一组“不相关”主变量的过程。
作用:
- 减少模型分析的数据量,提升处理效率,降低计算难度
- 实现数据可视化
就拿本例来说,我们把十七项指标降为三项指标,就可以少算很多东西,提升我们的效率。同样,如果有十七项指标,我们是不可以把图形画出来的,但如果只有三项指标,我们就可以把数据可视化了。
或许这样说还是不够形象,下面再来举几个简单的例子。
数据量下降举例:2D数据降维到1D数据
一个人的身高和体重往往是有一定关系的,我们可以把这两项指标对应的点投影到一条直线上。
这时我们就可以得到一个综合因子,他既不是身高,也不是体重,但可以很好地反映它们之间的关系。
再来看一个3维数据降为2维数据的例子
这里图(a)是一个三维数据的图形,我们把它投影到一个平面上,就可以得到它降为2维数据后的图形(b)了。
再来看最后一个例子
当指标太多时,不可以将数据进行一个可视化展示,我们难以观察到其中的规律,这时我们采用数据降维的方法,将数据降低到两项指标并将其可视化,这时我们就可以观察到数据间的规律了。
可视化
此时的复合指标是综合了很多项指标得出来的。
这时我们就可以清楚地知道右上角的就属于发达国家了,因为它的各项经济指标都比较高,而左下角的可能就属于一些欠发达的国家了。这时我们就可以很好地看到数据间的规律。
二.PCA
PCA:数据降维技术中,应用最多的方法
目标:寻找k(k<n)维新数据,使它们反映事物的主要特征
核心:在信息损失尽可能少的情况下,降低数据维度
如图,在我们把二维数据降为一维数据时,我们将其投影到一条直线上,这时为了使信息损失尽可能少,那么数据投影到直线的距离就应该尽可能小。如果要把2维数据将为0维,那么数据就丢失掉了,主要特征就没了,这不是我们想看到的。
类似地,要把三维数据降为二维数据,就需要把三维数据投影到一个平面,然后为了使损失的数据尽可能少,就希望三维数据的各点到这个平面的距离尽可能小。
我们可以把这个投影的线或面理解成主成分,而各点到它们的距离可以理解成损失的信息。
说了这么多,那么如何保留主要信息呢?那就是投影后不同的数据要尽可能分得开(即不相关) 这是因为维度很高的数据是有很多的相关性的,而我们希望数据尽可能少,那我们就要保证每个维度里的数据在不同的维度之间没有太多的关系,也就可以理解成上述所说的投影后不同的数据要尽可能分得开(即不相关) 。
以鸢尾花数据集为例
通过PCA方法将4维数据降为2维数据后,我们将其可视化,这时蓝色代表一类花、橙色代表一类花、绿色代表一类花,这三个不同特征之间是分得比较开的,当已经找不到一个二维平面可以把数据分得比上图更开,这时信息就是损失得最少的。PCA的数学模型实际上是比较复杂的,想详细了解的小伙伴可以去查查资料。这里只作简单介绍。
假设我们有n维数据,每个维度的量方是不一样的,所以第一步我们要进行一个数据预处理。第二步我们得到方差后,可以根据这个方差来判断相关性的大小,方差越大,它的相关性就越小,方差越小,它的相关性就越大。所以,假设我们有n维数据,如果它的k个维度的方差是比较大的,那么我们就可以保留下来,另外n-k个维度的方差是比较小的,那么就可以将其舍弃。
当然具体实现是比较复杂的,这里是一些参考资料,大家可以去看看。
本次的分享就到这里了,thanks~~