我有一个包含大约20000行的数据框,里面有98个特征(所有特征都是数值型的),还有一个目标特征,其值为二元的:0和1。基本上有两个群体(第一个群体目标值为1 –50%–,第二个群体目标值为0 –50%–,数据是平衡的)。在分类问题中,我尝试根据数据预测目标值。因此,我实现了一个监督学习算法(例如,SVM)来预测目标值,并且能够获得大约0.95的准确率结果。这个结果让我意识到特征之间存在显著差异。那么,下一步,我需要知道哪些是导致这种差异的重要特征,以及在这两个群体之间量化这些特征差异的最佳方法是什么。有没有好的建议?
回答:
要按重要性对你的特征进行排序,你可以使用Weka及其强大的特征选择工具包。请查看这篇博客文章以获取更多信息和示例。顺便提一下,Weka也提供了SVM的实现。一旦你确定了重要的特征,你可以可视化它们在两个类别之间的差异,例如,通过绘制它们在各类别中的分布。Matplotlib有像hist
或boxplot
这样的工具来实现这一点。
如果你使用的是线性核的SVM,你可以使用其系数作为输入特征的直接决策权重: