它由日本统计学家赤池弘次在1974年提出,是统计学、数据分析以及数据科学中常用的模型选择工具之一。
AIC基于信息论,旨在找到最能解释数据的模型,同时考虑模型复杂性,以防止过度拟合。
AIC原理
安装toad包
toad.metrics.AIC函数定义
toad.metrics.AIC函数实例

AIC基于信息理论,特别是关于信息熵和模型选择的理论。
其核心思想是选择能够以最少的信息量描述数据的模型,即衡量模型在解释数据时丢失的信息量。
AIC的计算公式为:
AIC = 2k - 2ln(L)
其中:
- k 是模型中参数个数。
- L 是模型的最大似然值。

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

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 toad
import 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
# 计算 AIC
aic_value = toad.metrics.AIC(y_pred, y, k)
print("AIC value:", aic_value)
得到结果:
AIC value: 5.195674001511241
把该结果记为模型A的AIC值。为了对比,我们调整一下预测值,当成模型B的预测结果,计算模型B的AIC值,代码如下:
import toad
import 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
# 计算 AIC
aic_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实现),持续更新。。。
不同工作年限风控建模岗薪资水平如何?招聘最看重面试者什么能力?

部分群限时免费加
19967879837
添加微信号、手机号