Как сказал Майкл Гарднер, train_test_split
- это функция, которую вы ищете.
По умолчанию она будет делиться случайным образом, но вы можете использовать stratify
, чтобы сообщить ей, что вы хотите такое же соотношениедля вашего столбца класса в наборах данных train и test.
Работает так:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
data,
target,
test_size = 0.3,
stratify=data[['your_column']]
)