贝叶斯分类核心内容

1. 后验概率与贝叶斯公式

所谓后验概率,指的是从结果推原因的概率;而先验概率则是原因本身的概率。
贝叶斯公式就指后验概率用先验概率来表达的公式: P ( y | x ) = P ( y ) P ( x | y ) / P ( x )

2. 贝叶斯分类器

贝叶斯分类模型是最小化期望错分代价:min E x [ C ( h ( x ) | x ) ] ,其中 h ( x ) 是贝叶斯分类模型得到的结果, C 是代价函数。若代价函数是错分为1,正确分类为0,则目标函数变为:min E x ( 1 p ( h ( x ) | x ) ) ,等价于max E x p ( h ( x ) | x ) ,等价于对每个 x ,max p ( h ( x ) | x )
贝叶斯分类器不需要进行训练,其数据主要是用来估算概率值。由贝叶斯公式可以从历史数据中计算 p ( y i ) p ( x | y i ) ,计算得到所有的 p ( y i | x ) ,然后选取值最大的一个 y i 作为 h ( x ) 即可。
为什么不能直接从历史数据估算 p ( y i | x ) 呢?因为一般来说标签集合类别很少,而样本集合类别非常多,因此每个标签里面数据很多,而每个样本里面数据往往比较少,不足以作为概率估计。

2.1. 朴素贝叶斯

朴素贝叶斯(Naive Bayes,NB)假设 x 的特征相互之间是独立的,这样 P ( x | y i ) 就可以拆分为每个特征的乘积: P ( x | y i ) = P ( x 1 | y i ) P ( x 2 | y i ) . . . P ( x n | y i ) ,这样就把问题拆解为不同分类结果下每个特征的概率分布估计了,这一般是可以用历史数据来估算的。
具体来说,假设训练数据分别为 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) ,要求预测 x j 对应的 y ,其中 x 有很多分量,可能取值非常多。计算过程为:
1)计算各个类别的先验概率并取对数: l o g ( p ( y i ) ) = l o g ( n i ) l o g ( n ) ,其中 n i y i 出现的次数。
2)计算各类别下各特征属性条件概率并取对数:
l o g ( p ( x k j | y i ) ) = l o g ( n k i j ) l o g ( n i ) ,其中 n k i j ( x k j , y i ) 出现次数, k 为分量下标
3)将 x j 对应的各分量的概率对数相加。现在假设x有2个分量:
l o g ( p ( x j | y i ) p ( y i ) ) = l o g ( n 1 j i ) + l o g ( n 2 j i ) l o g ( n i ) l o g ( n )
4)目标函数为 m a x i p ( y i | x j ) ,等价于 m a x i ( l o g ( n 1 j i ) + l o g ( n 2 j i ) l o g ( n i ) )

2.2. 半朴素贝叶斯

最简单的存在依赖的情形,是独依赖估计(One-Dependent Estimator,ODE),如果所有属性都依赖于同一属性(super parent超父),则称为SPODE。
TAN(Tree Augmented naive Bayes),首先计算所有的两两属性联合概率,然后计算其中的最大带权生成树。

2.3. 贝叶斯网

使用有向无环图(Directed Acyclic Graph,DAG)表示属性之间的关系,然后用条件概率表(Conditional Probability Table,CPT)表示属性之间的联合关系(每一条边有一个概率表)。
通过贝叶斯网可以进行属性之间的推断,即由一部分属性推断另一部分属性,使用吉布斯采样算法(相当去随机漫步),在属性之间进行概率转移,统计一定转移次数之后取得目标属性的次数。

2.4. 隐变量问题

EM算法(Expectation-Maximization)用来处理属性值缺失的隐变量问题。简单来说,就是初始化模型参数,然后推断隐变量的值,然后用推断的值重新估计模型参数,来回往复直至收敛。

猜你喜欢

转载自blog.csdn.net/kittyzc/article/details/82015351