我有下面的问题:
我提取了一批数据,但其中部分数据不可用或者缺失;对于不同的条目,我确定了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 网站,请随意迁移。