聚类和降维
聚类在别的机器学习课程中已经学过了,主要就是Kmeans那些算法,这里就跳过了,主要记录一下降维部分的内容,降维的这节课上主要讲了SVD和CUR两个算法。
SVD分解
通常来说我们在数据挖掘中遇到的算法可以表示成一个的矩阵,并且这个矩阵可以用若干个矩阵的乘积来表示,矩阵中的往往存在一些潜在的维度和因素没有被挖掘出来,而通过矩阵分解的方式我们可以挖掘出这些潜在的信息,比如下面这张图中的情况就是一个很好的例子。
SVD就是一种非常常见的降维方法,可以把一个的矩阵A分解成大小为三个矩阵的乘积,同时这里的r有多种选择,并不是唯一的,我们可以选择合适的r让矩阵的重构损失达到最小,即:
- 这时候的矩阵U称为左奇异矩阵,而V称为右奇异矩阵,中间的被称为矩阵的奇异值矩阵,并且是一个对角的矩阵
- 奇异值还有另一种写法是将矩阵分解成三个矩阵的乘积
SVD分解也存在一些缺点,比如:
- 可解释性的问题:每个奇异向量表示输入所有行列的一个线性组合,但是缺少可解释性
- 奇异值分解得到的结果比较稠密,不够稀疏,因此存储消耗比较大
CUR分解
CUR分解的目标是将矩阵分解成三个矩阵CUR的乘积,并且使得尽可能小,并且满足:
- C和R是一个大而稀疏的矩阵
- U是一个稠密的小矩阵
- 不过这一部分的内容感觉讲的不是很清楚,因此就不多深入探究了,只要知道有这么个东西就行。