-->

机器学习40讲_14_13_线性降维主成分的使用

你好,我是王天一。

今天我和你分享的主题是线性降维主成分的使用。

在前一篇文章当中呢,我以领回归和leasa为例,介绍了线性回归的正则划出。

这两种方法呢它都属于收缩方法,它们能够让线性回归的系数产生一个连续的变化。

但是和岭回顾于不同的是什么呢?Lasso可以将一部分属性的系数给它收缩为零,也就是这个系数不存在。

事实上,这就可以起到属性筛选的一个作用和leassoso这种间接去除属性收缩方法相对应的呢是维度规约,维度规约。

这个词儿听起来啊你可能感觉到很高大上。

这个名称呢是数据挖掘当中常用的术语。

那它还有一个更接地气儿的同义词就是降维。

降维什么意思呢?就是直接的降低输入属性的数目。

通过这个来削减数据的维度,对于数据维度的探讨呢,起源于这个维数灾难啊这样一个说法。

这概念呢是由数学家啊richard bellman在动态优化问题的研究当中提出的。

那么发表在i triple e的模式分析与机器智能会刊第一卷第三期的有一篇论文叫维度问题。

一个简单实例,这篇论文呢就在数学上证明了当所有的参数都已知的时候。

这时属性维度的增加呢,可以让分类问题的错误率渐渐的为零,也就是我的数据越多,我这个分类的准确度就越高,最终呢会收敛到零。

但是当未知的参数啊只能根据数量有限的样本来估计的时候,也就参数本身也是未知量的时候。

这个时候呢属性维度的增加会让错误率先降低再升高。

最终呢统一的收敛到零点五,也就是一半一半的这个水平,相当于瞎猜。

这就像一军谋士啊,七嘴八舌的在支招当领导。

如果要对每个人的意见都深入考虑啊,再来拍板的话,那这样的决策也就没什么准确性可言了。

维数灾难,它深层次的原因在于数据样本的有限。

当属性的维度增加的时候,那每个属性每个可能的取值,它的组合就会与指数的形式来增长。

比方说啊我们假定每一个属性它都是二值的属性,要么取零,要么取一。

这时候呢两个属性,它所有可能的取值总共有四种。

在此基础上,我每加一个属性,那么可能的组合数目就会翻番儿。

三个属性对应着八种组合,四个属性呢对应着十六种的组合。

那么一般的经验法则是啊,在每个属性的维度上啊,我至少需要有五个数据样本和每一个不同的取值对应。

也就是说等于零。

那我有五个样本啊,等于一我有五个样本。

当这个属性维度增加,但是样本数目不变的话,这时候呢分配给每个属性的这个样本过少。

这些过少的数据呢就不足以体现出属性背后的一个趋势,这就会导致什么呢?过拟合的发生。

当然了,这也只是维数灾难的一种解释方式。

另外一种解释方式呢,它来源于几何角度的这个数据的稀疏性。

那在这儿呢,我们暂且按下不表啊,后面会有相应的介绍。

要在数据有限的前提之下来解决这个维数灾难的话啊,那化繁为简的降维就是必经之路。

降维的对象呢通常是那些食之无味啊弃之可惜的鸡肋属性。

食之无味呢是因为他们获者和结果的相关性不强,起不到什么作用,或者呢和其他的属性之间有较强的关联,两个起的是同一个作用。

使用这样的属性呢,没有多大必要,弃之可惜,则是因为他们终究还包含着一些独有的信息啊,没有说哪个属性是完全没用,一点儿没用。

就这么断舍离的话呢,又会有些这个心又不甘。

如果像亚历山大剑斩戈尔迪之杰一样啊,直接的把鸡肋属性全部都砍掉。

这种简单粗暴的做法就是特征选择。

相比之下,另一种更加稳妥的方法呢是破旧立新,将所有原始属性的信息一点不浪费的整合到脱胎换骨的新属性当中。

