Алгоритм частичных алгоритмов наименьших квадратов (PLS) реализован в библиотеке scikit-learn, как описано здесь: http://scikit-learn.org/0.12/auto_examples/plot_pls.html В случае, когда y является двоичным вектором, используется вариант этого алгоритма, алгоритм Partial Lesscrimlections Discriminant Analysis (PLS-DA). Модуль PLSRegression в sklearn.pls реализует также этот двоичный случай? Если нет, где я могу найти для него реализацию python? В моем двоичном случае я пытаюсь использовать PLSRegression:
pls = PLSRegression(n_components=10)
pls.fit(x, y)
x_r, y_r = pls.transform(x, y, copy=True)
В функции преобразования код получает исключение в этой строке:
y_scores = np.dot(Yc, self.y_rotations_)
Сообщение об ошибке "ValueError: матрицы не выровнены". Yc - нормализованный вектор y, а self.y_rotations_ = [1.]. В функции fit, self.y_rotations_ = np.ones(1), если исходный y является одномерным вектором (y.shape 1= 1).