数学基础:
数学基础是贝叶斯决策论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 θ∗=argmaxθi=1∏Np(xi∣θ)
极大后验概率估计(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 θMAP=argmaxθ[lnp(θ)+i=1∏Np(xi∣θ)]
可以看出极大后验概率多了一个lnp( θ ) \theta) θ),也就是增加了先验。
朴素贝叶斯(Naive Bayes)
分为2个部分:朴素对应着独立性假设,每个样本都认为是相互独立得,贝叶斯对应着后验概率最大化。
贝叶斯估计在估计参数时使用了极大似然估计获取先验概率,做决策时使用得时MAP估计。
算法描述如下:
简单理解(X—>Y): 通过训练集数据,先计算出Y得分布概率,这个就是计算先验概率,然后计算条件概率,也就是在已知分类Y得情况下为 X ( j ) X^{(j)} X(j)的概率,就是X的某个属性的概率,根据先验概率和条件概率,可以求出 x ∗ x^{*} x∗的发生概率,在哪种分类y= c k c_k ck下的概率最大, x ∗ x^{*} x∗就是哪种分类。
以下是西瓜书的描述,参考一下:
我们需要求的是使之最大的y=
c
k
c_k
ck,也就是哪个分类使之最大:
分为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]