机器学习之PCA降维

1. 前言
如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解LDA就是很有必要的了。

2. (线性判别分析)LDA
LDA的全称是Linear Discriminant Analysis(线性判别分析),是一种supervised learning。有些资料上也称为是Fisher’s Linear Discriminant,因为它被Ronald Fisher发明自1936年,Discriminant这次词我个人的理解是,一个模型,不需要去通过概率的方法来训练、预测数据,比如说各种贝叶斯方法,就需要获取数据的先验、后验概率等等。LDA是在目前机器学习、数据挖掘领域经典且热门的一个算法,据我所知,百度的商务搜索部里面就用了不少这方面的算法。
贴上我看得一个博客吧,也有关于PCA的部分,讲的比较详细,公式也很全,之后再总结,
http://www.cnblogs.com/LeftNotEasy/
1) LDA思想:
LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。什么意思呢? 我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。
这里写图片描述
2) 计算公式:
参考:
http://www.cnblogs.com/pinard/p/6244265.html
3) 算法流程:
输入:数据集D={(x1,y1),(x2,y2),…,((xm,ym))},其中任意样本xi为n维向量,yi∈{C1,C2,…,Ck},降维到的维度d。
输出:降维后的样本集 D'
    1) 计算类内散度矩阵Sw
    2) 计算类间散度矩阵Sb
    3) 计算矩阵Sw^−1Sb
    4)计算Sw^−1Sb的最大的d个特征值和对应的d个特征向量(w1,w2,…wd),得到投影矩阵
    5) 对样本集中的每一个样本特征xi,转化为新的样本zi=WTxi
    6) 得到输出样本集

3. 主成分分析(PCA)

http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020209.html (po主从最大方差和最小误差两个方面解释了PCA,并利用公式进行推导得到PCA的投影向量与原数据之间的关系) PCA的思想是将n维特征映射到k维上(k<(n))。
这k维是全新的正交特征。这k维特征称为主元,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征。
如何保证是正交呢?正交的定义是?(线性代数)
要解释为什么协方差矩阵的特征向量就是k维理想特征,我看到的有三个理论:分别是最大方差理论、最小错误理论和坐标轴相关度理论。
最大方差理论:
在信号处理中认为信号具有较大的方差,噪声有较小的方差,信噪比就是信号与噪声的方差比,越大越好。如前面的图,样本在横轴上的投影方差较大,在纵轴上的投影方差较小,那么认为纵轴上的投影是由噪声引起的。
因此我们认为,最好的k维特征是将n维样本点转换为k维后,每一维上的样本方差都很大。 假设我们选择两条不同的直线做投影,那么左右两条中哪个好呢?根据我们之前的方差最大化理论,左边的好,因为投影后的样本点之间方差最大。
这里写图片描述
投影的概念:
这里写图片描述
红色点表示样例x^((i)),蓝色点表示x^((i)) 在u上的投影,u是直线的斜率也是直线的方向向量,而且是单位向量。蓝色点是x^((i)) 在u上的投影点,离原点的距离是:<(x^((i),u)>(u^T*x^(i)))由于这些样本点(样例)的每一维特征均值都为0,因此投影到u上的样本点(只有一个到原点的距离值)的均值仍然是0。所以我们要的是最佳的u,使投影后的样本点方差最大。
为什么样本点的每一维特征值为0呢?
因为投影后的均值为0,所以方差是:
公式
理论截图
其中第j维就是x在u上的投影
通过选择最大的k个u,使方差比较小的特征比如噪声就被丢弃了。
但是下面的po主则是从拉格朗日乘法去解释最大方差的:

http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html

最大方差

http://www.cnblogs.com/pinard/p/6239403.html
PCA利用线性拟合的思路吧分布在多个维度的高位数据投射到几个轴上。如果每个样本只有数据变量,这种拟合就是a_1 x_1+a_2 x_2=P, 其中x_1 和x_2 分别是样本的连个变量,a部分是loading,P值是主成分。

4. LDA vs PCA
首先我们看看相同点:
1)两者均可以对数据进行降维。
2)两者在降维时均使用了矩阵特征分解的思想。
3)两者都假设数据符合高斯分布。

我们接着看看不同点:
1)LDA是有监督的降维方法,而PCA是无监督的降维方法
2)LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。
3)LDA除了可以用于降维,还可以用于分类。
4)LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。
5. 总结
LDA算法既可以用来降维,又可以用来分类,但是目前来说,主要还是用于降维。在我们进行图像识别图像识别相关的数据分析时,LDA是一个有力的工具。下面总结下LDA算法的优缺点。

LDA算法的主要优点有:
1)在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。
2)LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。

LDA算法的主要缺点有:
1)LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。
2)LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题。
3)LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好。
4)LDA可能过度拟合数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值