Сбалансированная выборка между классами в PyTorch - PullRequest
1 голос
/ 30 января 2020

Я разделяю данные, используя PyTorch's data.random_split

train_idx, validate_idx, test_idx = data.random_split(X, 
                         [num_training_sample, num_validation_sample, num_testing_sample])

, который возвращает индексы для случайного разделения. Затем я делаю следующее

train = [X[train_idx.indices], y[train_idx.indices]]
validate = [X[validate_idx.indices], y[validate_idx.indices]]
test = [X[test_idx.indices], y[test_idx.indices]]

Несмотря на то, что они разделяются с общим соотношением 6: 2: 2, но выборка между классами не одинакова. Когда я распечатал счет, он показывает

{0: 4251, 1: 4168, 2: 4223, 3: 4192, 4: 4180, 5: 4133, 6: 4226, 7: 4249, 8: 4238, 9: 4140}

Теперь я могу перебирать сэмплы и делать сбалансированные подвыборки, но мне было интересно, есть ли способ в PyTorch ( или Numpy), чтобы сделать это эффективно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...