Python 多类分类

Python 多类分类,python,machine-learning,classification,xgboost,Python,Machine Learning,Classification,Xgboost,我有一个多类分类问题,3类的匿名特征。1类与其他类不同,但我在将2类与0类分开时遇到问题。2类中的大多数被预测为0类 因为这两个类之间存在不平衡3:1。我尝试给类2赋予权重,但模型只是正确地将一些类2分类,但它现在也将类0预测为类2,在没有赋予权重的情况下,给了我同样的准确性 那么,关于如何区分这两个类有什么想法吗?我尝试了NN,oneVSrest,也尝试了一些叠加,但没有明显的效果。我以前常常面对不平衡的数据集。我使用了sklearn的重采样功能,你可以从中了解更多。该函数将从少数随机复制到上

我有一个多类分类问题,3类的匿名特征。1类与其他类不同,但我在将2类与0类分开时遇到问题。2类中的大多数被预测为0类

因为这两个类之间存在不平衡3:1。我尝试给类2赋予权重,但模型只是正确地将一些类2分类,但它现在也将类0预测为类2,在没有赋予权重的情况下,给了我同样的准确性


那么,关于如何区分这两个类有什么想法吗?我尝试了NN,oneVSrest,也尝试了一些叠加,但没有明显的效果。

我以前常常面对不平衡的数据集。我使用了sklearn的重采样功能,你可以从中了解更多。该函数将从少数随机复制到上采样。根据我的经验,这种方法只是稍微改进了模型,我认为你应该在互联网上找到数据添加到你的数据集中

我只是尝试了上下采样,但似乎效果不太好。该模型只是随机预测0和2,预测准确率为50%。现在我认为问题是这两个类别不可分离,而且匿名化的特征也没有帮助。有没有办法正确预测某些类别2?是的,偏见的问题肯定是因为没有足够的数据让它学习。如果一个新的数据是模型以前从未见过的,它将偏向数据中的少数群体。老实说,我通过不断添加我在互联网上发现的新数据来解决这个问题,而不仅仅是对旧数据进行上采样或下采样。在您的情况下,我认为您应该向上采样,而不是向下采样,因为您需要更多具有少数标签的数据。如果向上采样不起作用,请尝试深随机林。我听说这是一个很好的不平衡数据集模型,因为它的参数会自动转换。没有数据样本,更详细的描述很难说。不管怎么说,这个问题更适合你