Tại sao việc triển khai t-SNE trong R mặc định để loại bỏ các bản sao?


7

Cụ thể, việc triển khai R của t-SNE trong gói Rtsne có đối số "check_d repeatates" và tài liệu cho thấy rằng "tốt nhất là đảm bảo không có bản sao nào xuất hiện và đặt tùy chọn này thành FALSE, đặc biệt là cho các bộ dữ liệu lớn".

Hơn nữa, nếu bạn cố chạy t-SNE trên tập dữ liệu trong R có trùng lặp, bạn sẽ nhận được thông báo lỗi: "Lỗi trong [lệnh snipped bởi người dùng]: Xóa các bản sao trước khi chạy TSNE."

Vậy, tại sao hành vi này xảy ra? Tôi có một bộ dữ liệu trong đó nhiều mẫu trùng hợp có cùng số đo.

Có phải nó chỉ đơn giản là một "điểm dữ liệu trùng lặp, sau khi giảm, dù sao cũng sẽ có cùng điểm dữ liệu, vì vậy đừng lãng phí sức mạnh xử lý"? Sự hiện diện của các bản sao có ảnh hưởng đến tính toán của quá trình không?

Câu trả lời:


2

Thuật toán được thiết kế để xử lý các bộ dữ liệu mà không có thông tin trùng lặp, vì vậy gói sẽ kiểm tra trước khi áp dụng kỹ thuật này. Họ đề nghị bạn xóa các bản sao và thiết lập check_duplicates = FALSEđể cải thiện hiệu suất.

Việc thực hiện trong R là:

if (check_duplicates & !is_distance){
if (any(duplicated(X))) { stop("Remove duplicates before running TSNE.")}

Giá trị mặc định check_duplicates = TRUEis_distance = FALSE.

Bài viết, cho những ai muốn hủy bỏ thêm về phương pháp, là ở đây .


7
Câu trả lời của bạn về cơ bản diễn giải câu hỏi. Nó không trả lời lý do tại sao bạn cần loại bỏ các datapoint trùng lặp.
Daniel Falbel

Câu đầu tiên không đúng. Phương pháp này không được thiết kế để không có các bản sao miền thời gian . Các Rtsnegói kiểm tra các bản sao chủ yếu trong miền thời gian. - - Ngoài ra tsnegói không thực hiện kiểm tra như vậy, chỉ Rtsne. - - Để thiết lập check_duplicates=FALSEkhông phải vì cải thiện hiệu suất. Nó không phải là đối số chính. - - Có một số tính năng thử nghiệm trong nhiều triển khai, chẳng hạn như kiểm tra ma trận khoảng cách, có - có - bị tắt mặc định. Một lần nữa, bạn không trả lời câu hỏi. - - Tài liệu tham khảo của bạn không liên quan đến câu hỏi.
Léo Léopold Hertz

2

t-SNEphương pháp không yêu cầu loại bỏ các bản sao. Thực tế rằng nó là một tính năng mặc định trong Rtsnekhông ngụ ý yêu cầu của nó. Nó rất hữu ích cho một số giám sát sự kiện ngắn hạn. Để mô tả các xu hướng dài hạn và / hoặc các mẫu với các tập dữ liệu lớn, tôi thấy ít sử dụng. Các Rtsnethiết lập mặc định có thể được nghiêng nhiều hơn cho việc mô tả các sự kiện trong miền thời gian, mà không cần bất kỳ nghiên cứu trong phạm vi của Fourier.

Giả sử bạn có điểm trong miền thời gian. Thuật toán trùng lặp gây ra số lượng dương tính giả đáng kể vì việc kiểm tra trùng lặp chủ yếu được thiết kế trên tín hiệu miền thời gian. Không gian Fourier có thể chỉ ra rằng những sự kiện được xem xét bởi thuật toán trùng lặp là không cần thiết.

Vì vậy, quan sát của tôi là thuật toán này rất tham lam về các điểm trùng lặp trong miền thời gian, điều này không hữu ích cho tôi khi xem xét các tín hiệu dài hạn, xu hướng dài hạn và các mẫu dài hạn. Việc điểm được nhân đôi trong miền thời gian không thực sự có nghĩa là nó cũng bị trùng lặp trong miền Fourier. Tôi nghĩ sẽ là một sự trùng hợp ngẫu nhiên hơn nếu là một bản sao trong miền thời gian trong các ứng dụng thực tế. Vì vậy, tắt tính năng, nên ok. Để ước tính có bao nhiêu điểm thực sự trùng lặp trong cả hai lĩnh vực cụ thể trong nghiên cứu trường hợp. Tôi nhận được mô tả tốt hơn đáng kể về các sự kiện và / hoặc hiện tượng bằng cách xem xét các tập dữ liệu dài hạn mà không cần kiểm tra trùng lặp trong nhiều ứng dụng thực tế.

Tôi nghĩ rằng Rtsnetài liệu này không rõ ràng về trường hợp nói [tắt check_duplicatesvà] không lãng phí sức mạnh xử lý . Có những lý do thực sự khác như được mô tả ở trên tại sao check_duplicatescó thể tắt như được nhận ra bởi một số triển khai khác của phương pháp. Hiện tại, đây check_duplicates=TRUElà một lựa chọn cá nhân của Rtsnenhà phát triển. Tôi rất muốn nghe nếu có bất kỳ lý do thực hiện cho quyết định.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.