python - 当数据不平衡时,将数据拆分为测试训练数据
问题描述
我有一个不平衡的数据集,它有两个分类值。一个有大约 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
解决方案
根据您提供的信息,我建议您对数据进行下采样/过采样,以便为两个类赋予相同的权重,然后根据需要拆分数据集。看看这个库,它公开了不同的算法来处理 python 中的不平衡数据
推荐阅读
- laravel - Laravel eloquont 查询需要很长时间才能获取数据
- python - 如何求递归函数的时间复杂度?
- prettier - Neovim 打包程序 - 无法通过文件类型加载 vim-prettier
- apache-spark - 在 Spark 独立模式下运行外部 shuffle 服务
- mysql - Rails mysql Access denied for user 'root'@'localhost' (using password: NO) 错误
- python - 如何对句子中的指定主题使用 Hugging Face 情感分析?
- c# - EFCore 执行存储过程并将结果 SELECT 语句作为数据表或列表获取