Hạt nhânPCA nên được xác định và phát triển liên tục với gamma.
Nó khác với RBFSampler có sẵn ngẫu nhiên để cung cấp một xấp xỉ hiệu quả (khả năng mở rộng) xấp xỉ của hạt nhân RBF.
Tuy nhiên những gì có thể thay đổi trong KernelPCA là thứ tự trong những thành phần chủ yếu: trong scikit-học họ được trả về được sắp xếp theo thứ tự eigenvalue giảm dần, vì vậy nếu bạn có 2 giá trị riêng gần nhau nó có thể là thứ tự thay đổi với gamma.
Đoán của tôi (từ gif) là đây là những gì đang xảy ra ở đây: các trục dọc theo đó bạn đang vẽ không phải là hằng số để dữ liệu của bạn dường như nhảy xung quanh.
Bạn có thể cung cấp mã bạn đã sử dụng để tạo gif không?
Tôi đoán đó là cốt truyện của các điểm dữ liệu dọc theo 2 thành phần chính đầu tiên nhưng sẽ giúp bạn biết cách bạn tạo ra nó.
Bạn có thể thử kiểm tra kỹ hơn bằng cách xem các giá trị của kpca.alphas_ (giá trị riêng) cho mỗi giá trị của gamma.
Hy vọng điều này có ý nghĩa.
EDIT: Như bạn đã nhận thấy có vẻ như các điểm được phản xạ trên trục, lời giải thích hợp lý nhất là một trong các dấu hiệu riêng rẽ của fligenvector (lưu ý điều này không ảnh hưởng đến giá trị riêng).
Tôi đặt trong a simple gist để tái tạo sự cố (bạn sẽ cần một sổ tay Jupyter để chạy nó). Bạn có thể thấy dấu hiệu lật khi bạn thay đổi giá trị của gamma.
Như một lưu ý bổ sung cho thấy sự khác biệt này xảy ra chỉ vì bạn phù hợp với nhiều lần đối tượng KernelPCA nhiều lần. Khi bạn đã giải quyết với một giá trị gamma cụ thể và bạn đã điều chỉnh kpca một khi bạn có thể gọi chuyển đổi nhiều lần và nhận được kết quả nhất quán. Đối với cổ điển PCA the docs đề cập rằng:
Do sự tinh tế thi hành Số ít giá trị gia tăng phân hủy (SVD), được sử dụng trong việc thực hiện này, chạy phù hợp với hai lần trên cùng một ma trận có thể dẫn đến các thành phần chủ yếu có dấu hiệu lật (thay đổi hướng). Vì lý do này, điều quan trọng là luôn luôn sử dụng cùng một đối tượng ước lượng để chuyển đổi dữ liệu theo kiểu nhất quán.
Tôi không biết về hành vi của một đối tượng KernelPCA đơn lẻ mà bạn có thể khớp với nhiều lần (tôi không tìm thấy bất kỳ điều gì có liên quan trong tài liệu).
Nó không áp dụng cho trường hợp của bạn mặc dù bạn phải phù hợp với đối tượng với một số giá trị gamma.
Có, cốt truyện là hai thành phần chính đầu tiên – fferri
Ok. Bạn có thấy thứ tự của các thành phần có thể ảnh hưởng đến cốt truyện của bạn không? Giả sử 2 thành phần đầu tiên của bạn là e1 và e2, với các giá trị riêng liên quan a1 và a2. Đối với gamma = 0,5, a1> a2. Vì vậy, KernelPCA trả về các eigenvectors theo thứ tự e1, e2, e3 ... Đối với gamma = 0,6, a2> a1. Bây giờ bạn đang nhận e2, e1, e3 ... và trục của bạn trên cốt truyện được đổi chỗ. – ldirer
Dường như dấu hiệu lật ngược giá trị riêng. Nếu hoán đổi các trục (x với y), tôi nên quan sát các điểm * chuyển vị *. Thay vào đó, các điểm * phản ánh * trong x hoặc y. Bạn không đồng ý – fferri