我有一个二元分类问题,涉及大约30个特征和一个最终的通过/失败标签。我首先训练了一个分类器,以便能够预测新实例是通过还是失败,但现在我想更深入地了解其中的原因。
如何基于这些特征来分析这些项目为何通过或失败?我希望能够展示最重要的影响因素,并为每个因素关联一个权重。复杂的是,我的特征之间不一定是统计独立的。我应该研究哪些方法,哪些关键词能指引我找到正确的方向?
一些初步的想法:使用决策树分类器(ID3或CART),并查看树的顶部来找出最重要的因素。我不确定这种方法的稳健性,而且我还不清楚如何为每个因素分配重要性(你只会得到一个有序列表)。
回答:
如果我正确理解了你的目标,你可能需要考虑使用随机森林模型。随机森林的一个优势是它自然地为特征提供了重要性,这是由算法的工作方式决定的。
在Python的scikit-learn中,可以查看sklearn.ensemble.RandomForestClassifier()
。feature_importances_
会返回你所寻找的“权重”。请查看文档中的示例。
或者,你可以使用R语言的randomForest包。在构建模型后,你可以使用importance()
来提取特征重要性值。