Как передать 4D Array в конвейер scikit-learn без вызова ValueError: Найдены входные переменные с непоследовательным количеством выборок

У меня есть список путей к файлам 3D Nifti. Я использую Nilearn's resample_img который возвращает четырехмерное изображение, где первые три измерения представляют оси x,y,z, а четвертое измерение представляет количество субъектов. Затем я хочу передать этот объект и метки в мой конвейер scikit-learn, однако получаю ошибку:

ValueError: Найдены входные переменные с непоследовательным количеством выборок

Я знаю, почему эта ошибка происходит: функция check_consistent_length() сравнивает длину первого измерения X и y. Поскольку X является 4D-массивом, первое измерение представляет не количество выборок, а количество слоев на оси x, поэтому check_consistent_length скинет эту ValueError. Или другими словами: если check_consistent_length проверил бы 4-е измерение X, это не выдало бы эту ошибку, потому что это измерение представляет количество выборок.

Первый трансформатор в моем трубопроводе NiftiMasker который может принимать массив 4D и автоматически преобразует img 4D в нужный формат (n_samples * n_features), как это требуется. Если бы я мог взломать трубопровод и избежать проверки работоспособности check_consistent_length все будет хорошо.

Есть ли способ избежать этой проверки здравомыслия?

0 ответов

Другие вопросы по тегам