一、目标
1.数据压缩
在机器学习中,会用到大量数据进行学习训练,当数据量很大,维度高时,对电脑内存的压力会很大,并且学习的速度也会很慢。
2.可视化
我们将一些高维的数据降维到1维,2维,3维的话,就可以进行可视化,将数据以图表的方式展示出来。
二、主成分分析方法
主成分分析方法(Principal Component Analysis (PCA))是目前比较流行的进行降维的算法。
1.主要思想:
找一个向量,使得所有数据点到这个向量的距离(投影误差)最小。
2.线性回归与PCA的区别
两者的区别就在于,线性回归是求数据点对其对应在函数上的点之间的误差,是点与点之间的距离;而PCA是求点到直线的距离
三、预处理
在使用PCA之前要先进行预处理-----均值标准化
这个均值化和特征缩放类似,都是为了让所有数据都在一个较小范围内。
求得的u是每一个数据的所有特征的平均值,然后,如果不同的特征之间差的比较大的话,可以将上式改写为(s_j是x_j的标准差)
四、PCA计算过程
1.求该矩阵的协方差
2.用[U,S,V]=svd(sigma)对上式结果奇异值分解
3.我们得到的U是n*n的矩阵(n是向量x^i的维度),我们想要降维到k维的向量上,那么就取U的前k列向量。
4. ,为k*n维,求得的z就是最终结果。
注:奇异值分解还在学习中,所以无法给出解释,还是个小菜鸡
五、k的选择
k不能随意选择,否则误差会很大。
1.通常我们用下式进行判断
当其小于0.01的时候我们认为这个k值是可以使用的,当然这个0.01不是绝对的,也可以是0.05,0.1等等,是根据个人而定。x_approx(是z通过压缩重现得到的x的近似值,z_approx=U_reduce*z)
2.也可以使用[U,S,V]=svd(sigma)
最近开通了一个公众号,里面会分享一些机器学习,深度学习,推荐系统的学习笔记和相关知识,同时也会分享一些面经,感兴趣的小伙伴可以关注一下,十分感谢,比心