关于特征提取和PCA VS LDA(linear Discriminant Analysis)(一)
(2015-05-24 12:57:25) 标签: 机器学习特征选择lineardiscriministic | 分类: 计算机技术 |
周六日看了两个很不错的营养贴,其一曰:
linear Discriminant Analysis Bit by Bit
http://sebastianraschka.com/Articles/2014_python_lda.html
其二曰:Discover Feature Engineering, How to Engineer Features and How to Get Good at It
http://machinelearningmastery.com/discover-feature-engineering-how-to-engineer-features-and-how-to-get-good-at-it/
现在做一下总结:
(一) linear Discriminant Analysis Bit by Bit
比较了下两种降维方法 lda和PCA,作者认为LDA可能要更好一点,因为PCA降维的依据是:对整个数据集(假设每个样本用n个特征表示)中相互垂直的n个方向(这个方向由特征向量指定)依据其对应的特征值进行排序,其直观理解是,这批样本在n个方向上方差大小不同,找出最大的若干方差所对应的特征向量,然后以这几个特征向量所组成的子空间作为新样本空间,将原来样本都透射到这个子空间去。
而LDA所使用的方法是先计算出类内散点矩阵和类间散点矩阵:
之后找出矩阵A的TOPnT特征值对应的特征向量,组成矩阵W,将原样本-特征矩阵X与新矩阵W相乘,得到X矩阵在新的子空间投影,也即降维后的样本-特征矩阵
下图是降维后各样本点的散点图,X轴是最大特征值对应的特征向量方向,Y轴是次大特征值对应的特征向量方向,从中可以看出X轴对各类样本点的区分相当好,而Y轴就要差很多。
使用PCA和LDA同时对样本集合X进行降维,都降至2维,得到的散点图如下:
可以看出,对于PCA降维后的样本散点图来说,其整体样本沿着X轴的方差最大,而沿着Y轴的方差次大。
而从LDA图可以看出,X轴方向对各类样本的区分度最好,而Y轴对各类样本的区分度次好。
所以可以看出,如果仅仅用于分类的话,LDA降维的效果要比PCA好一些。PCA更适合于解释样本在不同方向上的变化幅度大小。
我认为这篇帖子中,最值得一提的是作者对使用PCA的一些心得,比如如果特征值的分布很平均,那么我用PCA无济于事。
此外,他还提到LDA方法假设的几个前提:
(1)
(2)
(3)
不过作者又讲到,这些假设只是将LDA用于分类器时候适用的条件,如果LDA用于降维的话,即使这些条件不满足,跑出来的结果也足够好。