【发布时间】:2017-07-31 13:12:31
【问题描述】:
我有一个由四列组成的数据框,前两列用于识别用户和产品,后两列是条件概率。我的最终数据框如下所示:
id1 id2 p(id2|id1) p(id1|id2)
1 1 1 0.1111111 4.290376e-04
2 1 2 0.22222222 8.286866e-03
3 1 3 0.22222222 2.639876e-04
4 1 4 0.44444444 2.850284e-03
5 2 1 0.09090909 1.644470e-03
6 2 5 0.2727273 3.286420e-04
7 2 6 0.4545455 1.002740e-03
8 2 3 0.1818182 1.738019e-05
之后会有更多用户。如您所见,对于属于同一个 id1 的 id2,我们可以有多个不同的值。我想找到获得某个 id2 的概率,假设用户已经有一些 id2,即我有兴趣找到
p(id2 = x | id2 = y) = sum_id1 ( p(id2 = x | id1 ) * p(id1 | id2 = y) )
并将其构造为所有 x 和 y 的矩阵。在这种情况下,我们有 6 个不同的 id2,所以生成的矩阵应该是这样的
1 2 3 4 5 6
1 NA 0.0009207628 3.091197e-05 .... .... ....
2 9.534169e-05 NA ...
3 0.0003943363 ...
4 ...
5 ...
6 ...
我们得到元素 (1,2) 为
p(id2=1 | id2 = 2) = p(id2 = 1 | id1 = 1) * p(id1 = 1 | id2 = 2)
= 0.1111111*8.286866e-03 = 0.0009207628.
对于元素 (1,3),我们得到 p>
p(id2 = 1 | id2 = 3) = p(id2 = 1 | id1 = 1) * p(id1 = 1 | id2 = 3)
+ p(id2 = 1 | id1 = 2) * p(id1 = 2 | id2 = 3)
= 0.1111111 * 2.639876e-04 + 0.09090909 * 1.738019e-05 = 3.091197e-05
我希望很清楚我想要完成什么。有谁知道我如何在 R 中构造这个矩阵?
提前致谢
【问题讨论】: