当前位置:   article > 正文

神经网络模型特征重要性-谷歌解决方案

神经网络特征重要性计算

背景

树模型的特征重要性是相对容易计算出来的,那么对于神经网络我们该如何得到其特征重要性呢?网上的方法包括permutation importance, null importance, 随机对特征进行mask等方法,本文要介绍的是牛津大学和谷歌提出的基于Gated Residual Networks (GRN) and Variable Selection Networks (VSN)的特征重要性计算方法。

使用GRN计算特征重要性的基本逻辑

1

提供特征列和target列,特征根据数据类型指定为数值型或离散型;

2

将数据划分为验证集和训练集;

3

在训练集上,根据第一步提供的列定义,对数值型特征分别进行归一化,对离散型特征进行embedding(相当于给每一列离散特征创建一个类别词典),然后将两者拼接后传给GRN模块,计算得到每个特征的权重,再将权重和前面拼接后的结果按元素相乘,最后接全连接层,获得预测结果,与真实值计算loss,迭代训练。

其中,GRN模块获取拼接输入后,分成两路,其中一路经过多层变换最后额外使用sigmoid激活函数作为“门”对变换结果进行选择性加权,另一路则作为residual connection直接与前者的输出相加,起到防止过拟合的作用。

4

取验证集得分最优的情况下各个特征的权重为特征的重要性。

b92a8b595ea43eaafa9667a9c0eba688.png

使用案例

我们的开源项目AutoX把GRN计算特征重要性以及特征选择的函数进行了封装:

使用GRN_feature_selection进行特征重要性计算:

  1. from autox.autox_competition.feature_selection import GRN_feature_selection
  2. GRN_feature_selection = GRN_feature_selection()
  3. column_definition = {
  4. "cat":['investment_id'],
  5. "num":[]
  6. }
  7. for i in range(300):
  8. column_definition['num'].append((f'f_{i}'))
  9. GRN_feature_selection.fit(train[used], train[target], column_definition)
  10. # Train[used]是完成了包含所有特征的dataframe
  11. # Train[target]是标签列
  12. # column_definition中指定了特征的类型(特征属于类别型变量还是连续型变量)

查看所有特征的重要性:

GRN_feature_selection.feature2weight

aa078d1ea2e4bf01ddb261479f0d8c1c.png

选择top_k重要性的特征:

  1. train_select = GRN_feature_selection.transform(train[used], top_k=20)
  2. test_select = GRN_feature_selection.transform(test[used], top_k=20)

ed08fe4c5ac05a66d78184c6765a197f.png

完整案例地址

https://www.kaggle.com/code/hengwdai/grn-featureselection-autox

开源项目地址

https://github.com/4paradigm/AutoX

参考资料

Lim B, Arik S O, Loeff N, et al. Temporal fusion transformers for interpretable multi-horizon time series forecasting[J]. arXiv preprint arXiv:1912.09363, 2019.

 
 
 
 
 
 
 
 
 
 
  1. 往期精彩回顾
  2. 适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑
  3. AI基础下载机器学习交流qq群955171419,加入微信群请扫码:

3ad24c6c26c588d407acba93817092d4.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/591188
推荐阅读
相关标签
  

闽ICP备14008679号