Python朴素贝叶斯
1 声明
本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理。
2 贝叶斯简介
相关概念见下:
条件概率P(B|A) = P(AB)/P(A)
即B在A发生的时的概率等于A、B同时发生的概率除以A发生的概率
全概率
P(A)=P(A|B1)P(B1)+ P(A|B2)P(B2)+…… P(A|Bn)Bn
这里B1,B2……Bn是对A的n中划分,P(Bi)>0,0<i<n+1,i是正整数。
贝叶斯
其中P(H)是假设H成立的概率,又称为先验概率,P(E)是证据的可能性(这里与假设无关),
P(E|H)是假设成立对应证据的可能性,P(H|E)是假设存在时证据的概率,是一种推断。
朴素贝叶斯分类
朴素贝叶斯是一种利用贝叶斯定理的分类器。它预测每个类的成员概率,例如给定记录或数据点属于特定类的概率。概率最大的类被认为是最可能的类。这也称为Maximum A Posteriori(MAP)最大后验概率。
MAP(H)
= max( P(H|E) )
= max( (P(E|H)*P(H))/P(E))
= max(P(E|H)*P(H))
贝叶斯分类的注意点:
1 假设数据的统计分布,比如正态、多项式、伯努利。
2 特征间是独立的。
3 朴素贝叶斯代码示例
4 总结
优点:
1 朴素贝叶斯算法是一种快速、高扩展性的算法
2 朴素贝叶斯算法支持二分类和多分类,有高斯、多项式、伯努利多种实现
3 适合于小样本上
不足:
因假设各特征间无关,所以处理特征间有关系的效果不好。