Có ai có thể giải thích cho tôi thuật toán Đếm số tổn thất không? Đây là thuật toán phát trực tuyến về việc tìm tần suất của các mục trong luồng. Cảm ơn.Đếm thua lỗ là gì?
Trả lời
Giả sử bạn đang xem lưu lượng truy cập cho tiểu sử trên facebook. Bạn có hàng tỷ lượt truy cập. Bạn muốn tìm những cấu hình nào được truy cập thường xuyên nhất. Bạn có thể giữ một số đếm cho mỗi hồ sơ, nhưng sau đó bạn sẽ có một số lượng rất lớn đếm để theo dõi, phần lớn trong số đó sẽ là vô nghĩa.
Với tính toán mất dữ liệu, bạn định kỳ xóa các phần tử đếm rất thấp khỏi bảng. Các hồ sơ truy cập thường xuyên nhất sẽ hầu như không bao giờ có số lượng thấp anyway, và nếu họ đã làm, họ sẽ không có khả năng ở lại đó lâu dài.
Thuật toán về cơ bản liên quan đến việc nhóm các đầu vào thành các khối hoặc khối và đếm trong mỗi đoạn. Sau đó, bạn giảm số lượng cho từng phần tử một, giảm bất kỳ phần tử nào có số lượng giảm xuống 0.
Các tiểu sử truy cập thường xuyên nhất sẽ nhận được số của bạn và ở lại đó. Bất kỳ hồ sơ nào không được đánh rất thường xuyên sẽ giảm xuống 0 trong một vài khối và bạn sẽ không phải theo dõi chúng nữa.
Lưu ý rằng kết quả cuối cùng phụ thuộc vào thứ tự, cho trọng lượng nặng hơn cho số lượng được xử lý cuối cùng. Trong một số trường hợp, điều này làm cho cảm giác hoàn hảo và là một upside chứ không phải là một nhược điểm. (Nếu bạn muốn biết về cơ bản hồ sơ nào là phổ biến nhất bây giờ, bạn muốn cân nhắc truy cập ngày hôm nay nhiều hơn truy cập vào tháng trước.)
Có một số lượng lớn các sàng lọc cho thuật toán. Nhưng ý tưởng cơ bản là - để tìm những người chơi nặng mà không phải theo dõi mọi yếu tố, định kỳ thanh lọc số lượng của bạn về bất kỳ yếu tố nào dường như không phải là những người chơi nặng nề dựa trên dữ liệu cho đến nay.
Bạn có thể tìm thấy giải thích về cách tính năng Lossy Counting (và Sticky Sampling) hoạt động on this blog post và open-source version here.
Các mục được xem thường xuyên nhất "tồn tại". Cho một ngưỡng tần số f, sai số tần số e, và tổng số phần tử N, đầu ra có thể được biểu diễn như sau: Các phần tử có số đếm vượt quá fN - eN.
Trường hợp xấu nhất chúng tôi cần (1/e) * nhật ký (eN) quầy.
Ví dụ: chúng tôi có thể in các trang Facebook của những người bị trúng hơn 20%, với ngưỡng lỗi là 2% (quy tắc ngón tay cái: lỗi = 10% ngưỡng tần số).
Đối với tần số f = 20%, e = 2%, tất cả các phần tử có tần số thực vượt quá f = 20% sẽ là đầu ra - không có âm bản sai. Nhưng chúng ta thiếu. Tần số đầu ra của một phần tử có thể nhỏ hơn tần số thực của nó tối đa là 2%. Sai tích cực có thể xuất hiện với tần suất từ 18% - 20%. Cuối cùng, không có phần tử nào có tần suất nhỏ hơn 18% sẽ là đầu ra.
Với cửa sổ có kích thước 1/e, bên nhận bảo lãnh sau giữ:
- tần số được đánh giá thấp bởi ít nhất e * N
- Không false negative
- Sai tích cực có tần số đúng ít nhất là f N - e N
Liên kết giúp, Cảm ơn ~ – DiveInto
- 1. Làm cách nào để kiểm đếm và thua lỗ bằng SUM và CASE?
- 2. Đếm số "lỗ hổng" trong bitmap
- 3. Lỗ hổng Java phổ biến là gì?
- 4. Android SoundPool.play() đôi khi thua
- 5. Bộ đếm hiệu ứng độ phân giải cao là gì?
- 6. đếm chính xác trong C++ nghĩa là gì ?,
- 7. Phương pháp tạo bộ đếm số trong Android là gì?
- 8. các lỗ hổng trong việc sử dụng trực tiếp GET và POST là gì?
- 9. C++: lỗ hổng phổ biến nhất là gì và cách tránh chúng?
- 10. Tic Tac Toe - Phát hiện thắng, thua hoặc vẽ
- 11. lỗ cắt trong PathGeometry
- 12. Cú đấm lỗ TCP
- 13. lỗ hổng xml
- 14. Lỗ UDP Đột
- 15. Thời gian chờ lỗ UDP
- 16. Thuật toán đục lỗ UDP
- 17. Lỗ trong NSView hoặc NSWindow
- 18. Cách tìm "lỗ" trong bảng
- 19. Đồng đô la theo sau là chỉ số có nghĩa là gì trong tên lớp?
- 20. Có nghĩa là gì?
- 21. WMPLib: player.mediaCollection.getAll(). Đếm luôn là 0
- 22. "Đống đổ rác" là gì?
- 23. Bộ đếm perfmon tốt nhất cho ứng dụng ASP.net là gì?
- 24. Các cách xử lý 'Đếm' khác nhau trong SQL Server là gì?
- 25. Trong SQL, sự khác biệt giữa số (*) và số đếm ('x') là gì?
- 26. Sự khác biệt giữa số (0), số (1) .. và đếm (*) trong mySQL/SQL là gì?
- 27. Cách tốt nhất để đếm số lượng khách truy cập với Hadoop là gì?
- 28. Cách ngắn nhất để đếm số lượng mục trong bộ tạo/trình lặp là gì?
- 29. Cách tốt để đếm các dòng mã nguồn (SLOC) trong một dự án CoffeeScript là gì?
- 30. Cần đếm hàng sau câu lệnh SELECT: cách tiếp cận SQL tối ưu là gì?
Trong các nguồn khác, là các khối hoặc khối có tên là nhóm không? – neilmarion
Bạn có thể trình bày mã giả để nó sẽ được minh họa rõ ràng hơn không? Rất nhiều đánh giá cao ông David. – neilmarion
đây là triển khai mẫu https://github.com/mayconbordin/streaminer –