Я только что видел этот ответ на SO , который показывает, как разделить данные, используя numpy.
Предположим, что мы собираемся разделить их на 0.8
, 0.1
, 0.1
для обучения, тестирования и проверки, соответственно, вы сделаете это следующим образом:
train, test, val = np.split(df, [int(.8 * len(df)), int(.9 * len(df))])
Мне интересно знать, как я мог бы рассмотреть расслоение при разделении данных с использованием этой методологии.
Расслоение - это разделение данных с сохранением в данных априорных значений каждого класса.То есть, если вы собираетесь взять 0.8
за тренировочный набор, вы берете 0,8 из каждого класса, который у вас есть .То же самое для теста и обучения.
Я попытался сначала сгруппировать данные по классам, используя:
grouped_df = df.groupby(class_col_name, group_keys=False)
Но это не показало правильных результатов.
Примечание: я знаком с train_test_split