贝叶斯算法:
假设有一个数据集,由两类组成(简化问题),对于每个样本的分类,我们都已经知晓。
现在出现一个新的点new_point (x,y),其分类未知。我们可以用p1(x,y)表示数据点(x,y)属于红色一类的概率,同时也可以用p2(x,y)表示数据点(x,y)属于蓝色一类的概率。那要把new_point归在红、蓝哪一类呢?
我们提出这样的规则:
如果p1(x,y) > p2(x,y),则(x,y)为红色一类。
如果p1(x,y) <p2(x,y), 则(x,y)为蓝色一类。
换人类的语言来描述这一规则:选择概率高的一类作为新点的分类。这就是贝叶斯决策理论的核心思想,即选择具有最高概率的决策。
用条件概率的方式定义这一贝叶斯分类准则:
如果p(red|x,y) > p(blue|x,y), 则(x,y)属于红色一类。
如果p(red|x,y) < p(blue|x,y), 则(x,y)属于蓝色一类。
也就是说,在出现一个需要分类的新点时,我们只需要计算这个点的
max(p(c1 | x,y),p(c2 | x,y),p(c3 | x,y)…p(cn| x,y))。其对于的最大概率标签,就是这个新点的分类啦。
因此可得 X 属于 y分类的概率就知道了如:
例子:
给定数据:
求 一个 人不帅,不高,性格不好,不上进,该不该嫁给他!
通过贝叶斯算法
因而可通过求一个人不高不帅性格不好不上进嫁给他的概率 = 一个女生嫁给一个人是不高不帅不上进性格不好的概率*嫁人的概率/一个人不高不帅性格不好不上进的概率
而朴素贝叶斯假设各特征相互独立
就有:
p(不帅、性格不好、身高矮、不上进|嫁) = p(不帅|嫁)p(性格不好|嫁)p(身高矮|嫁)p(不上进|嫁)
因而根据训练数据:
P(嫁人的概率为):1/2
P(不帅|嫁) = 1/2
p(性格不好|嫁)= 1/6
p(矮|嫁) = 1/6
p(不帅) = 4/12 = 1/3
(1/31/37/121/3) = 一个人不高不帅性格不好不上进的概率
根据这些可得 (01/2 * 1/2 * 1/6 * 1/6 * 1/3)/(1/31/37/12*1/3)=一个人不高不帅性格不好不上进嫁给他的概率