【发布时间】:2020-09-12 01:22:46
【问题描述】:
我有一个包含大约 25000 行和 32 列的数据框。我想将此数据集拆分为训练和测试测试(80/20)。但是,有些列是 1-hot 编码的。现在,在拆分数据时,我希望将每个 1-hot 编码列的相同比例放入训练集中。
col_1 col_2 .. col_31 col_32
1 0 0 0
1 0 0 0
...
0 0 1 0
0 0 1 0
所以在训练集中应该有 80% 的行每列等于 1。 我从 Sci-kit learn 中查看了不同的拆分方法,但无法找到一种可以满足我需求的方法。有没有人有解决方案或能够帮助我?
【问题讨论】:
-
据我了解,可以使用sklearn的
train_test_split函数中的stratify参数来获取分层样本(比例)。 -
@dheinz 我不确定如何在选定的几列上使用
stratify -
检查这是否有帮助 - [链接] (*.com/questions/45516424/…)
标签: python pandas scikit-learn