1 基于贝叶斯的决策理论的分类方法
优点:在数据较少的情况下仍然有效,可以处理多类别问题。
缺点:对于输入数据的准备方式比较敏感。
使用数据类型:标称型数据。
贝叶斯决策理论
我们现在用p1(x,y)表示数据点(x,y)属于类别1(图中用圆点表示的类别)的概率,用p2(x,y)表示数据点(x,y)属于类别2(图中用三角形表示的类别)的概率。对于一个新数据点,可以用下面的规则判定它的类别:
- 如果p1(x,y)>p2(x,y),那么为类别1;
- 如果p1(x,y)<p2(x,y),那么为类别2;
也就是说,我们会选择高概率的类别。这就是贝叶斯决策的核心思想,即选择具有最高概率的决策。回到图4.1,如果图中的整个数据使用6个浮点数来表示,并且计算类别概率的Python代码只有两行,那么你会更倾向于使用哪种方法来对该数据点进行分类呢?
- 使用kNN法,进行1000次距离计算;
- 使用决策树,分别沿X轴、Y轴划分数据;
- 计算数据点属于每个类别的概率,并进行比较。
使用决策时不会非常成功;而和简单的概率计算相比,kNN计算量太大,因此,对于上述问题的最佳选择是使用概率比较的方法。
2 条件概率
假设x,a是两个事件,已知p(x|a),要求p(a|x),那么可以使用下面的计算方法:
p ( a ∣ x ) = p ( x ∣ a ) p ( a ) p ( x ) p(a|x)=\frac{p(x|a)p(a)}{p(x)} p(a∣x)=p(x)p(x∣a)p(a)
p(a|x):x发生情况下,a发生的概率。
p(x|a):a发生情况下,x发生的概率。
p(x):x发生的概率。
p(a):a发生的概率。
3 使用条件概率来分类
上面提到过按照贝叶斯决策理论计算要求计算两个概率p1(x,y)和p2(x,y):
- 如果p1(x,y)>p2(x,y),那么为类别1;
- 如果p1(x,y)<p2(x,y),那么为类别2;
实际上,这两个准则并不是贝叶斯决策理论的全部内容,真正需要计算和比较的是 p ( c 1 ∣ x , y ) p(c_1|x,y) p(c1∣x,y)和 p ( c 2 ∣ x , y ) p(c_2|x,y) p(c2∣x,y),这些符号所代表的意义是:给定某个x,y表示的数据点,那么该数据点来自类别 c 1 c_1 c1和 c 2 c_2 c2的概率是多少呢? 具体的,可以应用贝叶斯准则得到:
p ( c i ∣ x , y ) = p ( x , y ∣ c i ) p ( c i ) p ( x , y ) p(c_i|x,y)=\frac{p(x,y|c_i)p(c_i)}{p(x,y)} p(ci∣x,y)=p(x,y)p(x,y∣ci)p(ci)
使用这些定义,可以定义贝叶斯分类准则为:
- 如果 p ( c 1 ∣ x , y ) > p ( c 2 ∣ x , y ) p(c_1|x,y)>p(c_2|x,y) p(c1∣x,y