Thuật toán hình vuông một phần (PLS) được thực hiện trong thư viện học hỏi scikit, như được ghi ở đây: http://scikit-learn.org/0.12/auto_examples/plot_pls.html Trong trường hợp y là một vector nhị phân, một biến thể của thuật toán này đang được sử dụng , Thuật toán Phân tích Phân biệt đối xử (PLS-DA) một phần nhỏ nhất. Mô-đun PLSRegression trong sklearn.pls có thực thi trường hợp nhị phân này không? Nếu không, nơi tôi có thể tìm thấy một thực hiện python cho nó? Trong trường hợp nhị phân của tôi, tôi đang cố gắng để sử dụng PLSRegression:Thuật toán PLS-DA trong python
pls = PLSRegression(n_components=10)
pls.fit(x, y)
x_r, y_r = pls.transform(x, y, copy=True)
Trong chuyển đổi chức năng, các mã được ngoại lệ trong dòng này:
y_scores = np.dot(Yc, self.y_rotations_)
Các thông báo lỗi là "ValueError: ma trận không được căn chỉnh ". Yc là vectơ y chuẩn hóa và self.y_rotations_ = [1.]. Trong hàm phù hợp, self.y_rotations_ = np.ones (1) nếu y ban đầu là một véc tơ đơn biến (y.shape 1 = 1).
Bạn đã bao giờ giải quyết vấn đề này chưa? Tôi đã thử phương pháp tương tự (sử dụng phiên bản mới nhất của scikit-tìm hiểu) và có vẻ như làm PLS-DA hoàn hảo. Điều quan trọng là gắn nhãn các lớp với 1 và 0 (cho cùng một lớp/khác). Nếu bạn vẫn không thể làm cho nó hoạt động, bạn có thể đăng dữ liệu của mình không? – mfitzp
Chưa giải quyết được nhưng tôi sẽ dùng giải pháp user3178149. Cảm ơn vì đã giúp bạn! –
@mfitzp Là hồi quy vuông góc một phần giống như phân tích phân biệt đối xử một phần nhỏ nhất? Tôi đang cố gắng tìm ra cách để có được lô từ hai thành phần đầu tiên. –