![]()
抛3次硬币全是正面,最大似然估计(Maximum Likelihood Estimation,最大似然估计)会告诉你这枚硬币正面朝上的概率是100%。
直觉上你知道这很荒唐——才3次实验,凭什么下这么绝对的结论?但MLE就是这么工作的:它只找"让观测数据出现概率最大"的那个点,完全不考虑你手头样本有多寒酸。
MLE的问题不是算错了,而是它根本不会说"我不太确定"。
贝叶斯推断(Bayesian Inference,贝叶斯推断)的解法很直接:别只给一个数字,给整个概率分布。每个可能的参数值都保留,按"数据支持度 × 先验相信度"加权。样本少的时候分布摊得开,样本多了才慢慢收拢。
先验是你偷偷带进去的偏见
还是那枚硬币,但这次你先假设它"大概公平,但不敢说死"。数学上这叫Beta(2,2)分布——在0.5附近拱起一座小山,两头翘得不高,表示极端偏差的可能性存在但不大。
然后你抛了10次,7次正面。代码跑出来的三幅图很说明问题:
第一幅是你的先验,一座 centered 在0.5的小山。第二幅是似然函数,7/10的位置冒出尖峰。第三幅后验分布——红色的曲线——被数据拽着往右偏,但没偏到MLE那个0.7那么远,最终停在0.667。
更关键的是那条95%可信区间:[0.416, 0.864]。MLE给不了你这个东西。它只会说0.7,仿佛这是个真理。
共轭先验:数学家偷的懒
Beta分布在这里有个作弊级的特性:先验是Beta,似然是二项分布,后验自动还是Beta。形状参数直接相加——α变成α+z,β变成β+(N-z)。
这叫共轭先验(Conjugate Prior,共轭先验)。不是每个问题都这么幸运,但遇到的时候计算量从积分地狱变成小学加法。
选先验本身就是门手艺。Beta(2,2)是"温和相信公平",Beta(0.5,0.5)是"我啥也不知道",Beta(10,10)是"我见过很多硬币,它们都很乖"。没有标准答案,只有透明声明——你得说清楚自己带了什么偏见进来。
99%准确率的检测怎么坑了98%的人
这是贝叶斯最反直觉的战场。假设某种病患病率1%,检测准确率99%——得病的人99%测出阳性,健康的人99%测出阴性。你测出阳性,实际得病的概率是多少?
不是99%。
![]()
画个10000人的格子:100个真患者里99个被揪出,9900个健康人里99个被误杀。阳性结果总共198个,其中真患者只占一半。你的后验概率是50%。
基础患病率就是那个先验。检测数据很强,但先验太悲观(病很罕见),两者一拉扯,最终判断大打折扣。医生不会只看你阳性就确诊,他们会问"你属于高危人群吗"——那是在收集先验信息。
MLE在这个场景里会怎么做?它只最大化似然:检测阳性→最可能的状态是患病。完事。基础患病率被无视,假阳性被无视,不确定性被无视。
贝叶斯把"我不知道"编码进了数学。
后验分布的宽度就是你的诚实度。10次抛硬币比1000次抛硬币的分布胖得多,这很合理。MLE的0.7和0.7之间没有区别,贝叶斯的0.7±0.2和0.7±0.02却是完全不同的承诺。
产品决策里这很关键。A/B测试跑了100人,转化率提升20%,MLE说上线。贝叶斯会问:20%的提升落在多宽的区间里?如果95%可信区间横跨-5%到+45%,这个"提升"可能只是噪音。
代码最后打印的那行数字值得多看一眼:后验均值0.667,MLE是0.7,差距不大。但MLE给不了你那个[0.416, 0.864]的区间,给不了"如果继续抛硬币,信念会如何流动"的完整图景。
下一次看到某个指标被宣称为"最优估计"时,不妨追问一句:这个估计有多确定?如果对方只能给出一个数字,那它大概率是用MLE算的——或者更糟,是用MLE的精神算的,只是没告诉你。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.