Как передать 4D Array в конвейер scikit-learn без вызова ValueError: Найдены входные переменные с непоследовательным количеством выборок - PullRequest
0 голосов
/ 03 июня 2019

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

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

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

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

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

...