如果我将整个数据集除以击球手得到的球的总数除以保龄球的总数,我会发现我有一个常礼帽投球手的平均概率-大约为0.03(希望我没有错吗?)
不幸的是,这可能已经不是您想要的。
假设我们有一个投球手和两个击球手:唐·布拉德曼和我。(我对板球知之甚少,所以如果我在这里做点事儿,让我知道。)这些游戏就像:
- 唐去击球,进入第99碗。
- 我去击球,马上就出去了。
- 唐去击球,进入第99碗。
- 我去击球,马上就出去了。
在这种情况下,200个碗中有4个出局,因此,投球手将击球手带出的边际概率估计为4/200 = 2%。但是实际上,唐的出现概率更像是1%,而我的概率是100%。因此,如果您随机选择一个击球手和一个投球手,那么这个投球手这次让这个击球手出局的可能性就更像是(您有50%的机率选了唐,*)(有1%的机率,他下了机)+(有50%的机率,您选了我)*(我有100%的机会脱身)= 50.05%。但是,如果您随机选择一个音高,则有2%的机会退出。因此,您需要仔细考虑要考虑的采样模型。
无论如何,您的建议并不疯狂。更具象征意义的是,让为投球手,为击球手;让是在概率得到出来。然后你说:bmf(b,m)bm
f(b,m)=Em′[f(b,m′)]Eb′[f(b′,m)]Eb′,m′[f(b′,m′)].
这确实具有所需的属性:
如果仅对或进行均值运算,则同样是一致的。
Eb,m[f(b,m)]=Eb,m′[f(b,m′)]Eb′,m[f(b′,m)]Eb′,m′[f(b′,m′)]=Eb,m[f(b,m)];
bm
请注意,在这种情况下,我们可以分配
您的假设是,您可以从数据中很好地观察和。只要(a)您有足够的游戏[您所做的]和(b)玩家都以合理相似的频率互相玩游戏,那么就可以了。
C:=Eb,m[f(b,m)]g(b):=Em[f(b,m)]/C−−√h(m):=Eb[f(b,m)]/C−−√so that f(b,m)=g(b)h(m).
g(b)h(m)
详细介绍一下(b):假设您有一些职业游戏的数据,以及我和朋友一起玩的一系列游戏的数据。如果没有重叠,也许与朋友们相比我看起来真的很棒,所以也许您认为我比最差的职业球员好得多。这显然是错误的,但是您没有任何数据可以反驳。但是,如果您有一点重叠之处,那么我曾经和一位职业玩家对战过一次而被淘汰,那么数据确实支持我和我的朋友的排名一直都比职业选手差,但是您的方法并不能说明问题。从技术上讲,这里的问题是您假设您有一个很好的样本,例如,但是您的分布是有偏差的。Eb′[f(b′,m)]b′
当然,您的数据看起来不会很糟糕,但是取决于联盟的结构或其他因素,它可能包含该问题的某些要素。
您可以尝试使用其他方法来解决它。该模型为实际上是低等级的普通矩阵分解模型的实例协同过滤,如Netflix的问题。在这里,选择函数和的维数为,并表示。您可以将解释为使模型从单一的“质量”得分复杂化为具有多个维度的得分:也许某些投球手在对抗某些类型的板球运动员时表现更好。(例如针对NBA游戏已完成此操作。)fg(b)h(m)rf(b,m)=g(b)Th(m)r>1
之所以称它们为矩阵分解,是因为如果您制作的矩阵行数与圆顶礼帽相同,而列数与击球手一样多,则可以这样写:F
⎡⎣⎢⎢⎢⎢⎢f(b1,m1)f(b2,m1)⋮f(bN,m1)f(b1,m2)f(b2,m2)⋮f(bN,m2)……⋱…f(b1,mM)f(b2,mM)⋮f(bN,mM)⎤⎦⎥⎥⎥⎥⎥F=⎡⎣⎢⎢g(b1)⋮g(bN)⎤⎦⎥⎥G⎡⎣⎢⎢h(m1)⋮h(mM)⎤⎦⎥⎥THT
,在这里您已将 ×矩阵分解为 ×个和 ×个。
N×MFN×rGM×rH
当然,您不能直接观察通常的模型是您可以随机观察噪声条目;在您的情况下,您将观察到从每个项随机抽取的二项式分布的平局。FFF
您可以构建一个概率模型,例如:
Gik∼N(0,σ2G)Hjk∼N(0,σ2H)Fij=GTiHjRij∼Binomial(nij,Fij)
在其中观察到和,并且您可能会在 /放置一些超级并进行推断,例如在
Stan中。
nijRijσGσH
这不是一个完美的模型:对于一个模型,它忽略了与得分相关(如我在第一部分中提到的),更重要的是,它并不约束在(您可能会使用Logistic乙状结肠或类似的工具来实现此目的)。相关文章中,和先验更复杂(但未使用二项式似然):Salakhutdinov和Mnih,使用马尔可夫链蒙特卡罗,贝叶斯概率矩阵分解,ICML,2008年。(doi / 作者pdf)˚F 我Ĵ [ 0 ,1 ] ģ ħnFij[0,1]GH