模型用了哪个特征
拟合之后,你想知道模型依赖哪些特征,以检查它是否合理并去掉无用的部分。树模型会给出不纯度重要性:每个特征产生的切分增益总和,除以所有特征的总和。它免费,但偏向取值很多的特征,而且是在训练数据上度量的,所以噪声特征也可能显得重要。置换重要性更诚实:取一个已拟合的模型和一组留出数据,打乱某一个特征的取值(这会切断它与目标的联系),记录得分下降了多少:重要性j=sbase−sshuffled,j。多次重复打乱并取平均。
Ij=s0−R1r=1∑Rsj(r),g~j=∑kgkgj(1) 有两点需要注意。第一,相关的特征会分摊功劳:如果两列携带相同的信息,打乱其中一列,另一列仍能工作,于是两者都显得不重要。要把这样的特征分组或去掉一个。第二,重要性描述的是模型,不是现实世界:对一个糟糕模型重要的特征并不因此成为收益的原因。对于横截面数据,要在每个月内部打乱特征,这样打乱保持了当月的水平,只破坏股票间的排序。还要报告多次重复的离散程度,因为重要性很小而离散更大,就是噪声。
五次打乱与真实模型某模型得分
0.80。把一个特征打乱五次后,得分为
0.62,0.66,0.64,0.65,0.68,均值
0.65、标准差
0.022,所以重要性为
0.80−0.65=0.15。若一棵树的切分增益为
0.163,0.05,0.02,不纯度占比就是
0.70,0.21,0.09。一个特征的两份完全相同的副本,各自的重要性都约为
0,因为另一份会顶上。在真实的月度股票面板上用 ridge 模型,滚动前向信息系数为
0.0327。在每个月内打乱波动率,它降到约
0(重要性
0.033);打乱动量只使它变化
−0.003,打乱上月收益只变化
−0.003。这个模型的全部信号就是波动率特征。
- 打乱再打分:重要性就是打乱一个特征后留出数据得分下降的幅度。
- 相关的“双胞胎”会互相掩盖:读数字之前先分组或去掉一个。
- 重要性针对的是模型:它只是一种检查,并不证明某个特征导致了收益。
实验:评分内容
- 打乱得分的均值10 分
- 置换重要性15 分
- 重复的离散程度15 分
- 不纯度占比10 分
- 孪生特征10 分
- 该相信哪种重要性10 分
- 置换流程10 分
- 对模型重要,对收益不一定20 分