无监督学习方法中的聚类,我们在前几篇已经介绍过了,下面会介绍无监督学习的另一种手段——降维。
首先我们要了解,为什么需要降维?
我们的数据集可以看做是一个大矩阵,有时候,样本的特征数会很多。换句话说,这个矩阵的列很多。那么有些特征就是冗余的,它们对模型基本起不到什么作用。因此,我们需要用降维来减少训练数据集的特征。一是减少预算量,二是为了更方便的拟合模型。
那么降维的方法也有很多种,今天先来看第一种——奇异值分解(Singular ValueDecomposition,SVD)。
可对角化矩阵
我们说一个矩阵A是可对角化的,是指存在一个可逆矩阵P,使得
是一个对角矩阵。其中A必须是一个方阵。
但在大多数情况下,我们所得到的数据并不都是可对角化的矩阵。如果要求数据集是方阵,那就意味着样本的数量和样本的特征值要相等,而在大多数情况下,这是不可能实现的。
因此,对于这种更为常见的非可对角化矩阵,我们就需要用奇异值分解的方法来完成。
奇异值分解
设A是一个m*n的矩阵,矩阵的秩是k,那么可以将A分解为
其中,U是m*m方阵,Σ是m*n的对角矩阵,V是n*n方阵。并且U和V都是正交矩阵。因此,我们可以得出
其中,I是单位矩阵。又因为
可推出
同理,我们可以得到
注意到
都是方阵,它们的维数分别对应U和V的维数。我们还知道
与上面的公式对比,可得出
1.矩阵U由矩阵AA[T]的特征向量所组成
2.矩阵V有矩阵A[T]A的特征向量所组成
3.矩阵Σ中的对角元素是矩阵AA[T]的特征值的开平方
因此,任意给出一个矩阵之后,我们都能将其进行奇异值分解了。
领取专属 10元无门槛券
私享最新 技术干货