这对应的就是特征提取的方法,无论是特征选择还是特征提取,在人工智能基础课当中啊都有相应的介绍。

那今天呢我来换个角度,从刚刚介绍过的领回归说起。

假定这个数据集当中有大n个样本啊,每个样本中都有小p的属性啊。

那么数据矩阵x我把它写成一个矩阵的话,它的维度就是n乘以b啊,也就是大n行小小b列这样的一个矩。

将这个数据进行中心化的处理之后啊,也就是减去每一个属性的平均值之后,我再对这个x进行奇异值分解转就可以得到什么呢?这个x就等于大u乘以大d啊,再乘以一个大v的转制。

这里面的UDV呢都是矩阵,其中呢u是大n乘以小p为啊这样的正交矩阵,那么v呢是小p乘以小PV啊,这样的正交矩阵啊,无论是u还是v它们所有的列向量啊都可以张成一个子空间,它们的列向量各是一个子空间的一组基式。

中间那个矩阵d它是一个对角矩阵,对角线上的元素是什么呢?是数据矩阵x啊,从大到小顺序排列的奇异值DJ,也就是我这个对角矩阵当中对角线上的每一个元素都是原始数据矩阵的一个奇异值。

那么第一行呢是最大的一个起止,最后一行是最小的一个起止,那么可以证明的是什么呢?那么点击文稿啊,你可以看到领回归所求出来的这个最优系数。

并且呢看到将这个大x的奇异值分解带入到零回归的预测输出当中所得到的结果。

看了这个公式,你就会发现免回归计算出来的结果是什么呢?就是将训练数据的输出y大我的训练数据是大x啊,那么它有相应的输出y就是把这个y投影到啊以矩阵u的这个列向量啊,为正交基的这个子空间之上啊,所得到的这个坐标。

当然了,除了空间的变换之外,领回归它的收缩特性啊,也有体现。

当正则化的参数拉姆达一定的时候,这个奇异值DJ如果越小的话,那么它所对应的坐标就会被衰减的越厉害。

除了经历不同的收缩之外啊,这个奇异值DJ还具有什么意义呢?当然还有其他的一DJ的平方,它可以写成对角矩阵大d的平方。

那么利用奇异值分解又可以推导出大d的平方和数据矩阵x之间的关系。

点击文档啊,你可以看到相关的表达式。

这个表达式是什么呢?实际上就是矩阵的特征。

分解等式左侧的表达式是数据的斜方差矩阵,我乘以一个维度大n那么这里面的v它的每一列VJ都是斜方差矩阵的特征向量。

第一平方啊,这个矩阵当中每一个对角的元素DJ的平方就是和这个VJ所对应的特征值。

如果你对主成分分析还有印象的话,那就不难发现。

其实每一个大x乘以VG啊都代表了一个主成分。

那么在第这个主成分上,数据的方差是多少呢?就是DJ的平方除以大n说到这里啊,就能够看出领回归的作用。

领回归它在收缩这个系数的时候,收缩的对象实际上并不是每个单独的属性,而是由属性的线性组合所计算出来的,互不相关的主成分。

主成分上数据的方差越小,那么它的系数收缩的就越明显。

数据如果在一个主成分上波动较大的话,那说明这个主成分的取值对数据具有较高的区分度。

我能把这个数据进行清晰的区分。

这也就是上一季当中我所提到的这个最大的方差原理。

嗯,反过来呢,数据如果在另一个主成分上方差就小,那就说明不同数据的取值比较集中。

这些聚成一团儿的数据显然呢是不容易区分的。

领回归,他就是通过削弱方差较小的主成分,保留方差较大的主成分,从而呢起到简化模型实现正则化的目的。

哎,看到这儿你可能就想到既然主成分都已经算出来了,那与其用领回归,我再兜一个圈子,莫不如直接使用它们作为自变量来计算陷阱违规的技术。

这种思路呢得到的就是主成分回归。

