采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
前面是用的梯度上升法求使得方差目标函数的最大值来计算第一主成分的,这里用的SVD,是不是和之前的方法完全不一样?
是的。计算方法完全不同。PCA有相应的数学解法,不过涉及相对比较复杂的数学知识。为了避免在这个初级课程中引入过多的数学介绍,在这个课程中,我们使用梯度上升的方法,相当于是在使用搜索的策略,求解的PCA问题:)
这个数学解是精确的吗,不像梯度法是一个最优解,就像之前有个地方也是数学解的那个?
计算机实现的数值方法都存在误差;另一方面搜索得到的解也是可以设置精度的。关键区别不在于精确与否,两种方法都能获得同样的精度。关键在于获得同一精度的性能消耗。在PCA问题上,数学解会更优。
svd指的是奇异矩阵,svd_slover应该是指定求解这个矩阵所使用的方法,后面的参数说明是按照随机的方式求解。有点类似之前的批量梯度下降和随机梯度下降! 具体的PCA要看统计学里的相关系数还有线性代数中的特征向量特征值这些东西,我终于把第七章刷完了,一度感觉看不下去了。
用scikit-learn学习主成分分析(PCA) - 刘建平Pinard - 博客园 (cnblogs.com)里面有解释
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.5k 19
3.5k 17
3.0k 15
1.6k 15
1.5k 14