Разделить на три набора, причем два набора находятся как можно ближе к равным, при этом поддерживая классы - PullRequest
0 голосов
/ 11 апреля 2019

Я хочу разделить свой несбалансированный набор данных на три набора: обучение, проверка и набор тестов. Я бы хотел, чтобы соотношение классов сохранилось после раскола.

Очевидное решение состоит в том, чтобы использовать Scikit-learns StraifiedShuffleSplit или StratifiedKfold дважды, но это приведет к тому, что два из трех не будут точно равными.

Я вижу два способа сделать это: сначала разделить на 80/20, а во второй раз - на 80/20, что приведет к общему разделению на 64/16/20. Это будет означать, что я проверяю свой результат на меньшем количестве данных, чем вижу в будущем. У него есть свои плюсы и минусы.

Вторая возможность состоит в том, чтобы сначала сделать 80/20, а затем сделать 75/25, что приведет к 60/20/20, по желанию. Но приводит ли это к другому вопросу, нарушаю ли я что-то, о чем я не знаю, делая два разных сплита?

Я пытался записать проблему с намерением решить ее с использованием LP, но это не получилось хорошо - я не уверен, что проблема - это проблема LP, когда один коэффициент - это отношение двух коэффициентов, которые он пробует оптимизировать.

Я пытался искать здесь, в Stats-Stackoverflow и DS-Stackoverflow, но безуспешно.

Мне очень хотелось бы услышать ваши мысли по поводу вышеуказанной проблемы, может быть, я переосмыслил ее, и это на самом деле не имеет практических последствий?

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