Pandas 无法获得用户的赔率-贝叶斯定理

Pandas 无法获得用户的赔率-贝叶斯定理,pandas,machine-learning,probability,bayesian,confusion-matrix,Pandas,Machine Learning,Probability,Bayesian,Confusion Matrix,我试图用混淆矩阵来解决这个非常基本的问题,但我的解决方案与正确的解决方案不匹配 问:假设我们有一项药物测试,可以在99%的时间内准确识别药物使用者,而在99%的非使用者中准确地检测出阴性结果。但只有0.3%的总体使用者使用这种药物 如果某个人的检测结果呈阳性,那么他成为该药物实际使用者的几率有多大 另外,isTP/(TP+FN)与p(A)p(B | A)/p(B)相同吗 我的做法: TP TN Total U

我试图用混淆矩阵来解决这个非常基本的问题,但我的解决方案与正确的解决方案不匹配

问:假设我们有一项药物测试,可以在99%的时间内准确识别药物使用者,而在99%的非使用者中准确地检测出阴性结果。但只有0.3%的总体使用者使用这种药物

如果某个人的检测结果呈阳性,那么他成为该药物实际使用者的几率有多大

另外,is
TP/(TP+FN)
p(A)p(B | A)/p(B)
相同吗

我的做法:

                                TP      TN        Total
Users       Predicted positive   29.7      0.3       30
Non-Users   Predicted negative   99.7   9870.3     9970
                                129.4   9870.6    10000
根据以上数据,我得到:29.7/129.4=0.2295208655,约22.95%

但解决方案表明:22.8%。我很困惑。做这件事的正确方法是什么?

我知道了:

给出的方法是这样的-p(B)是1.3%(0.99*0.003+0.01*0.997),所以p(B | A)=p(A)p(B | A)/p(B)=0.003*0.99/0.013=0.228。因此,“22.8%”


但是他们把这个数字四舍五入到1.3%,而不是1.294%,这就是为什么这个值不同

这里不涉及编程。也许试试?你做的看起来不错,我几乎百分之百肯定。解决方案似乎是错误的。除此之外,丹尼尔是correct@DanielF谢谢你,丹尼尔。张贴@JürgMerlinSpaak谢谢你的调查。给出的方法是这样的-P(B)是1.3%(0.99*0.003+0.01*0.997),所以P(B | A)=P(A)P(B | A)/P(B)=0.003*0.99/0.013=0.228。因此,“22.8%”