Как передать 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
все будет хорошо.
Есть ли способ избежать этой проверки здравомыслия?