【问题标题】:importance of PCA or SVD in machine learningPCA 或 SVD 在机器学习中的重要性
【发布时间】:2012-03-24 07:26:29
【问题描述】:

一直以来(特别是在 Netflix 比赛中),我总是看到这个博客(或排行榜论坛),他们提到如何通过对数据应用简单的 SVD 步骤帮助他们减少数据的稀疏性或总体上提高了他们的算法在手。 我试图思考(很久以来),但我无法猜测为什么会这样。 一般来说,我手头的数据非常嘈杂(这也是大数据的有趣部分),然后我知道一些基本的特征缩放的东西,比如对数转换的东西,平均归一化。 但是像 SVD 这样的东西有什么帮助。 所以假设我有一个巨大的用户评分电影矩阵......然后在这个矩阵中,我实现了一些版本的推荐系统(比如协同过滤):

1) Without SVD
2) With SVD

它有什么帮助

【问题讨论】:

  • “性能”是指速度还是准确度?
  • @larsmans 嗨.. 我的意思是准确度

标签: machine-learning svd


【解决方案1】:

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

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

虽然 SVD 无法帮助您解决稀疏问题,但仅在功能冗余时才可以帮助您。对于预测任务,两个特征可能既稀疏又信息丰富(相关),因此您不能删除任何一个。

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

见:http://en.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

【讨论】:

  • 虽然 SVD 确实可以降维,但正如您所描述的那样,它并不是真正的特征选择步骤。我相信它更常用于加速训练算法。
  • @larsmans:你能解释一下吗?就像它有什么帮助一样。我的意思是在 netflix 中,一般来说,数据总是稀疏的(维度的诅咒),但是运行 SVD 有什么帮助呢?
  • @larsmans:我不认为它是用来加速学习阶段的,正如你所描述的那样。它确实用于特征选择。
  • Andrew Ng 在他的在线ML class 中将其描述为一种加速措施。
  • 这不是特征选择,因为从 nk 特征的 SVD 不一定会给你一个大小为 k 的子集i> 个原始 n 个特征。加速点很明显:如果必须使用复杂度与特征数量呈线性关系的优化例程来拟合分类器(大多数情况都是如此),那么较少数量的特征会带来加速;假设您可以快速计算 SVD。此外,@Edouard 的回答似乎更重要。协同过滤。
【解决方案2】:

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

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

对于Frobenius norm,矩阵X_lr 是矩阵X 的秩k 的最佳近似值(相当于矩阵的l2-范数)。使用这种表示在计算上是高效的,因为如果你的矩阵 Xn by nk << n,你可以只用 (2n + 1)k 系数存储它的低秩近似(通过存储 U,@ 987654340@ 和 V)。

这通常用于矩阵完成问题(例如协同过滤),因为用户评分的真实矩阵被假定为低秩(或由低秩矩阵很好地近似)。因此,您希望通过计算数据矩阵的最佳低秩近似来恢复真实矩阵。然而,现在有更好的方法可以从嘈杂和缺失的观察中恢复低秩矩阵,即核范数最小化。例如,参见 E. Candes 和 T. Tao 的论文The power of convex relaxation: Near-optimal matrix completion

(注意:源自该技术的算法也存储估计矩阵的 SVD,但计算方式不同)。

【讨论】:

  • 在这种方法下,如果 X 矩阵最初是 m x n,那么您的降阶矩阵仍然是 m x n。如果您的目标是降维而不是矩阵完成,则使用 U 或 V^T 作为新的训练集(取决于您的样本在 X 中是按行还是按列定向)而不是 X_lr。
【解决方案3】:

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

从数学上讲,更简单的模型方差较小,即它们不太容易过度拟合。当然,欠拟合也可能是一个问题。这被称为偏差方差困境。或者,正如爱因斯坦所说的那样:事情应该尽可能简单,而不是简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-12
    • 2015-11-05
    • 2020-10-07
    • 2017-03-16
    • 2018-03-18
    • 2015-09-18
    • 2021-01-06
    • 1970-01-01
    相关资源
    最近更新 更多