完成一份损坏的数据矩阵的算法

6

我有下面的问题:

我提取了一批数据,但其中部分数据不可用或者缺失;对于不同的条目,我确定了10个参数:

       param1   param2    ...  param10
Item 1   1220     N/A            1000
Item 2   1300     200     ...    1000
..        ...      ...

item N    N/A      1000   ...     200

N ~ 1500 and half of the values are complete

在创建项目时存在隐含的逻辑,因此我希望用最佳预期值填充这些值。

示例:

假设您有2个参数和3个项目。

       param1  param2
item1    400    200
item2    200    100
item3    100     N/A

使用线性插值,您可以轻松获得item3 = 50的param2值。

我的想法:

由于我有10个参数和1500个值,我想对完整的750个项目的协方差矩阵进行PCA(找到数据集的主要方向)。

PCA将为我的项目提供一个主要方向(最大特征值),以及子组的子方向(较小的特征值)。

例如,我想在主方向上投影具有缺失参数的向量,以获取缺失参数的近似值。

从我的第一个示例中:

       param1  param2
item1    400    200
item2    200    100
item3    100     X ?

完整矩阵:

param1  param2
item1    400    200
item2    200    100

协方差矩阵:
   1    0.5
   0.5  1 

特征向量和特征值:

V1 和 l1:

1
1   associatedd to 1.5

V2和l2:
1
-1  associated to 0.5

结果:

如果我只在V1上进行投影,我得到X1=100

如果我在l1.V1 + l2.V2上进行投影,我得到X1=50。这是因为前两个项目之间存在完美的相关性。


所以我的问题是:

到目前为止,这只是理论,我还没有应用它,但在开始之前,我想知道我是否朝着正确的方向进行。

我能做得更好吗?(我真的相信可以。) 如果所有项目都有一个缺少的参数,我该怎么办? 我从哪里获取指导?

是否已知有好的算法来填充受损矩阵,或者你能帮我完成我的想法(推荐给我好的阅读材料或方法)?

例如,我认为Netflix使用这种算法自动填写影片评分矩阵(Netflix 100万美元问题)。

如果您认为这属于其他 stackexchange 网站,请随意迁移。

3个回答

2
尝试使用NIPALS算法。它是“化学计量学”领域的标准方法,是一种专门针对缺失数据的PCA方法。然后,您可以通过回投影您的得分和载荷(t * p')来根据数据模型填补空缺。这种方法的美妙之处在于,您不会通过插补偏置数据,而是只使用您拥有的数据。尝试搜索Herman或Svante Wold的论文,或在R和Matlab中实现该算法。显然,缺失数据越多,结果就越不可靠,但是对于随机缺失,您可以有相当大量的缺失数据。
传说中Herman发明了该算法以排名美国的赛马 - 这是一个巨大的缺失数据问题(如果您考虑一下,不是所有的马都会参加比赛!)。

2
这篇文章(点击此处阅读)是由Simon Funk撰写的,其中描述了他在Netflix奖励挑战中使用类似于您的方法的经验;也许这就是您提到它时想到的内容。与您的方法不同,它可以处理缺失数据。其核心思想是用一个大致等价的优化问题替代直接使用矩阵方法来确定数据矩阵的奇异值分解,从而更自然地考虑缺失数据。

谢谢你的回答。我会仔细看一下。我想如果我能理解如何几乎解决Netflix,那对于我需要做的事情来说就足够了。 - Ricky Bobby

1
为什么不使用来自机器学习的数值预测呢?在你的第一个例子中,参数是属性,项目是实例。通过这样,你可以尝试线性回归、神经网络或者其他任何方法,只需几分钟时间。在训练之后,你将得到你的第一个例子的下一个方程(这里的param2被标记为类):
param2 = 0 + 1/2 * param1

这正是你想要的。

如果你不确定参数之间的关系是否是线性的,你可以尝试其他类型的回归(ANN、SVM等)。

快速入门可以使用Weka。将你的数据转换为CSV格式,加载到Weka中开始操作。对于数值预测,请查看“分类”选项卡。


你说得对,对于这样的问题,机器学习可能是一个不错的方法。我会尝试使用Weka。谢谢。 - Ricky Bobby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接