定价用的前馈神经网络:嵌入层、早停和 GLM 的比较

用神经网络定出险频率(或案均、纯保费),分类变量用嵌入层还是独热编码?和 GLM 比,测试集上好多少?

SOA PACAS MAS-IIIFoA SP8
对过的标准答案
3 条
覆盖的考试公式
1 个
参数
11 个
开源库
1 个

01当场运行

改一个参数,当场重算

正在用默认参数运行,计算量大的方法最多要 20 秒。

04出处和说明

公式从哪里来,有什么限制

列出参考的教材、论文和考试公式条目。方法的限制和实现上的说明也写在这里。

参考

  • Noll、Salzmann、Wüthrich (2018) Case Study: French Motor Third-Party Liability Claims(SSRN 3164764)第 5 节 神经网络
  • Wüthrich、Merz:Statistical Foundations of Actuarial Learning and its Applications(2023)7.4 平衡性,7.5 嵌入层,第 7.4.4 节 CANN
  • Wüthrich (2020) Bias regularization in neural network models for general insurance pricing, European Actuarial Journal 10

覆盖的考试公式

  • SML-011神经网络(单层、多层、softmax、交叉熵、梯度下降)MAS-II

公式条目按精算考试的公式表整理,编号和中文名是平台自己的。

这个方法算什么

在车险演示数据上训练对数连接的前馈网络:年龄 MinMax 缩放到 [−1, 1],车型、地区(可选区县)用嵌入层或独热编码,损失是泊松(伽马、Tweedie)偏差,全批量 Adam,训练集里分出 20% 作验证集早停。给出测试集上和 GLM 的比较、训练曲线、按年龄段的平均预测、嵌入向量,以及学习集上的平衡性(可选校正)。

说明和限制

  • 网络只用 numpy 实现(前向、反向传播、Adam),训练在汇总后的格子上(同一组特征取值的保单合在一起),和逐张保单训练是同一个损失。
  • 神经网络的结果依赖随机的初始值:换一个种子,测试集的偏差会有小的变化。实务上常把几个种子的预测平均(nagging)。
  • 早停取验证集损失最小的那一轮。早停后的网络一般不满足平衡性(学习集的预测合计 ≠ 实际合计),见 neural.balance_property。
  • 演示数据的频率有年龄的曲线和"18–24 岁 × 高性能车"的交互作用,网络能学到,所以测试集的偏差比 GLM 小。案均赔款是严格的乘法结构,GLM 本来就对,网络很难更好。

数据

看参数里选的数据:选平台的数据集时是真实数据或公开样例,填自己的数时只用输入的数。上面运行的输出里写明这一次用的是哪种。

开源库和版本

  • numpy2.4.6BSD-3-Clause数值计算