当数据不平衡时,将数据分成测试列车数据

时间:2018-05-28 15:43:44

标签: python machine-learning

我有一个不平衡的数据集,它有两个分类值。一个具有大约500个特定类的值,而另一个只有一个单个数据点与另一个类。现在我想将这些数据分成80-20比率的测试列。但由于这是不平衡的,我希望在测试和训练数据中都有第二类。 我尝试使用sklearn中的test-train-split,但是它并没有给出它们中的第二类数据。我甚至尝试过分层洗牌拆分,但这也没有像我想的那样提供数据。 有没有什么办法可以从数据框中分割数据,迫使测试数据集和训练数据集都有单个数据点?我是python的新手,因此难以搞清楚。

数据如下:

a b c d label

1 0 0 1 1

1 1 1 0 1

.......... ........

1 0 0 1 0。

标签只有1和0,但0只是一个观察,但500个数据点的其余部分标签为1

2 个答案:

答案 0 :(得分:0)

根据您提供的信息,我建议您对数据进行向下/过度采样,以便对两个类别赋予相同的权重,然后根据需要拆分数据集。看看这个library暴露不同的算法来处理python中的不平衡数据

答案 1 :(得分:0)

尝试进行过采样,因为数据点数量较少。或者你可以使用神经网络,最好是MLP,这对于不平衡的数据很好。