python,大数据,机器学习,深度学习,计算机视觉
六、机器学习算法篇(三)朴素贝叶斯
概念
朴素贝叶斯分类器有三种模型,分别是高斯、多项式分布和伯努利。
朴素即:各个特征之间相互独立,不是~iid,是~id。朴素就是独立性假设!!如果特征比较多时,往往独立性的条件不重要(互相抵消),可以用朴素贝叶斯。
应用场景
源于推理的需要,例如:通过病人的症状(特征X)来判断病人是否生病(Y取值为0或1)或判断病人的疾病类别(Y取值多个)。再如通过商品的描述(特征X)来推理商品的类别。
举例
来张本人手绘:
如右图:Y是病人,m个病人(m个样本):1表生病,0表没生病
4种X都是特征:如头晕、体温37.5度、嗓子疼、厌食。
训练的时候:得出条件概率表
推理的时候:比较条件概率的大小
特点:训练容易,推理难。
算法推导
结合上面的图思考下面推导过程:
已知:
设X是一个未知的可待测样本
判断推测:
若P(C1|X) > P(C2| X),则X属于C1,反之属于C2分类。
例如:X-- 体温37.5,C1 --高烧,C2 --体热运动,…那么X-- 体温37.5是高烧的概率最大,所以X-- 体温37.5属于高烧分类。
推导:
P(X)是一个常数,多个特征X1, X2, …, Xn属于分类(1)(2)的概率如下:
属于分类(1)的概率:P(C1 | X1, X2, …, Xn) = P(C1) P(X1, X2, …, Xn | C1)/P(X1, X2, …, Xn)
属于分类(2)的概率:P(C2 | X1, X2, …, Xn) = P(C2) P(X1, X2, …, Xn | C1)/P(X1, X2, …, Xn)
…
因为要比较他们概率的大小以确定属于哪一类,由于分母相同,故只要将分子比较即可!
所以重写为:
属于分类(1)的概率:P(C1 | X1, X2, …, Xn) = P(C1) P(X1, X2, …, Xn | C1)/P(X1, X2, …, Xn) = 忽略分母得:P(C1 | X1, X2, …, Xn) = P(C1) P(X1, X2, …, Xn | C1) = (朴素即独立)X特征间相互独立:P(C1)
∏
i
=
1
n
\prod_{i=1}^n
∏i=1nP(Xi | C1 )
属于分类(2)的概率:P(C2 | X1, X2, …, Xn) = P(C2) P(X1, X2, …, Xn | C1)/P(X1, X2, …, Xn) = 忽略分母得:P(C2 | X1, X2, …, Xn) = P(C2) P(X1, X2, …, Xn | C1) = (朴素即独立)X特征间相互独立:P(C2) ∏ i = 1 n \prod_{i=1}^n ∏i=1nP(Xi | C2 )