机器学习:贝叶斯分类器,朴素贝叶斯,拉普拉斯平滑

数学基础:

数学基础是贝叶斯决策论Bayesian DecisionTheory,和传统统计学概率定义不同。

频率学派认为频率是是自然属性,客观存在的。

贝叶斯学派,从观察这出发,事物的客观随机性只是观察者不知道结果,也就是观察者的知识不完备,对于知情者而言,事物没有随机性,随机性的根源不是来源于事物,而是来自于观察者对事物的只是状态。

从这个角度而言,贝叶斯学派是唯心主义,频率学派是唯物主义。

贝叶斯决策论Bayesian DecisionTheory

贝叶斯决策是在某个先验分布下使得平均风险最小得决策。

参数估计

分为极大似然估计(Maximum Likelihood Estimate)和极大后验概率估计(Maximum a posteriori estimation)

极大似然估计(Maximum Likelihood Estimate),使所有得样本发生得概率最大,这个不考虑先验概率得影响,属于频率派得做法.

θ = a r g m a x θ i = 1 N p ( x i θ ) \theta^* = argmax_{\theta} \quad \prod_{i=1}^N p(x_i|\theta)\quad

极大后验概率估计(Maximum a posteriori estimation),为贝叶斯学派得做法,加入了后验概率概念,p( θ \theta |X)为参数 θ \theta 在样本X下得真实得出现概率,p( θ \theta )为先验概率。

θ M A P = a r g m a x θ [ l n p ( θ ) + i = 1 N p ( x i θ ) ] \theta_{MAP} = argmax_{\theta} \quad [lnp(\theta) + \prod_{i=1}^N p(x_i|\theta)]\quad

可以看出极大后验概率多了一个lnp( θ ) \theta) ,也就是增加了先验。

朴素贝叶斯(Naive Bayes)

分为2个部分:朴素对应着独立性假设,每个样本都认为是相互独立得,贝叶斯对应着后验概率最大化。

贝叶斯估计在估计参数时使用了极大似然估计获取先验概率,做决策时使用得时MAP估计。

算法描述如下:

在这里插入图片描述

简单理解(X—>Y): 通过训练集数据,先计算出Y得分布概率,这个就是计算先验概率,然后计算条件概率,也就是在已知分类Y得情况下为 X ( j ) X^{(j)} 的概率,就是X的某个属性的概率,根据先验概率和条件概率,可以求出 x x^{*} 的发生概率,在哪种分类y= c k c_k 下的概率最大, x x^{*} 就是哪种分类。

以下是西瓜书的描述,参考一下:
在这里插入图片描述
我们需要求的是使之最大的y= c k c_k ,也就是哪个分类使之最大:
在这里插入图片描述
在这里插入图片描述

分为2步:

使用ML估计导出模型的具体参数:先验概率,条件概率
使用MAP估计作为模型的决策,输出使后验概率最大化的类别。

拉普拉斯平滑

在这里插入图片描述
λ \lambda 为0时极大似然估计, λ \lambda 为1为拉普拉斯平滑,K为x的第k个属性可能的取值数目

    # 核心数组,记录第i类数据的个数,cat为category
    self._cat_counter = None
    # 定义计算先验概率的函数,lb为各个估计中的平滑项lamda
    # lb的默认值为1,也就是默认使用拉普拉斯平滑
    def get_prior_probability(self,lb =1):
        return [(_c_num + lb) / (len(self._y) + lb*len(self._cat_counter)) for _c_num in self._cat_counter]
    

猜你喜欢

转载自blog.csdn.net/weixin_40759186/article/details/85250792