【发布时间】:2012-11-22 05:26:46
【问题描述】:
我正在做一个贝叶斯概率项目,我需要根据新信息调整概率。我还没有找到一种有效的方法来做到这一点。我要做的是从不同场景的等概率列表开始。前任。 共有 6 个人:E、T、M、Q、L、Z,他们各自的初始被选中概率表示为
myList=[.1667, .1667, .1667, .1667, .1667, .1667]
新信息显示,按字母顺序排在前三分之一的人共有 70% 的机会被选中。制作了一个新列表,按名称的字母顺序(E、L、M、Q、T、Z)排序,其中仅包含新信息。 (.7/.333=2.33, .3/.667=.45)
newList=[2.33, 2.33, .45, .45, .45, .45)
我需要一种方法来将 newList 与 myList 相同,这样我就可以在列表理解中乘以正确的值,并达到调整概率。有一个一致的顺序很重要,因为该过程将重复多次,每次都有不同的标准(元音,最接近 P 等),并且在一个包含大约 1000 个项目的列表中。 每个 newList 可以改为一个 newDictionary,然后一旦创建了调整条件,就可以将它们排序到一个列表中,但是转换多个字典似乎效率低下。是吗?有没有一种我完全想念的简单方法?
谢谢!
【问题讨论】:
-
这似乎是过早优化的经典案例:您的代码将花费大部分时间(到目前为止)进行贝叶斯计算,因此您无需担心您描述的那种低效率;没关系。
-
注明。我仍然是一个相对初学者,所以我不确定效率,似乎字典到有序列表的转换可能很慢。知道这不是什么大不了的事让人放心。
标签: python list python-3.x probability bayesian