干货|(含实例) 一文详解模型选择准则之BIC和AIC
最近在撰写笔记 【Sklearn源码学习笔记】(含官网样例解读)无监督学习之高斯混合模型 的过程中,官方Sklearn源码中有用BIC来估计高斯混合模型不同协方差矩阵和分量数下的得分,遂将BIC和AIC相关知识进行总结记录。关于我的更多学习笔记,欢迎您关注“武汉AI算法研习”公众号,本文作者微信comrliuyu。本文分三个部分“【BIC】”、“【AIC】”、“【Sklearn中bi...
最近在撰写笔记 【Sklearn源码学习笔记】(含官网样例解读)无监督学习之高斯混合模型 的过程中,官方Sklearn源码中有用BIC来估计高斯混合模型不同协方差矩阵和分量数下的得分,遂将BIC和AIC相关知识进行总结记录。
关于我的更多学习笔记,欢迎您关注“武汉AI算法研习”公众号,本文作者微信comrliuyu。
本文分三个部分“【BIC】”、“【AIC】”、“【Sklearn中bic公式】”来进行展开,总共阅读时间大约8分钟。
似然函数我们不陌生,在统计学中似然函数是种包含统计模型参数的函数,关于参数θ的似然函数L(θ|x)(在数值上)等于给定参数θ后变量X的概率:L(θ|x)=P(X=x|θ),似然函数在参数估计中扮演着重要的角色。实际过程中假定某个变量服从某个分布,这个分布具有未知参数需要确定,我们通过极大似然估计可以得到最终模型的参数,这就完成了概率模型的训练(实际上概率模型的训练过程就是参数估计)。
然后实际上我们仍然会得到针对训练数据的多个较为合理的模型,比如混合高斯模型中不同的协方差矩阵和不同的分量数会产生不同的结果,如何在这些模型中选择最优的模型呢?
模型选择问题就是需要在模型复杂性和模型对数据集描述能力(即似然函数)之间寻找一个平衡,而常用的模型选择方法就是BIC和AIC,模型选择中AIC和BIC值均是越小越好。在BIC和AIC描述过程中,当训练数据足够多时,可以不断提高模型精度,即是似然函数会越大,模型对数据集的描述能力越强,而复杂性方面往往体现在参数数量,即参数越少越好,通过下式就可以理解AIC和BIC公式的原理,实际运用中BIC的运用较多。
【BIC:Bayesian Information Criterion 】
BIC(贝叶斯信息准则)用于实际中选择最优的模型,下式中k为模型参数个数,n为样本数量,L为似然函数。kln(n)惩罚项在维数过大且训练样本数据相对较少的情况下,可以有效避免出现维度灾难现象。BIC中对于模型参数个数的惩罚项因为加入了ln(n)考虑了样本数量,比AIC的大,当样本数量过多时,可以避免模型精度过高造成模型复杂度过高。
【AIC:Akaike Information Criterion】
AIC(赤池信息准则)建立在信息熵的基础上,是用来衡量统计模型拟合优良性的一种指标,计算公式见下,式中K是模型参数个数,L是似然函数,理论上AIC值越小的模型越好。实际中我们对模型进行选择时,当两个模型似然函数差异不显著时,下式中第一项模型参数个数起决定作用,即模型复杂度越小的模型越优。
【Sklearn中bic公式】
下代码中X为输入样本,其中self.score(x)计算得到平均最大似然函数值,X.shaper[0] 表样本数。
def bic(self, X):
return (-2 * self.score(X) * X.shape[0] +
self._n_parameters() * np.log(X.shape[0]))
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)