我有一个包含大约30个功能的数据集,我想知道哪些功能对结果贡献最大。我有5个算法:
我阅读了很多关于信息增益技术的内容,它似乎与所使用的机器学习算法无关。它就像一个预处理技术。
我的问题如下,最佳做法是依赖于每个算法执行特征重要性或仅使用信息增益。如果是,每种技术使用的技术是什么?
首先,值得强调的是,您必须仅根据训练数据执行特征选择,即使它是单独的算法。在测试期间,您可以从测试数据集中选择相同的功能。
我想到的一些方法:
特定的分类器可以通过提供有关功能/预测变量的额外信息来帮助解释,从头到尾:
我有一个包含大约30个功能的数据集,我想知道哪些功能对结果贡献最大。
这取决于算法。如果您有5种算法,除非您在分类之前执行特征选择(例如使用互信息),否则您可能会得到5个略有不同的答案。一个原因是随机森林和神经网络将获得非线性关系,而逻辑回归则不会。此外,Naive Bayes对交互视而不见。因此,除非您的研究明确涉及这5个模型,否则我宁愿选择一个模型并继续进行。
既然你的目的是为了对正在发生的事情有所了解,那么你可以做以下事情:
让我们从Random Forest开始,为简单起见,但您也可以使用其他算法。首先,你需要建立一个好的模型。很好,你需要对它的性能感到满意,它应该是Robust,这意味着你应该使用验证和/或测试集。这些要点非常重要,因为我们将分析模型如何做出决策,因此如果模型不好,您将获得糟糕的直觉。
构建模型后,您可以在两个级别进行分析:对于整个数据集(了解您的过程),或对于给定的预测。对于这项任务,我建议你看一下SHAP library,它可以计算特征贡献(即一个特征对我的分类器的预测有多大影响),可以用于两个瞳孔。
有关此过程和更多工具的详细说明,您可以在machine learning serie上查看fast.ai优秀课程,其中有关于此主题的课程2/3/4/5。
希望能帮助到你!