最近在休假,没事儿写写总结。年龄大了,本来以前用的很熟,理解很到位的东西,现在一时半会儿却想不出来了。索性有时间做做总结,方便自己,也惠及大家~
这篇文章主要介绍PCA的训练。在百度文库、百科里看到许多相关的词条,但是有些方法细节写的并不是很清楚,如果读者需要代码实现,要走很多弯路。结合我的理解,以及在CMU的课程学习和实践,把一些细节详细记述一下。这里主要使用了矩阵的描述,其实是将很长很长的公式抽象化,而且读者看起来更容易理解。如果对矩阵描述不适应,那就先把整个文章读完,然后再按习惯的方法理解。
1、PCA想法
我在SVM那篇文章吐槽过外国人喜欢起一些高大上的名字,比如,支持向量机……这里又难免吐槽一下,主成分分析,主成分是个毛线?分析个毛线?好吧,我们是追求高B格的码农,就叫他PCA好了。可是一定要理解,PCA到底是在搞个啥。简而言之,PCA的作用在于——降维。降维是统计以及AI领域,特别是现在所谓大数据时代老生常谈的问题。PCA是产生比较早的,实现较为简单地,现在也用的颇为广泛地。另外还有ICA——独立元素分析,以及传说中得压缩感知,我会在本文最后面后话部分分析这几个方法的特点和优劣。
我们可以形象的理解PCA,可以分为三步:
1)依照数据的分布,重新建立新的正交坐标系;
2ÿ