TSVD截断奇异值分解

TSVD经常被用在特征提取和病态问题的解决上。

从某种程度上来说,PCA和SVD是一对表亲,PCA对特征的协方差矩阵进行分解,找到一堆特征的线性组合,尽可能多的表示出原始特征中成分,SVD则对原始数据直接进行奇异值分解,找到原始数据中尽可能大的特征值,以这些特征值多对应的特征向量作为新的特征。对于病态矩阵,目前主要的处理办法有预调节矩阵方法、区域分解法、正则化方法等,截断奇异值分解技术TSVD就是一种正则化方法,它牺牲部分精度换去解的稳定性,使得结果具有更高的泛化能力。

对于原始数据矩阵A(N*M) ,N代表样本个数,M代表维度,对其进行SVD分解:

TSVD截断奇异值分解_第1张图片

上式中的delta就是数据的奇异值,且delta(1)>delta(2)>delta(3)...,通常如果A非常病态,delta的后面就越趋向于0,delta(1)/delta(n)就是数据的病态程度,越大说明病态程度越高,无用的特征越多,通常会截取前p个最大的奇异值,相应的U截取前p列,V截取前p列,这样A依然是N*M的矩阵,用这样的计算出来的A代替原始的A,就会比原始的A更稳定。

那么,提取的出的特征在哪里呢?delta(i)*U(:,i)*V(i,:)就是我们最终得到的第i重要的一个特征。

截断参数p的选取是TSVD方法的一个难点,确定何时开始舍弃小奇异值得贡献,统计学领域中该技术被称为主成分分析,本文在后面的数值计算中采用L曲线法求得p



你可能感兴趣的:(机器学习)