我有一个具有以下结构的数据框,数据(我的实际上更大了,但这只是出于说明目的):
a b c tag
A 3 2 4
B 2 1 3
A 5 3 3
A 4 3 2
B 2 4 3
A 3 5 2
B 4 1 1
C 2 3 1
C 1 3 4
B 5 2 4
我正在使用scikit-learn拆分数据:
train, test = train_test_split(data, test_size=test_size)
但是,我想找到一种方法来分割数据,以保证两组中每个标签至少有一行。对于示例数据集,这意味着要具有以下内容(当然,应改组):
火车
a b c tag
A 3 2 4
B 2 1 3
A 4 3 2
B 4 1 1
测试
similar but with the remaining elements (according to the proportion)
基本上,我希望两组都包含标签的整个范围/品种。
我先感谢所有帮助。
`
答案 0 :(得分:0)
我想这就是你的追求。
import numpy as np
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
有关此主题的更多信息,请参见下面的链接。
https://towardsdatascience.com/train-test-split-and-cross-validation-in-python-80b61beca4b6