朴素贝叶斯分类:用概率做决策

贝叶斯原理

贝叶斯原理产生于“逆向概率”,所谓“逆向概率”相对于“正向概率”,正向概率即我们熟知的概率,已知条件,求解概率(例如一个盒子放3个白球,4个黑球,摸出白球的概率是3/7),这是一种先知情况下求解概率的方式。而“逆向概率”则不知道样本的分布情况,去求解各个样本的概率。

为了了解贝叶斯原理,我们先要理解几个贝叶斯原理中的概念

先验概率

先验概率可以理解为先人的经验概率,通过以往的数据,来推测事件发生的可能性,例如北京市下半年某一天降雨的可能性为5/180,是基于北京市以往下半年降雨的数据验证而来的。

条件概率

事件A在另一事件B发生后发生的概率,写作P(A|B),比如在盒子中已经摸出一个黑球的情况下摸出白球的概率。

后验概率

后验概率是在得知结果后,推测产生结果的原因的概率。例如考试取得高分的原因有好好复习、考试带小抄、到老师办公室偷偷改分数三种。那么当CP考试得高分,其原因为好好复习的概率就是后验概率。

接着我们来看一下贝叶斯公式:
P ( B i A ) = P ( B i ) P ( A B i ) i = 1 n P ( B i ) P ( A B i ) P(B_i|A) = \frac{P(B_i)P(A|B_i)}{\sum_{i=1}^nP(B_i)P(A|B_i)}

这里面的概率应该都好理解(只要你理解了条件概率),其中 B i B_i 表示第 i i 个事件,这里解释一下 P ( B i ) P ( A B i ) P(B_i)P(A|B_i) ,从字面上看,它是发生 B i B_i ,在此情况下发生 A A 的概率,其等于联合概率 P ( B i , A ) P(B_i,A) 。理论的叙述可能难以理解,我们用考试得高分这个例子来说明:

设考试取得高分为A,好好复习是 B 1 B_1 ,考试带小抄是 B 2 B_2 ,到老师办公室偷偷改分数是 B 3 B_3 。由于CP是个好学生,所以其会好好复习的概率 P ( B 1 ) P(B_1) 7 10 \frac{7}{10} ,考试带小抄的概率 P ( B 2 ) P(B_2) 2 10 \frac{2}{10} ,到老师办公室偷偷改分数的概率 P ( B 3 ) P(B_3) 1 10 \frac{1}{10} 。而其如果好好复习能够拿到高分的概率 P ( A B 1 ) P(A|B_1) 1 5 \frac{1}{5} ,因为带小抄得高分的概率是 1 5 \frac{1}{5} ,因为偷改分数而得高分的概率是 3 5 \frac{3}{5} 。现在班主任发现CP得了高分,想知道他得高分是因为好好复习的概率,即
P ( B 1 A ) = 7 10 1 5 7 10 1 5 + 2 10 1 5 + 1 10 3 5 = 7 12 P(B_1|A) = \frac{\frac{7}{10}*\frac{1}{5}}{\frac{7}{10}*\frac{1}{5} + \frac{2}{10}*\frac{1}{5} + \frac{1}{10}*\frac{3}{5}} = \frac{7}{12}

贝叶斯分类器

了解了贝叶斯工作原理之后,我们以决策树:ID3&C4.5&cart算法(从原理到实现-小白教程超详细)中打篮球的例子来说明贝叶斯分类器的作用。

天气 温度 湿度 风速 是否打篮球
炎热
炎热
炎热
适中
寒冷
寒冷
寒冷
适中
寒冷
适中
适中
适中
炎热
适中

上面是先验知识,现在有一条新数据,已知天气(阴),温度(寒冷),湿度(高),风速(弱),问其是否打篮球分类?

首先按照贝叶斯原理,设天气阴是 B 1 B_1 ,温度寒冷是 B 2 B_2 ,湿度高是 B 3 B_3 ,风速弱是 B 4 B_4 ,打篮球是 A 1 A_1 ,不打篮球是 A 2 A_2 ,则问题转化成求 P ( A 1 B 1 B 2 B 3 B 4 ) P(A_1|B_1B_2B_3B_4) P ( A 2 B 1 B 2 B 3 B 4 ) P(A_2|B_1B_2B_3B_4) 哪个大,较大者即最后分类结果。而依据贝叶斯公式,得到
P ( A i B 1 B 2 B 3 B 4 ) = P ( A i ) P ( B 1 B 2 B 3 A i ) j = 1 2 P ( A j ) P ( B 1 B 2 B 3 A j ) = P ( A i ) P ( B 1 B 2 B 3 A i ) P ( B 1 B 2 B 3 ) i = 1 , 2 P(A_i|B_1B_2B_3B_4) =\frac{P(A_i)P(B_1B_2B_3|A_i)}{\sum_{j=1}^2P(A_j)P(B_1B_2B_3|A_j)} = \frac{P(A_i)P(B_1B_2B_3|A_i)}{P(B_1B_2B_3)} \\ i = 1,2

