算法:朴素贝叶斯算法介绍
Contents
贝叶斯算法和决策树、SVM 一样,是分类算法。用来衡量标签和特征之间的概率关系,属于有监督学习算法。
因为贝叶斯是基于概率论的算法,了解算法之前,需要了解概率论的两个概念:
- 联合概率:“ X 取值为 x ” 和“ Y 取值为 y ”两个事件同时发生的概率。表示为
- 条件概率:在“ X 取值为 x ”的前提下,“ Y 取值为 y ”的概率。表示为
在概率论中可以证明,两个事件的联合概率等于这两个事件任意条件概率 * 这个条件事件本身的概率。推出贝叶斯理论公式:
举例说明(案例摘自于阮一峰博客)
假设以下是医院病人的症状和职业的特征,对应疾病标签也如图所示:
症状 | 职业 | 疾病 |
---|---|---|
打喷嚏 | 护士 | 感冒 |
打喷嚏 | 农夫 | 过敏 |
头痛 | 建筑工人 | 脑震荡 |
头痛 | 建筑工人 | 感冒 |
打喷嚏 | 教师 | 感冒 |
头痛 | 教师 | 脑震荡 |
那么,现在又来了第七个病人,是一个打喷嚏的建筑工人。请问他患上感冒的概率有多大?根据贝叶斯公式计算:
1 | P(A|B) = P(B|A) P(A) / P(B) |
因此,这个打喷嚏的建筑工人,有 66% 的概率是得了感冒。同理,可以计算这个病人患上过敏或脑震荡的概率。比较这几个概率,就可以知道他最可能得什么病。这就是贝叶斯分类器的基本方法:在统计资料的基础上,依据某些特征,计算各个类别的概率,从而实现分类。
朴素贝叶斯理论公式(具体公式不再推导):
朴素贝叶斯中的“朴素”一词的来源就是假设各特征之间相互独立。这一假设使得朴素贝叶斯算法变得简单,但有时会牺牲一定的分类准确率。
朴素贝叶斯的种类
**
- 高斯朴素贝叶斯:如果特征 x 是连续型变量。可以假设 x 服从高斯分布(正态分布)。根据正态分布的概率密度函数即可计算出;
- 多项式朴素贝叶斯:假设概率分布是服从一个简单多项式分布。多项式分布具体解释为:实验包括 n 次重复试验,每项试验都有不同的可能结果。在任何给定的试验中,特定结果发生的概率是不变的。比如:掷骰子在[1,2,3,4,5,6]中取值,6 种结果互不干涉,且只要样本量足够大 ,概率都是 1/6 。这就是一个多项分布;
- 伯努利朴素贝叶斯:就是数据集中可以存在多个特征,但每个特征都是二分类的,可以以布尔变量表示,也可以表示 为{0,1}或者{-1,1}等任意二分类组合。比如抛硬币。