主成分回归呢,它是以每个主成分CJ等于大x乘以VJ作为输入来计算回归的参数。

由于不同的主成分之间呢,它们是两两正交的。

所以说这个看似多元线性回归的问题,实际上呢是多个独立的简单线性回归的组合。

每一个简单线性回归之间是没有关系的。

我只要重复的计算出若干组不同的系数就可以。

那么点击文稿,你可以看到每个主成分的权重系数,它相应的一个表达式。

这里需要注意的一点呢,是这里面的输入结果啊和数据矩阵的每一列都要做一个去均值的处理。

所以主成分回归它的常数项就是所有数据输出结果的一个均值。

当主成分回归当中使用的这个主成分的数目,如果等于数据的属性数目小p的时候,这时主成分回归和领回归的结果是一致的啊,两个是一样。

可是如果说我放弃方差最小的那若干个主成分作用不大的这些主成分啊,这些分量我压根就不要了。

这时候得到的就是约化的回归结果走这种约化结果呢更加清晰的体现出了主成分分析的一个思想。

主成分分析呢它是典型的特征提取方法,它和前面收缩方法的本质区别在于将原始的贡献性特征转化为人为生成的正交特征,从而呢带来了数据维度的约界,还有数据压缩的可能性。

那么数字图像处理当中的特征脸方法就是主成分回归最典型的应用之一。

所谓的特征脸呢实际上就是用于人脸识别的主成分,用特征点方法处理的人脸图像,它都具有相同的空间维度。

啊,我们一般都设定啊,它输入图像的这个长和宽是一样,假定图像的像素数目都是一百乘以一百啊,那每一个像素点都是一个属性啊,它的灰度值是属性值。

这时候呢数字图像就变成了一万维这样高维空间当中的一个点。

可是呢一般数字图像这个慢变的特性啊,它的低频特性决定了这一万个特征之间它具有很强的关联。

要直接处理的话,不光是运算量较大,还未必有好的效果,可以说是事倍功半。

但是引入主成分分析之后啊,这个情况就不一样。

主成分分析它可以将一万个相互关联的像素维度提炼,成为啊大约一百到一百五十个啊这个数量级的特征脸,再用这些特征脸来重构出相同形状的人脸图像。

那么点击文档,你可以看到真实计算出来的一组特征脸的图像。

如果说你是晚上一个人在家里玩手机的话啊,那那这一组惊悚的特征点就可能让你吓得不轻。

但是如果你能想明白一个问题啊,这些呢只是一组被打成正方形的一万多维的相互正交的主成分。

只不过这些主成分原始的图像,让他们碰巧具有了这个类似于人脸的这个轮廓。

那么这些人不人鬼不鬼的东西啊,可能就没有那么恐怖。

这些主成分呢可以用来分解任意一张面孔,也可以用来计算我自己的一个一寸照片的这个相应的系数。

当然在这个重建过程当中呢,误差是不可避免。

前面对于主成分分析的解释呢,都是从降维的角度出发啊,那么换个角度,从概率角度来说,主成分分析可以看成是对高斯演变量的一个概率描述。

所谓演变量,指的是不能直接观测,但是可以间接推断这样的变量。

虽然数据本身啊处在高维的空间之中,但是决定它变化特点的可能只是有限个参数。

那么这些幕后的操纵者就是演变量,寻找演变量的过程,也就是对数据进行降维的过程。

那么概率组成分分析体现的就是高斯形式的观测结果和高斯演变量之间线性的相关关系,它呢是因子分析的一个特例概率主成分分析它的数学推导啊,因为涉及到概率了,比较复杂。

在这呢我就直接给出结论。

假定说一组数据的观测值啊构成了大低维的向量x另外一组演变量构成了大q维的向量z.那么两者之间的关系呢就可以表示成为x等于WZ加上缪加上ep系统。

这里面呢关联矩阵w是由标准正交机所构成的矩阵非零向量MO表示着观测值的均值啊,这说明WZ也经历了这个去均值化的处理。

