PCA或SVD在机器学习中的重要性
data-mining
machine-learning
5
0

一直以来(特别是在Netflix竞赛中),我总是遇到这个博客(或排行榜论坛),他们提到在数据上应用简单的SVD步骤如何帮助他们减少数据稀疏性,或者总体上提高了算法的性能。手。我一直在想(很久以来),但我无法猜测为什么会这样。总的来说,我手头的数据非常嘈杂(这也是bigdata的有趣部分),然后我确实知道一些基本的功能扩展内容,例如对数转换内容,均值归一化。但是,像SVD这样的东西有什么帮助。因此,假设我有一个庞大的用户评分电影矩阵。然后在此矩阵中,我实现了某些版本的推荐系统(例如协作过滤):

1) Without SVD
2) With SVD

有什么帮助吗谢谢

参考资料:
Stack Overflow
收藏
评论
共 3 个回答
高赞 时间 活跃

当PCA或SVD用于减少尺寸时,减少输入的数量。除了节省学习和/或预测的计算成本之外,这有时还可以生成更健壮的模型,这些模型在统计意义上不是最佳的,但是在嘈杂的条件下具有更好的性能。

在数学上,较简单的模型具有较小的方差,即,它们不太容易过度拟合。当然,装备不足也是一个问题。这被称为偏差方差难题。或者,正如爱因斯坦用简单的话说的:事情应该尽可能简单,而不是简单。

收藏
评论

SVD不用于规范化数据,而是用于消除冗余数据,即用于降维。例如,如果您有两个变量,一个是湿度指数,另一个是下雨的概率,那么它们之间的相关性是如此之高,以至于第二个变量对分类或回归任务没有任何帮助。 SVD中的特征值可帮助您确定哪些变量最能提供信息,以及哪些变量可以不提供。

它的工作方式很简单。您对训练数据执行SVD(称为矩阵A),以获得U,S和V *。然后将所有小于某个任意阈值(例如0.1)的S值设置为零,将此新矩阵称为S'。然后获得A'= US'V *并将A'用作新的训练数据。现在,您的某些功能已设置为零,并且可以删除,有时不会造成任何性能损失(取决于您的数据和所选的阈值)。这称为k截断的SVD。

SVD并不能帮助您实现稀疏性,而只能在功能冗余时帮助您。对于预测任务,两个功能可能既稀疏又具有信息性(相关性),因此您不能删除其中一个。

使用SVD,您可以从n个特征转到k个特征,其中每个特征都是原始n个的线性组合。就像特征选择一样,这是降维步骤。但是,当存在冗余特征时,取决于您的数据集(例如,最大熵特征选择),特征选择算法可能会比SVD带来更好的分类性能。 Weka附带了一堆。

请参阅: http//zh.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Dimensionality_Reduction/Singular_Value_Decomposition

https://stats.stackexchange.com/questions/33142/what-happens-when-you-apply-svd-to-a-collaborative-filtering-problem-what-is-th

收藏
评论

奇异值分解通常用于通过低秩矩阵X_lr近似矩阵X

  1. 计算SVD X = UDV^T
  2. 通过保持k最大的奇异值并将其他值设置为零来形成矩阵D'
  3. 通过X_lr = UD' V^T形成矩阵X_lr

基质X_lr然后秩的最佳近似k矩阵X ,用于Frobenius范数 (相当于所述的l2范数为矩阵)。使用此表示形式在计算上是有效的,因为如果矩阵Xnnk << n ,则可以仅使用(2n + 1)k系数(通过存储UD'V )来存储其低阶近似。 。

这通常用于矩阵完成问题(例如协作过滤),因为用户评分的真实矩阵被假定为低等级(或被低等级矩阵很好地近似)。因此,您希望通过计算数据矩阵的最佳低秩近似来恢复真实矩阵。但是,现在有更好的方法可以从嘈杂和丢失的观测值中恢复低秩矩阵,即最小化核规范。例如,参见E. Candes和T. Tao的论文《凸松弛的力量:近似最佳矩阵完成》

(注意:从该技术派生的算法也存储了估计矩阵的SVD,但计算方式有所不同)。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号