我有一个包含约30个特征的数据集,我想找出哪些特征对结果贡献最大。我有5种算法:
我了解了很多有关信息获取技术的知识,看来它与所使用的机器学习算法无关。就像预处理技术一样。
接下来的问题是,最佳实践是对每种算法独立地执行功能重要性,还是仅使用信息增益。如果是,每种技术使用什么?
答案 0 :(得分:2)
首先,值得强调的是,即使是单独的算法,也必须仅基于训练数据执行特征选择。在测试过程中,然后从测试数据集中选择相同的特征。
想到的一些方法:
特定分类器可以通过提供有关功能/预测变量的额外信息来帮助解释,
我有一个包含约30个特征的数据集,我想找出哪些特征对结果贡献最大。
这取决于算法。如果您有5种算法,除非您在分类之前执行了特征选择(例如,使用互信息),否则您可能会得到5个略有不同的答案。原因之一是随机森林和神经网络会发现非线性关系,而逻辑回归则不会。此外,朴素贝叶斯对互动视而不见。 因此,除非您的研究明确涉及这5个模型,否则我宁愿选择一个模型并继续进行研究。
答案 1 :(得分:1)
由于您的目的是对正在发生的事情有一些直觉,因此您可以执行以下操作:
为了简单起见,让我们从随机森林开始,但是您也可以使用其他算法来做到这一点。首先,您需要建立一个好的模型。好的意思是您需要满意其性能,并且应该稳健,这意味着您应该使用验证和/或测试集。这些要点非常重要,因为我们将分析模型如何做出决策,因此,如果模型不好,您将获得直觉。
建立模型之后,您可以在两个层次上进行分析:对于整个数据集(了解您的过程),或对于给定的预测。对于此任务,我建议您看一下SHAP library,它计算出可用于两个人偶的特征贡献(即特征在多大程度上影响了我的分类器的预测)。
有关此过程和更多工具的详细说明,您可以快速浏览。machine learning serie上的一门极好的课程,其中2/3/4/5的课程与该主题有关。
希望有帮助!