作者回复: 感谢支持🙏
作者回复: 这是一个非常好的问题。确实从实现的角度来说,我们也可以直接统计p(c|fi),不过这需要一些额外的数据结构,例如类似搜索引擎的倒排索引,以及对应的预处理。这会引入一些额外的空间和实际复杂度开销,特别是在大规模并行处理的时候,更加复杂一点。
作者回复: 严格来说,应该这样推导 p(c|f1,f2)=p(c,f1,f2)/p(f1,f2)=p(c)*p(f1|c)*p(f2|f1,c)/p(f1,f2)
由于朴素贝叶斯中的马尔科夫假设,f1和f2独立,p(c)*p(f1|c)*p(f2|f1,c)=p(c)*p(f1|c)*p(f2|c),而p(f1,f2)=p(f1)*p(f2),所以p(c)*p(f1|c)*p(f2|f1,c)/p(f1,f2) = p(c)*p(f1|c)*p(f2|c)/(p(f1)*p(f2))
作者回复: 需要把三个概率再归一化,因为这个概率都只是近似值,是根据贝叶斯规则推算的,所以不是真实的概率,只是一个推算值,看相对大小。
另外,极客时间里有机器学习的课程,你可以看看专栏或者视频课程的列表
作者回复: 是的,朴素贝叶斯的“朴素”或者说naive就是指这个“天真”的假设。当然,很多时候并不成立,我们可以使用多阶马尔科夫模型来稍作修改,后面几节会有介绍。
作者回复: 反复阅读和练习,就能加深印象,加油!
作者回复: 很高兴这个专栏对你有价值
作者回复: 你可以参考前面那个推导
作者回复: 确实是
作者回复: 很高兴对你有所启发
作者回复: 很高兴对你有用👍
作者回复: 感谢支持!
作者回复: 是的
作者回复: 两者对于后验概率最大化来说是一致的,p(c)*p(f1|c)*p(f2|c)/p(f1)*p(f2)是基于马尔科夫假设的推导
作者回复: 对,直观上理解是这样的
作者回复: 可以自己动手实现一个NB的分类器,加深印象
作者回复: 没错👍