【问题标题】:Singular Value Decomposition to predict a missing value from an otherwise FULLY POPULATED matrix奇异值分解以从其他完全填充的矩阵中预测缺失值
【发布时间】:2013-06-27 23:49:50
【问题描述】:

这是我的第一个问题,我希望它没有被误导/在错误的地方。

假设我有一个完全填充的数据矩阵,除了一个值。例如,第 1 列是身高,第 2 列是体重,第 3 列是卧推。所以我调查了 20 个人,得到了他们的身高、体重和卧推重量。现在我有一个 5'11 体重 170 磅的人,想预测他/她的卧推重量。您可以将其视为具有缺失值的矩阵,或者您可以将其视为想要在给定自变量向量的情况下预测因变量。这类问题有曲线拟合方法,但我想知道如何使用奇异值分解来回答这个问题。

我知道奇异值分解是一种预测缺失值的方法,但实际上我发现的所有信息都与巨大的、高度稀疏的矩阵有关,涉及Netflix Prize 和相关问题。我无法弄清楚如何使用 SVD 或类似方法从一个中小型、完全填充(一个缺失值除外)矩阵中预测缺失值。

使用 SVD 解决上述示例的分步算法对我非常有帮助。谢谢!

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于数学,而不是实现。它属于maths.stackexchange.com
  • 我明白了,谢谢。我会把它贴在那里。

标签: matrix prediction svd


【解决方案1】:

我打算将此作为评论,但它太长了,所以我已将其作为答案提交。

我对 SVD 的阅读表明它不太适用于您的示例。特别是,您似乎需要以某种方式为矩阵的卧推列分配一些难度排名,或者个人的一些能力排名。也许两者兼而有之。由于他可以卧推的量完全取决于他自己的身高和体重,我认为 SVD 不会提供任何优化,而不仅仅是计算列表中其他人已经完成的统计平均值并使用它来预测你 5 的结果'11 170 磅升降机。也许如果有 BMI(体重指数)列,如果可以对 BMI 进行排名……可能还有更大的数据集。我认为问题在于矩阵中没有噪声可以通过使用 SVD 来减少。这是一个似乎使用类似问题的 tut:http://www.puffinwarellc.com/index.php/news-and-articles/articles/30-singular-value-decomposition-tutorial.html

【讨论】:

  • 是的,我读过那篇文章,但不明白如何从那里做出预测。我不确定当某事物是两个或多个自变量的函数时,统计“平均值”是什么,但找到最相似的行并根据这些行计算预测并非易事。
  • 您可以找到一组平均身高为 5'11 的人 - 找到另一组平均体重为 170 磅的人,确定其中是否有任何成员同时也是另一组的成员,然后计算他们的平均卧推。如果没有,那么 id 说您需要更大的采样。那不行吗?
  • 应该有一种更直接的方法,您可以在整个测量范围内计算一个修正值,以便(身高和体重)与卧推之间的关系浓缩为一个公式(HW /M=B)。我不确定这些数据的相关性如何,因为躺在长凳上并按下重量可能与身高甚至体重关系不大。 BMI 可能意味着什么,但身高和体重似乎并不能很好地预测手臂/胸部的力量。我认为训练时间会是一个更好的预测指标,但这只是因为训练会增加肌肉质量 (BMI)。
  • 好吧,我实际上只是用这个作为例子,也许它不是一个很好的例子。我对理解 SVD 方法比回答这个问题更感兴趣——我可以通过简单的 3D 表面拟合轻松做到这一点。银行业的一个更复杂的例子是,让我们根据一个人的年收入、信用评分、借入金额、额外信用卡的数量以及可能或可能的任何其他变量来预测一个人拖欠信用卡债务的可能性有多大不相关。
  • 然后我会回到那篇文章并与作者一起浏览它,解决这个问题。有诸如球员能力和洞难度之类的修饰符在世界上对SVD对问题的适用程度产生了影响。完成此操作后,您应该能够看到将其应用于其他情况需要什么 - 或者至少应该适用于哪些情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-20
  • 2022-09-29
相关资源
最近更新 更多