之前写的一篇博文里面介绍了PCA这个数据降维的方法,今天另一个降维方法SVD将隆重登场。本打算在写完分类算法之后再写SVD的相关博文,碰巧今天早上刷今日头条的时候看到了腾讯的微票儿平台用的特征工程算法竟然就有SVD(另一个是卷积神经网络CNN),再加上之前就发现SVD在推荐系统中很受欢迎,那今天就简单介绍下这个工业界特征过程的宠儿-----SVD。
SVD是Singular Value Decomposition的缩写,是去除冗余、信息提取和数据约简的强大工具。
若A为p*q实数矩阵,则存在p阶正交矩阵U和q阶正交矩阵V,使得
A=U∧V '
上式就是奇异值分解,其中p*q矩阵∧ 中,(i,i)元素 λi>=0, i=1,2,3,...min(p,q),其他元素均为0,那么正数 λi 称为A的奇异值 。都说奇异值分解能去除冗余,冗余能体现出来吗?由于在第r个奇异值之后,λi 都为0,这说明数据集仅有r个重要特征,其它特征都是冗余。
同样是对角元素,奇异值和特征值是有关系的,实际上,奇异值是矩阵AA'特征值的平方根 。它们都 是数据集重要特征的体现。