为了能够计算 P ( B 1 B 2 B 3 A i ) P(B_1B_2B_3|A_i) 假定各个因素之间相互独立(其实就是将贝叶斯转换为朴素贝叶斯),有
P ( B 1 B 2 B 3 A i ) = P ( B 1 A i ) P ( B 2 A i ) P ( B 3 A i ) P(B_1B_2B_3 | A_i) = P(B_1|A_i)P(B_2|A_i)P(B_3|A_i)
依据上表可以知道 P ( A 1 ) = 9 14 , P ( A 2 ) = 5 14 P ( B 1 A 1 ) = 4 9 P ( B 2 A 1 ) = 3 9 P ( B 3 A 1 ) = 3 9 P ( B 4 A 1 ) = 6 9 P ( B 1 A 2 ) = 0 P ( B 2 A 2 ) = 1 5 P ( B 3 A 2 ) = 4 5 P ( B 4 A 2 ) = 2 5 P(A_1) = \frac{9}{14}, P(A_2) = \frac{5}{14},P(B_1|A_1) = \frac{4}{9},P(B_2|A_1) = \frac{3}{9},P(B_3|A_1) = \frac{3}{9},P(B_4|A_1) = \frac{6}{9},P(B_1|A_2) =0,P(B_2|A_2) = \frac{1}{5},P(B_3|A_2) = \frac{4}{5},P(B_4|A_2) = \frac{2}{5} ,因此可求得
P ( A 1 ) P ( B 1 B 2 B 3 A 1 ) = 9 14 4 9 3 9 3 9 6 9 = 0.0212 P(A_1)P(B_1B_2B_3|A_1) = \frac{9}{14} * \frac{4}{9} * \frac{3}{9} * \frac{3}{9} * \frac{6}{9} = 0.0212
P ( A 2 ) P ( B 1 B 2 B 3 A 2 ) = 5 14 0 1 5 4 5 2 5 = 0 P(A_2)P(B_1B_2B_3|A_2) = \frac{5}{14} * 0 * \frac{1}{5} * \frac{4}{5} * \frac{2}{5} = 0
因此分类为A1的概率大于A2,所以去打篮球。

类别相似性函数

类别相似性函数是用于描述一个新的测验数据,其与各个分类的相似程度。之所以添加这一概念,是因为上面全是基于概率的直接计算,实际数学运算中我们更倾向于一个具体的函数来进行计算,因此定义如下:
g i ( x ) = p ( c i x ) = p ( x c i ) p ( c i ) j = 1 c p ( x c j ) p ( c j ) 1 g i ( x ) = p ( x c i ) p ( c i ) 2 g i ( x ) = l n ( p ( x c i ) ) + l n ( p ( c i ) ) 3 g_i(x) = p(c_i|x) = \frac{p(x|c_i)p(c_i)}{\sum_{j=1}^c p(x|c_j)p(c_j)}(1)\\ g_i(x) = p(x|c_i)p(c_i) (2)\\ g_i(x) = ln(p(x|c_i)) + ln(p(c_i))(3)
上面给出了类别相似函数的三种定义,事实上这三者想表达的性质是相同的。

例如前面的例子中x就是 B 1 B 2 B 3 B 4 B_1B_2B_3B_4 , A i A_i 就是 c i c_i

决策函数

既然知道了数据与类别的相似程度,我们只需要比较数据与每个类别相似的大小就可以知道数据的分类结果,同样地,为了便于数学计算,引入决策函数(两个类别相似性函数的差值)
g ( x ) = g 1 ( x ) g 2 ( x ) 1 g ( x ) = p ( c 1 x ) p ( c 2 x ) 2 g ( x ) = l n ( p ( x c 1 ) p ( x c 2 ) ) + l n ( p ( c 1 ) p ( c 2 ) ) 3 g(x) = g_1(x) - g_2(x) (1)\\ g(x) = p(c_1|x) - p(c_2|x) (2)\\ g(x) = ln(\frac{p(x|c_1)}{p(x|c_2)}) + ln(\frac{p(c_1)}{p(c_2)}) (3)
这三个公式对应类别相似函数的三个函数进行计算。

至此,我们已经能够实现利用贝叶斯原理进行分类了。

发布了46 篇原创文章 · 获赞 99 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/GentleCP/article/details/99689853