You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取分类场景下Keras神经网络的特征重要性

二分类Keras神经网络特征重要性计算方法

首先先修正你代码里的一个常见错误:你当前代码中model=model.fit(...)会将原Keras模型对象覆盖为训练历史对象,后续无法调用模型做预测和重要性计算,需要将该行修改为history = model.fit(...),保留原模型对象。

针对你的二分类任务,可使用以下几种成熟的特征重要性计算方案:

  • 置换特征重要性(Permutation Feature Importance)
    该方法不依赖模型结构,和你的分类任务指标直接挂钩,结果稳定通用性最强。操作逻辑为:将模型切换到推理模式关闭Dropout后,依次打乱验证集中单个特征的取值顺序,其余特征保持不变,重新计算模型在修改后验证集上的分类指标(准确率、AUC等),指标下降幅度越大,对应特征的重要性越高。
    你可以直接用scikit-learn的PermutationImportance工具适配Keras模型,也可以自行编写打乱逻辑实现,实现成本极低。
  • 输入梯度/显著图法(Saliency Map)
    利用神经网络的可微特性,直接计算输入特征的微小变动对最终sigmoid输出的影响程度,梯度的绝对值越大,对应特征的重要性越高。你可以借助Keras的GradientTape接口实现:将输入特征作为可求导变量,正向传播得到预测输出后,反向求输出对输入特征的梯度,所有样本的梯度绝对值平均值即为全局特征重要性得分。
  • Deep SHAP值法
    针对深度学习模型优化的SHAP值实现,既可以输出单样本维度的特征贡献(说明该特征对当前样本判断为正/负类的影响方向和大小),也可以统计所有样本的特征贡献绝对值平均值得到全局重要性排序,可解释性最强,结果置信度高。
  • 权重近似计算法
    针对你使用的全连接网络结构可以做快速近似计算:取输入层到第一个Dense层的权重矩阵(维度为[输入特征数, 100]),将每个特征对应的100个权重的绝对值求和或取平均值,再结合后续层的权重传递系数做修正,即可得到近似的特征重要性得分。该方法计算速度最快,但因为ReLU激活存在非线性,结果准确度低于上述三种方法,适合做特征初筛。

注意:计算重要性前必须切换到模型推理模式,关闭你设置的0.99高比例Dropout,否则结果会出现极大的随机波动,没有参考价值。

内容的提问来源于stack exchange,提问作者Python

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 03:27:00