我有时间序列数据,每个样本或多或少都有200个特征,我使用递归神经网络进行二值分类任务。分类之后,我想知道哪些特性对目标贡献最大(比如target=1)。有什么建议吗?谢谢
发布于 2020-09-16 12:48:02
你可以使用排列的重要性。
....Breiman和Cutler也描述了置换的重要性,它度量一个特性的重要性如下。记录基线精度(分类器)或R2评分(回归),通过验证集或袋外样本通过随机森林。对单个预测器特征的列值进行置换,然后将所有测试样本传回随机森林,并重新计算精度或R。
检查单个类的重要性,即0/1
推断出同样的情况,以检查增加的是假阳性还是假阴性。
请阅读小心默认的随机林输入以获得更多解释。
页面上的其他引文很少-
任何机器学习模型都可以使用排列列的策略来计算特征的重要性。这一事实在学术界和工业界被低估了. 在计算上,置换机制比平均减少杂质机制要昂贵得多,但结果更可靠。置换重要性策略不需要在排列每一列后重新训练模型,我们只需通过已训练的模型重新运行受干扰的测试样本即可。
发布于 2020-09-16 14:00:32
另一个可能的解决方案是使用L1正则化。拉索回归可以作为特征选择的代理:由于L1范数的导数是一个阶跃函数,因此在训练模型时,与给定特征相关的权重将从零到接近,这取决于它们对预测输出的重要性。
此外,sklearn有一种方法sklearn.feature_selection.SelectFromModel,允许您在模型经过培训后执行特征选择。如果您在Lasso回归器上运行此方法,并将方法结果与模型权重进行比较,您将能够看到权重大小与所选特征之间的相关性。
https://datascience.stackexchange.com/questions/81796
复制相似问题