首页 > 解决方案 > 当数据不平衡时,将数据拆分为测试训练数据

问题描述

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

数据看起来像:

abcd 标签

1 0 0 1 1

1 1 1 0 1

…………………………………………………………………………………………………………

1 0 0 1 0。

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

标签: pythonmachine-learning

解决方案


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


推荐阅读