那么EFC呢则是服从标准多维正态分布的一个各项同性的噪声,它在每个维度上方差是一样。

如果说我假设隐变量大z啊具有多元标准,正态形式的鲜暗分布。

那么点击文稿,你就可以看到去均值之后观测数据大x的对数似然概率。

根据这个表达式呢可以求出让似然概率,取到最大值的参数。

根据这些个参数又可以计算出超参数的最大自然估计值。

这说明噪声方差它就是所有被丢弃掉的主成分,方差的均值。

这些被放弃的主成分共同以噪声的形式体现出来。

而当这个移步系统趋近于零的时候,概率主成分分析所计算出来的线性系数w就会退化为经典的主成分分析当中的v除了自然概率之外,根据正态分布的性质啊,也可以计算出演变量的后延概率后验概率,它同样满足正态分布。

当这个一b自用趋近于零的数演变量的最优值就会收敛成为经典主成分。

这说明我们从概率角度啊和从这个频率角度得到的结果实际上是一致。

在实际问题当中呢,使用的主成分的数目是个超参数。

那我到底使用多少个主成分呢?啊,这个呢需要通过模型选择来确定。

而概率主人分分析呢,他对于测试数据的处理,他就可以完成模型选择的任务。

啊,从重构误差的角度出发,经典主成分分析一般会让被选中的主成分的特征值之和占所有特征值之和的百分之九十五以上,也就是主成分所对应的方差啊,占据到整个数据的方差的百分之九十五以上。

在贝叶斯的框架之下,计算最优的主成分数目,需要对所有未知的参数,还有超参数进行积分。

这个过程呢是非常复杂,在这儿呢就不讨论它和其他的演变量模型一样,大概率组成分分析也是一个生成模型。

那么点击文稿,你可以看到它生成机制的图解,还有说明。

嗯,在SK loan当中呢,主成分分析它所对应的类是PCA啊,它处于decomversition的这个模块当中,还是英超数据集为例。

对于多元线性回归的这个数据进行主成分分析,可以计算出四个组成分的方差,以及呢他们占据总方差的一个比例。

从结果当中可以看出啊,方差最大的主成分占了将近百分之八十的方差。

而前两个主成分的方差之和呢比例则超过了百分之九十。

在对数据进行降维的时候啊,如果将方差的比例阈值设定为百分之九十五的话,保留的主成分数目。

这时候就是两个为了对主成分分析之后的数据分布呢产生更加直观的认识啊,我们可以将变换后的数据点显示在低维空间当中啊,以观察他们的集中程度。

那么出于观察方面的考虑,在可视化的时候呢,我只选择了方差最大的两个主成分。

虽然说这样做会造成比较大的误差,但是变换后的数据就可以在平面直角坐标系当中显示出来。

答,点击文稿。

你可以看到这个图示可以看出,经过变换后的数据点依然分散在整个二a平面之上。

但是根据他们在横轴,也就是第一个主轴位量的取值啊,已经可以近似的将数据划分成两个类别。

那么这其中的原因呢很可能在于说篮线两侧的数据啊代表了两种类型的这个球队风格,就像来自于两个高斯分布的随机数,也就对应了两种不同的数据生成的方式。

今天,我和你分享了从顶回归到主成分回归的推导过程,以及作为降维方法和特征提取技术的主成分分析,包括着以下四个要点,第一,在有限数据集下,数据维度过高会导致维数灾难。

第二,降维的方法包括特征选择和特征提取。

第三,主成分分析将原始的贡献性特征转化为新的正交特征,从而实现特征提取。

第四概率组成分分析是因子分析的,一种是数据的生成模型。

在机器学习当中啊,还有一种和主成分分析名字相似的方法叫做独立成分分析。

那么这两者之间到底有什么区别和联系呢?你可以查阅相关资料加以了解,并在这里分享你的理解。