我的数据集有两个类别。其中不感兴趣的类别占90%,感兴趣的类别约占10%。
我已经进行了重采样,不仅一次,而是创建了一批平衡的数据集(例如10个数据集)。然后通过多数投票来获得最终的预测结果。在比较了许多模型后,发现树模型给出了最佳结果。我还根据重要性得分挑选出了最重要的特征。
总体准确率还不错,达到了75%,但对于我感兴趣的类别的精度只有30%,这并不理想。如何优化目标类别的精度?我认为R语言中的ctree包背后的算法是针对整体准确率进行优化的。我也尝试了一类分类方法,如svm,但效果不好。顺便说一下,我同时使用了R和Python。但我没有找到任何与我的问题相关的包。我是否需要编写自己的树算法来优化感兴趣类别的精度?谢谢。
回答:
有很多模型可以让你对类别进行加权。这种方法通常比单纯的过采样更好,因为它直接改变了目标,而不是人为地欺骗模型过度重视。如果你使用Python,并且喜欢基于树的方法,scikit-learn中的随机森林具有类别加权功能,只要未达到所需的精度,就可以对少数类别进行加权。