Scikit BinaryClassification训练数据选择

时间:2017-12-29 17:29:33

标签: python machine-learning scikit-learn

我在具有100个属性的数据上训练BinaryClassifier,其中积极情景仅发生在800k项目的3%。在培训期间,我们是否需要包括积极因素和阴性实例?我猜测我们不应该因为结果只是二元,即如果模型是在正面训练,那么弱匹配意味着它是负面的。

如果我确实需要同时包含两者,那么pandas DataFrame的样本方法是否可靠?

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您正在询问如何处理不平衡的数据集,那么在该主题上有许多在线博客文章,例如: here。一种可能的方法来使用熊猫'样本方法是将weights参数设置为另一个类的频率,即正实例为0.97,负实例为0.03,从而通过过采样来纠正不平衡。

但是如果你说你理论上你可以在正面实例的分布上拟合一个模型,并且在测试过程中,将所有异常值标记为负实例 - 这是可能的,尽管不可取。这种方法肯定比从两个类中学习的方法表现更差。此外,像scikit-learn这样的二进制分类算法总是假设来自两个类的实例。

答案 1 :(得分:-1)

如果您正在训练二元分类器,则需要在训练数据集中有两个输出。

至少如果你想让你的分类器工作。

您拥有的是一个不平衡的数据集,以下是解决此问题的一些方法:

https://machinelearningmastery.com/tactics-to-combat-imbalanced-classes-in-your-machine-learning-dataset/