częściowych najmniejszych kwadratów (PLS) Algorytm realizowany w bibliotece scikit-learn jak udokumentowane: http://scikit-learn.org/0.12/auto_examples/plot_pls.html W przypadku, w którym y oznacza wektor binarny, wariant ten algorytm jest stosowany , algorytm Discriminant Analysis (PLS-DA) dla najmniejszych kwadratów. Czy moduł PLSRegression w sklearn.pl implementuje również ten przypadek binarny? Jeśli nie, to gdzie mogę znaleźć dla niego implementację pythona? W moim przypadku binarnego, Próbuję użyć PLSRegression:PLS-DA algorytm pytona
pls = PLSRegression(n_components=10)
pls.fit(x, y)
x_r, y_r = pls.transform(x, y, copy=True)
W funkcji transformacji, kod dostaje wyjątek w tej linii:
y_scores = np.dot(Yc, self.y_rotations_)
Komunikat o błędzie jest „ValueError: macierze nie są wyrównane ". Yc to znormalizowany wektor y, a self.y_rotations_ = [1.]. W funkcji dopasowania self.y_rotations_ = np.ones (1), jeśli pierwotny y jest jednoczynnikowym wektorem (y.shape 1 = 1).
Czy kiedykolwiek to rozwiązałeś? Próbowałem tej samej metody (używając najnowszej wersji scikit-learn) i wydaje się, że doskonale działa PLS-DA. Kluczem jest oznaczenie klas klasami 1 i 0 (dla tej samej/innej klasy). Jeśli nadal nie możesz go uruchomić, czy możesz opublikować swoje dane? – mfitzp
Nie rozwiązałem go jeszcze, ale spróbuję rozwiązania user3178149. Dziękujemy za Twoją pomoc! –
@mfitzp Czy częściowa regresja metodą najmniejszych kwadratów jest taka sama, jak analiza dyskryminacyjna metodą najmniejszych kwadratów? Próbuję dowiedzieć się, jak uzyskać wykresy z dwóch pierwszych składników. –