一文弄懂模型选择方法AIC原理和实现

AIC,即赤池信息准则(Akaike Information Criterion),是一种衡量统计模型拟合优良性的指标。

它由日本统计学家赤池弘次在1974年提出,是统计学、数据分析以及数据科学中常用的模型选择工具之一。

AIC基于信息论,旨在找到最能解释数据的模型,同时考虑模型复杂性,以防止过度拟合。

本文和你一起来探索AIC的原理和Python实现,让你以最短的时间掌握AIC。
本文目录
  1. AIC原理

  2. 安装toad包

  3. toad.metrics.AIC函数定义

  4. toad.metrics.AIC函数实例


一、AIC原理

AIC基于信息理论,特别是关于信息熵和模型选择的理论。

其核心思想是选择能够以最少的信息量描述数据的模型,即衡量模型在解释数据时丢失的信息量。

AIC的计算公式为:

AIC = 2k - 2ln(L)

其中:

- k 是模型中参数个数。

- L 是模型的最大似然值。

AIC值越小,即k越小或L越大,表示模型在拟合数据时既保持了较好的拟合度,又避免了过度复杂。
在多个模型中选择时,通常选择AIC值最小的模型作为最佳模型。
但是,AIC值仅在比较环境中才有意义,绝对AIC值并不能单独传达有关模型质量的信息。
即AIC不会提供有关“真实”模型的明确答案,而是提供候选模型之间的相对排名,这使得AIC成为需要应对模型选择复杂性的研究人员的宝贵工具。
在逐步回归算法中,常结合AIC,从多个变量中筛选出最佳的变量集合。
选择AIC值最小的模型作为最佳模型有疑问的小伙伴,可以看下:逻辑回归(logistics regression)原理一文中对极大似然函数描写的部分。


二、安装toad包

AIC是toad库下的函数,调用需先要安装toad包。打开cmd,安装语句如下:

pip install toad
若安装成功,会显示结果如下:


、toad.metrics.AIC函数定义

toad.metrics.AIC函数用于计算给定模型的AIC值,帮助在模型选择过程中评估不同模型的相对质量。

其基本调用语法如下:

import toad
toad.metrics.AIC(y_pred, y, k, llf=None)
y_pred模型的预测值,是模型根据输入特征对目标变量进行预测得到的结果,通常为数组或列表。
y实际观测值,即数据集中真实发生的目标变量的值。
k模型中参数数量,代表了模型中自由参数的个数,包括截距项。在模型选择时,AIC会对参数更多的模型进行惩罚,以避免过拟合
llf对数似然函数的结果,通常为浮点数。如提供该参数,函数将直接用该值来计算AIC。如未提供,函数将根据y_pred和y来计算对数似然值。
对数似然值是衡量模型拟合数据好坏的一个指标,通常通过对似然函数取自然对数得到。


四、toad.metric.AIC函数实例

接着来看下应用toad函数计算AIC值,具体代码如下:

import toadimport numpy as np
# 假设的预测值和实际观测值y_pred = np.array([2.5, 0.5, 2.1, 1.8, 1.0])y = np.array([3, 0, 2, 2, 1])
# 模型中的参数数量k = 2
# 计算 AICaic_value = toad.metrics.AIC(y_pred, y, k)print("AIC value:", aic_value)

得到结果:

AIC value: 5.195674001511241

把该结果记为模型A的AIC值。为了对比,我们调整一下预测值,当成模型B的预测结果,计算模型B的AIC值,代码如下:

import toadimport numpy as np
# 假设的预测值和实际观测值y_pred = np.array([2.5, 0.5, 1.8, 1.8, 1.0])y = np.array([3, 0, 2, 2, 1])
# 模型中的参数数量k = 2
# 计算 AICaic_value = toad.metrics.AIC(y_pred, y, k)print("AIC value:", aic_value)

得到结果:

AIC value: 5.089454350883344
可以发现模型B的AIC值小于模型A,而在多个模型中选择时,通常选择AIC值最小的模型作为最佳模型,即模型B要优于模型A。

至此,Python中应用toad.metrics.AIC函数已讲解完毕,如想了解更多建模内容,可以翻看公众号中“风控建模”模块相关文章。

往期回顾:
信贷风控架构一张图

变量筛选—特征包含信息量

一文弄懂卡方分箱的原理和应用

应用决策树生成【效果好】【非过拟合】的策略集

一文囊括风控模型搭建(原理+Python实现),持续更新。。。

不同工作年限风控建模岗薪资水平如何?招聘最看重面试者什么能力?

100天精通风控建模(原理+Python实现)——第32天:集成学习是什么?在风控建模中有哪些应用?


部分群限时免费加

19967879837

添加微信号、手机号

请使用浏览器的分享功能分享到微信等