朴素贝叶斯如何求得样本特征对应的类别的概率?
① 朴素贝叶斯公式可以使得贝叶斯公式展开为:
![be275867123b68a808ae73be95887cb3.png](https://i-blog.csdnimg.cn/blog_migrate/cee39cb147a7487168e13cc99e9fa0ff.png)
② 展开式中对每一个局部的进行统计计算。
注:因为在数据量很大的时候,根据中心极限定理,频率是等于概率的。
③ 统计 p(嫁) =
- 首先,整理训练数据,嫁的样本数如下,一共有6个:
![d18c0b1e5f0af64e5cc05979d3f4a689.png](https://i-blog.csdnimg.cn/blog_migrate/0a21bf90e8b8c09e4ec5a7f3868c5c20.png)
- p(嫁) = 6/12(12是总样本数) = 1/2
- p(不帅|嫁) 统计满足样本数如下,有3个:
![c2a3730d2456e6c561e811d2c4cf2c88.png](https://i-blog.csdnimg.cn/blog_migrate/069d0ddc80cb36ec2593f20012679b6f.png)
- 则 p(不帅|嫁) = 3/6 = 1/2
- p(性格不好|嫁) 统计满足样本数如下,有一个:
![cf9bfac82d632525aafceb9686c7eb7d.png](https://i-blog.csdnimg.cn/blog_migrate/a81270cd419b360efc7071d37758966e.png)
- 则 p(性格不好|嫁) = 1/6
- p(矮|嫁) 统计满足样本数如下,有一个:
![eadb5f1ab5d0f1a3de6e7defbb6bd7a4.png](https://i-blog.csdnimg.cn/blog_migrate/7b3d7bb2675b50c627a06efcb5e3cdd5.png)
- 则 p(矮|嫁) = 1/6
- p(不上进|嫁) 统计满足样本数如下,有一个:
![12c9dab3d12a8710b674686e740aa294.png](https://i-blog.csdnimg.cn/blog_migrate/1492a424ff19d8c98df8ab88d05254de.png)
- 则 p(不上进|嫁) = 1/6
- 下面开始求分母,p(不帅)、p(性格不好)、p(矮)、p(不上进)
- 统计样本如下:
![81e04cfd646d8ada8e061dea6f37170a.png](https://i-blog.csdnimg.cn/blog_migrate/efbfda1cb1a08c6496bb55a06587415a.png)
- 不帅统计如红色所示,占4个,p(不帅) = 4/12 = 1/3
![2a3a0d20f1e0ec053a025c195d034c73.png](https://i-blog.csdnimg.cn/blog_migrate/2f393c68444307d10e8087784f046c2a.png)
- 性格不好统计如红色所示,占4个,那么p(性格不好) = 4/12 = 1/3
![159196eb91e9bf7a3229625974b5bb1e.png](https://i-blog.csdnimg.cn/blog_migrate/aeacbdd19d2b600725f542680638a49c.png)
- 身高矮统计如红色所示,占7个,那么p (身高矮) = 7/12
![eeb182a8fc26b16b7864500b9f5c4aaa.png](https://i-blog.csdnimg.cn/blog_migrate/2ed97dc6971208a4895ad8ed07498da2.png)
- 不上进统计如上红色所示,占4个,那么p(不上进) = 4/12 = 1/3
④ p(不帅、性格不好、身高矮、不上进|嫁) 的所需项全部求出来了,带入进去即可:
![be275867123b68a808ae73be95887cb3.png](https://i-blog.csdnimg.cn/blog_migrate/cee39cb147a7487168e13cc99e9fa0ff.png)
= (1/2*1/6*1/6*1/6*1/2)/(1/3*1/3*7/12*1/3)
⑤ 下面根据同样的方法来求p(不嫁|不帅,性格不好,身高矮,不上进),完全一样的做法。
注:公式如下:
![b4396d4db541010a76e2e41630f53f8c.png](https://i-blog.csdnimg.cn/blog_migrate/322efb9be83298fde547f46f82298d17.png)
注:一个一个来进行统计计算,这里与上面公式中,分母是一样的,于是我们分母不需要重新统计计算。
- p(不嫁) 根据统计计算如下(红色为满足条件):
![533f7587abd1ff5847d2bf785a7c22a2.png](https://i-blog.csdnimg.cn/blog_migrate/149fb4eefd3b83c4972f21a4f193c520.png)
- 则 p(不嫁)=6/12 = 1/2
- p(不帅|不嫁) 统计满足条件的样本如下(红色为满足条件):
![a7d5f2798cd79ed26d2d684d03607fa3.png](https://i-blog.csdnimg.cn/blog_migrate/11cf72403ef0792d61c75290904c4437.png)
- p(不帅|不嫁) = 1/6
- p(性格不好|不嫁) 据统计计算如下(红色为满足条件):
![3a59554152fc2faf449cd8116e71617a.png](https://i-blog.csdnimg.cn/blog_migrate/366e219b3a4b4849c0fa2b0b21765239.png)
- p(性格不好|不嫁) =3/6 = 1/2
- p(矮|不嫁) 据统计计算如下(红色为满足条件):
![c0a3635526089df38a2a53aeaf07a7cb.png](https://i-blog.csdnimg.cn/blog_migrate/031f80a60dc7735808834b50a6bd493a.png)
- p(矮|不嫁) = 6/6 = 1
- p(不上进|不嫁) 据统计计算如下(红色为满足条件):
![bc948cb741fafd0f6fe9edd85f2d37d7.png](https://i-blog.csdnimg.cn/blog_migrate/98c93cf888cb512c7c43f1f620d9bb42.png)
- 则 p(不上进|不嫁) = 3/6 = 1/2
- 根据公式:
![b4396d4db541010a76e2e41630f53f8c.png](https://i-blog.csdnimg.cn/blog_migrate/322efb9be83298fde547f46f82298d17.png)
- p(不嫁|不帅、性格不好、身高矮、不上进) = ((1/6*1/2*1*1/2)*1/2)/(1/3*1/3*7/12*1/3)
注:可以通过比较 p(不嫁|不帅、性格不好、身高矮、不上进) 和 p(嫁|不帅、性格不好、身高矮、不上进) 的概率,来判断样本特征应该对应哪个类别。
Python基础积累(numpy)
numpy数组合并
import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
# 第一种方法:直接合并后打印
print(np.vstack((A,B)))
# 第二种方法:合并后赋值,然后打印
C = np.vstack((A,B))
print(C)
运行结果:
[[1 1 1]
[2 2 2]]
[[1 1 1]
[2 2 2]]
注:vertical stack 上下合并,组成一个多维数组。
print(A.shape,B.shape,C.shape)
运行结果:
(3,) (3,) (2, 3)
注:从shape中看出A,B均为拥有3项的数组(数列),C拥有2*3项的数组。
D = np.hstack((A,B))
print(D)
print(A.shape,B.shape,D.shape)
运行结果:
[1 1 1 2 2 2]
(3,) (3,) (6,)
注:horizontal stack 左右合并。
参考文献:
- 知乎/忆臻/带你理解朴素贝叶斯分类算法