Как я могу использовать разделение StratifiedShuffle от sklearn, чтобы оно не перемешивало индексы? - PullRequest
0 голосов
/ 27 марта 2020

Я создаю некоторую структуру перекрестной проверки, которая должна быть очень общей c и может быть применена к любой проблеме классификации. Идея состоит в том, чтобы сохранить номер сгиба в виде нового столбца в фрейме данных, чтобы мы могли использовать его повторно. Я добавил методы для всех видов проблем. Но во время тестирования я узнал, что метод sklearn StratifiedShuffle перемешивает данные перед каждой из итераций разбиения. Из-за этого тест данные перекрываются в каждой из итераций , и, следовательно, я не могу сохранить индексы каждого сгиба в кадре данных, потому что всегда будет некоторая часть, которая перекрывается и приведет к Nan. По этой причине я переключился на метод sklearn StratifiedkFold, чтобы сделать фолды, но затем я получил ошибку, как показано ниже

File "C:\Users\Urvish\AppData\Roaming\Python\Python37\site-packages\sklearn\model_selection\_split.py", line 335, in split
    for train, test in super().split(X, y, groups):
  File "C:\Users\Urvish\AppData\Roaming\Python\Python37\site-packages\sklearn\model_selection\_split.py", line 89, in split
    for test_index in self._iter_test_masks(X, y, groups):
  File "C:\Users\Urvish\AppData\Roaming\Python\Python37\site-packages\sklearn\model_selection\_split.py", line 686, in _iter_test_masks
    test_folds = self._make_test_folds(X, y)
  File "C:\Users\Urvish\AppData\Roaming\Python\Python37\site-packages\sklearn\model_selection\_split.py", line 641, in _make_test_folds
    allowed_target_types, type_of_target_y))
ValueError: Supported target types are: ('binary', 'multiclass'). Got 'multiclass-multioutput' instead.

Я знаю, что ошибка вызвана multiclass-multioutput, и, следовательно, я не могу передать более одного столбец как y к разделителю.

Теперь вопрос, есть ли способ справиться с проблемой multiclass-multioutput с StratifiedkFold? Если это невозможно, то могу ли я использовать StratifiedShuffleSplit, чтобы он не перекрывал тестовые данные и я получил идеальное разделение?

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