当前位置 > CPDA数据分析师 > “数”业专攻 > 数据分析培训系列(数据挖掘)--分类算法之贝叶斯(一)

数据分析培训系列(数据挖掘)--分类算法之贝叶斯(一)

来源:数据分析师 CPDA | 时间:2015-07-24 | 作者:

在很多应用中,属性集和类变量之间的关系是不确定的。换句话说,尽管测试记录的属性及何某些训练样例相同,但是也不能正确的预测他的类标号。这种情况产生的原因可能是噪音,或者出现了某些影响分类的因素但却没有包含在分析中。例如,考虑根据一个人的饮食和锻炼的频率来预测他是否有患心脏病的危险,尽量大多数饮食健康、经常锻炼身体的人患心脏病的几率较小,但仍有人由于遗传、过量抽烟、饮酒等原因而患病。确认一个人是否饮食健康、经常锻炼,也是一个需要验证的问题,这反过来也给学习问题带来了不确定性。

下面这一系列我们将介绍一种对属性集和类变量的概率关系建模的方法,首先介绍贝叶斯定理,它是一种把类的先验知识和从数据中收集的新证据相结合的统计原理;然后解释贝叶斯定理在分类问题中的应用,接下来描述贝叶斯分类器的两种实现,朴素贝叶斯和贝叶斯信念网络。

 

一 贝叶斯定理

考虑两队之间的足球比赛:队0和队1.假设65%的比赛对0胜出,剩余的比赛队1胜出。队0获胜的比赛中只有30%是队1的主成,而对1获胜的比赛中75%是主场获胜。如果下一场比赛在队1的主场进行,哪一支球队最有可能获胜?

这个问题可以有著名的贝叶斯定理来解答。为了完整起见,我们先讲一下概率论中的一些基本定义。

假设X,Y是一对随机变量,他们的联合概率P(X=x,Y=y)是指X取值x且Y取值y的概率,条件概率是指一个随机变量在另一个随机变量取值已知的情况下取某一个特定值的概率。例如,条件概率P(Y=y|X=x)是指在变量X取值x的情况下,变量Y取值y的概率。X和Y的联合概率和条件概率满足如下关系,即贝叶斯定理:

1

贝叶斯定理可以用来解决本节开头的预测问题。为表述方便,用随机变量X代表东道主,随机变量Y代表比赛的胜利者。X和Y可在集合{0,1}中取值。那么问题中给出的信息可总结如下:

队0取胜的概率是P(Y=0)=0.65,

队1取胜的概率是P(Y=1)=1-P(Y=0)=0.35

队1取胜时作为东道主的概率是P(X=1|Y=1)=0.75

队0取胜时队1作为东道主的概率是P(X=1|Y=0)=0.3

我们的目的是计算P(Y=1|X=1),即对1在主场获胜的概率,并与P(Y=0|X=1)比较。应用贝叶斯定理得到:2

其中,在第二行中应用了全概率公式,进一步,P(Y=0|X=1)=1-P(Y=1|X=1)=0.4262。因为P(Y=1|X=1)>P(Y=0|X=1),所以,队1更有机会赢得下一场比赛。

 

2 贝叶斯定理在分类中的应用

在描述贝叶斯定理怎样应用于分类之前,我们先从统计学的角度对分类问题加以形式化。设X表示属性集,Y表示变量。如果类变量和属性之间的关系不确定,那么我们可以把X和Y看作随机变量,用P(Y|X)以概率的方式捕捉二者之间的关系。这个条件概率又称为Y的后验概率,与之相对地,P(Y)称为Y的先验概率。

在训练阶段,我们要根据从训练数据中收集的信息,对X和Y的每一种组合学习后研概率P(Y|X)。知道这些概率后,通过找出使后研概率P(Y’|X’)最大的类Y’可以对测试记录X’进行分类。为了解释这种方法,考虑任务:预测一个贷款者是否会拖欠还款。下图中的训练集有如下属性:有房、婚姻状况和年收入。拖欠还款的贷款者属于类yes,还清贷款的贷款者属于类no。

假设给定一侧是记录有如下属性集:X=(有房=否,婚姻状况=已婚,年收入=$120k)。要分类该记录,我们需要利用训练数据中的可用信息计算后研概率P(yes|X)和P(no|X)。如果P(yes|X)>P(no|X),那么记录分类为yes,反之,分类为no。

tid 有房 婚姻状况 年收入 拖欠贷款
1 单身 125k
2 已婚 100k
3 单身 70k
4 已婚 120k
5 离异 95k
6 已婚 60k
7 离异 220k
8 单身 85k
9 已婚 75k
10 单身 90k

准确估计类标号和属性值得每一种可能组合的后研概率非常困难,因为即使属性数目不是很大,仍然需要很大的训练集。此时,贝叶斯定理很有用,因为它允许我们用先验概率P(Y)、类条件概率P(X|Y)和证据P(X)来表示后研概率:

3

在比较不同Y值的后研概率时,分母P(X)总是常熟,因此可以忽略。先验概率P(Y)可以通过计算训练集中属于每个类的训练记录所占的比例很容易估计。

在下一节中,我们对类条件概率P(X|Y)的估计,介绍两种贝叶斯分类的实现:朴素贝叶斯分类器和贝叶斯信念网络。