xi123的个人博客分享 http://blog.sciencenet.cn/u/xi123

博文

机器学习之降维

已有 782 次阅读 2018-3-14 09:30 |个人分类:自然语言处理|系统分类:科研笔记

 1、PCA

    在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。找出数据里最主要的方面,用数据里最主要的方面来代替原始数据。假如我们的数据集是n维的,共有m个数据(x(1),x(2),...,x(m))。希望将这m个数据的维度从n维降到n'维,希望这m个n'维的数据集尽可能的代表原始数据集。我们知道数据从n维降到n'维肯定会有损失,但是我们希望损失尽可能的小。那么如何让这n'维的数据尽可能表示原来的数据呢?

    希望降维的标准为:样本点到这个超平面的距离足够近,或者说样本点在这个超平面上的投影能尽可能的分开。所以存在两种推导方式:基于最近重构性和基于最大可分性。作为一个非监督学习的降维方法,它只需要特征值分解,就可以对数据进行压缩,去噪。因此在实际场景应用很广泛。

    优点:

    (1) 仅仅需要以方差衡量信息量,不受数据集以外的因素影响。

    (2)各主成分之间正交,可消除原始数据成分间的相互影响的因素。

    (3)计算方法简单,主要运算是特征值分解,易于实现。

    缺点:

    (1)主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。

    (2)方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。



2、SVD(Singular Value Decomposition

        奇异值分解(Singular Value Decomposition,简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域,是很多机器学习算法的基石。

        SVD也是对矩阵进行分解,但和特征分解不同,SVD并不要求要分解的矩阵为方阵。对于奇异值,它跟特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。也就是说,也可以用最大的k个的奇异值和对应的左右奇异向量来近似描述矩阵。由于这个重要的性质,SVD可以用于PCA降维,来做数据压缩和去噪。也可以用于推荐算法,将用户和喜好对应的矩阵做特征分解,进而得到隐含的用户需求来做推荐。同时也可以用于NLP中的算法,比如潜在语义索引(LSI)。

        SVD与PCA的区别:

        PCA降维,需要找到样本协方差矩阵X^TX的最大的d个特征向量,然后用这最大的d个特征向量张成的矩阵来做低维投影降维。可以看出,在这个过程中需要先求出协方差矩阵X^TX,当样本数多样本特征数也多的时候,这个计算量是很大的。

        SVD也可以得到协方差矩阵X^TX最大的d个特征向量张成的矩阵,但是SVD有个好处,有一些SVD的实现算法可以不求先求出协方差矩阵X^TX,也能求出我们的右奇异矩阵V。也就是说,PCA算法可以不用做特征分解,而是做SVD来完成。这个方法在样本量很大的时候很有效。

        PCA仅仅使用了SVD的右奇异矩阵,没有使用左奇异矩阵,左奇异矩阵可以用于行数的压缩。相对的,右奇异矩阵可以用于列数即特征维度的压缩,也就是PCA降维。  

        SVD作为一个很基本的算法,在很多机器学习算法中都有它的身影,特别是在现在的大数据时代,由于SVD可以实现并行化,因此更是大展身手。SVD的原理不难,只要有基本的线性代数知识就可以理解,实现也很简单因此值得仔细的研究。当然,SVD的缺点是分解出的矩阵解释性往往不强,有点黑盒子的味道,不过这不影响它的使用。




http://blog.sciencenet.cn/blog-3360373-1103812.html

上一篇:机器学习之特征选择
下一篇:社会网络分析简介

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2018-9-20 15:02

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部