Phân tích thành phần chính (PCA) có loại bỏ nhiễu trong tập dữ liệu không? Nếu PCA không loại bỏ nhiễu trong tập dữ liệu, PCA thực sự làm gì với tập dữ liệu? Ai đó có thể giúp tôi về vấn đề này.
Phân tích thành phần chính (PCA) có loại bỏ nhiễu trong tập dữ liệu không? Nếu PCA không loại bỏ nhiễu trong tập dữ liệu, PCA thực sự làm gì với tập dữ liệu? Ai đó có thể giúp tôi về vấn đề này.
Câu trả lời:
Phân tích thành phần chính (PCA) được sử dụng để a) khử nhiễu và để b) giảm tính chiều.
Nó không loại bỏ tiếng ồn, nhưng nó có thể làm giảm tiếng ồn.
Về cơ bản, một phép biến đổi tuyến tính trực giao được sử dụng để tìm một phép chiếu của tất cả dữ liệu thành các kích thước k, trong khi các kích thước k này là các phương sai cao nhất. Các hàm riêng của ma trận hiệp phương sai (của tập dữ liệu) là các kích thước đích và chúng có thể được xếp hạng theo giá trị riêng của chúng. Giá trị riêng cao biểu thị phương sai cao được giải thích bởi kích thước eigenvector liên quan.
Hãy xem bộ dữ liệu usps , thu được bằng cách quét các chữ số viết tay từ phong bì của Dịch vụ Bưu chính Hoa Kỳ.
Đầu tiên, chúng tôi tính toán các giá trị riêng và giá trị riêng của ma trận hiệp phương sai và vẽ tất cả các giá trị riêng giảm dần. Chúng ta có thể thấy rằng có một vài giá trị riêng có thể được đặt tên là các thành phần chính, vì giá trị riêng của chúng cao hơn nhiều so với phần còn lại.
Mỗi eigenvector là một sự kết hợp tuyến tính của kích thước ban đầu . Do đó, eigenvector (trong trường hợp này) là một hình ảnh, có thể được vẽ.
Để b) giảm kích thước, giờ đây chúng ta có thể sử dụng năm hàm riêng và chiếu tất cả dữ liệu (ban đầu là hình ảnh 16 * 16 pixel) vào không gian 5 chiều với ít nhất có thể mất phương sai.
(Lưu ý ở đây: Trong một số trường hợp, việc giảm kích thước phi tuyến tính (như LLE) có thể tốt hơn PCA, xem ví dụ về wikipedia )
Cuối cùng, chúng ta có thể sử dụng PCA để khử nhiễu. Do đó, chúng tôi có thể thêm tiếng ồn vào bộ dữ liệu gốc theo ba cấp độ (thấp, cao, ngoại lệ) để có thể so sánh hiệu suất. Trong trường hợp này, tôi đã sử dụng nhiễu gaussian với giá trị trung bình bằng 0 và phương sai là bội số của phương sai ban đầu (Yếu tố 1 (thấp), Yếu tố 2 (cao), Yếu tố 20 (ngoại lệ)) Một kết quả có thể giống như thế này. Tuy nhiên, trong mỗi trường hợp, tham số k phải được điều chỉnh để tìm kết quả tốt.
Cuối cùng, một góc nhìn khác là so sánh giá trị bản địa của dữ liệu bị nhiễu cao với dữ liệu gốc (so sánh với hình ảnh đầu tiên của câu trả lời này). Bạn có thể thấy rằng nhiễu ảnh hưởng đến tất cả các giá trị riêng, do đó chỉ sử dụng 25 giá trị riêng hàng đầu để khử nhiễu, ảnh hưởng của nhiễu sẽ giảm.