Приносим извинения за сообщение о кросс-стеке, я не был уверен, что это больше подходит для stackoverflow или для перекрестной проверки. Сначала я разместил пост на последнем, но понял, что это может быть более подходящим местом.
Итак, у меня есть набор данных со многими рядами лиц, каждый из которых имеет уникальный индивидуальный ID
.
Для каждого человека также имеется столбец, указывающий, принадлежит ли этот человек к одному и тому же домашнему хозяйству, что является уникальным householdID
.
Наконец, есть переменная Target
для каждой строки, по которой я буду пытаться делать прогнозы. Конечно, есть колонки с разными функциями.
Мой вопрос: поскольку членство в разных домохозяйствах важно, есть ли способ разделить данные на обучающие и тестовые наборы, где все люди, принадлежащие к одному и тому же домашнему хозяйству, хранятся вместе, а не распределяются случайным образом по обоим наборам? (т. е. любое заданное число householdID
не должно появляться в обоих наборах). Но также возможно ли разделить домохозяйства как на обучающие, так и на тестовые наборы и сохранить сбалансированную переменную Target
?
Итак, используя функцию createDataPartition
в caret
, мне удалось получить сбалансированное значение Target
как в поезде, так и в тесте, когда я установил y = Target
, и мне удалось четко разделить домохозяйства как в поезде, так и в тесте, когда я установил y = unique(householdID)
, но Я не могу понять, есть ли способ получить оба этих результата одновременно.
У меня довольно много идей, поэтому любые предложения будут приветствоваться!
Спасибо!