O.r*_*rka 9 python classification machine-learning feature-selection scikit-learn
是否有任何特征选择方法Scikit-Learn(或一般算法)给出属性能力/预测能力/重要性的权重来预测特定目标? 例如,对from sklearn.datasets import load_iris4个属性权重中的每一个进行排序,以分别预测3种虹膜种类,但对于更复杂的数据集w/~1k-10k属性.
我寻找的东西类似于feature_importances_从RandomForestClassifier.但是,RandomForestClassifer为整个预测过程的每个属性赋予权重.权重不需要加起来,但我想找到一种方法将特定属性子集与特定目标相关联.
首先,我尝试"过度拟合"模型以丰富特定目标,但结果似乎在目标之间没有太大变化.其次,我尝试通过找出哪些属性具有最大变化但不直接转化为预测能力来进行排序路线.第三,我尝试了稀疏模型,但遇到了与使用相同的问题feature_importances_.
指向完成此操作的示例或教程的链接就足够了.可能是关于如何在随机森林中遍历决策树并存储可预测特定目标的节点的教程.
单一目标
大多数模型都不是黑匣子,因此如果您对特定目标感兴趣,您可以简单地查看模型的系数并手动进行模型计算,以了解模型是如何得出其输出的。例如:
基于此类分析,您可以决定您认为最重要的输入。
敏感性分析
也许更有用的是查看当输入值发生变化时模型输出如何变化。这将使您更深入地了解输入的重要性和敏感性。这个概念称为敏感性分析。对于大多数方法,您可以简单地对输入进行一些随机采样并分析输出。
这对于特征选择很有用,因为不敏感的输入是修剪的候选者。
回顾模型
敏感性分析基于扰动模型输入的想法,以了解模型如何得出其输出。另一种看待事物的方式是将输出和推理倒推到模型中,最后是输入。这样的方法是:
有关随机森林的具体讨论,请查看此问答。
可视化技术可以提供帮助。可以提供洞察力的神经网络工具示例: http: //playground.tensorflow.org/
一般特征重要性
对于一般功能的重要性,即所有目标,您可以查看scikit-learn 文档的这一部分。
此处的示例展示了如何使用特征评分的 F 检验进行单变量特征选择。
| 归档时间: |
|
| 查看次数: |
263 次 |
| 最近记录: |