Computer >> Máy Tính >  >> Lập trình >> Lập trình

STREAM là gì?

STREAM là một thuật toán xấp xỉ phần tử không đổi, vượt qua cá nhân được tạo ra cho bài toán k-medians. Bài toán k-medians là gom N điểm dữ liệu thành k cụm hoặc nhóm sao cho sai số tổng bình phương (SSQ) giữa các điểm và trung tâm cụm mà chúng được gán là tối thiểu. Ý tưởng là gán các điểm tương tự cho cùng một cụm, trong đó các điểm này khác với các điểm trong các cụm khác.

Trong mô hình dữ liệu luồng, các điểm dữ liệu chỉ có thể được nhìn thấy một lần, bộ nhớ và thời gian bị giới hạn. Nó có thể triển khai phân nhóm chất lượng cao, thuật toán STREAM xử lý các luồng dữ liệu trong các nhóm (hoặc lô) gồm m điểm, với mỗi nhóm phù hợp trong bộ nhớ chính.

Đối với mỗi nhóm, b i , STREAM nhóm các điểm của nhóm thành k cụm. Sau đó, nó tóm tắt thông tin nhóm bằng cách chỉ giữ lại thông tin liên quan đến k trung tâm, với mỗi trung tâm cụm được tính theo số điểm được gán cho cụm của nó.

Sau đó STREAM loại bỏ các điểm, chỉ giữ lại thông tin trung tâm. Bởi vì đã thu thập đủ trung tâm, các trung tâm có trọng số được gom lại để tạo thành một nhóm O (k) trung tâm khác. Điều này được lặp lại sao cho ở mọi cấp độ, tối đa m điểm được giữ lại. Phương pháp này dẫn đến kết quả một lần, O (kN)-time, O (N ε ) -space (đối với một số hằng số ε <1), thuật toán xấp xỉ hệ số không đổi cho luồng dữ liệu k-medians.

STREAM thay đổi các cụm k-phương tiện chất lượng với khu vực và thời gian xác định. Tuy nhiên, nó không xử lý sự phát triển của các bản ghi cũng như mức độ chi tiết của thời gian. Việc phân cụm có thể bị chi phối bởi dữ liệu cũ hơn, lỗi thời của luồng. Đặc điểm của các cụm có thể thay đổi theo cả thời điểm mà chúng được đánh giá và thời gian mà chúng được đo.

Ví dụ:người dùng có thể được yêu cầu kiểm tra các cụm xuất hiện vào tuần trước, tháng trước hoặc năm ngoái. Chúng có thể khác nhau. Do đó, thuật toán phân cụm luồng dữ liệu cũng phải hỗ trợ tính linh hoạt để tính toán các cụm trong khoảng thời gian do người dùng xác định theo cách tương tác.

CluStream là một thuật toán để phân nhóm các luồng dữ liệu đang phát triển dựa trên các truy vấn phân nhóm trực tuyến, do người dùng chỉ định. Nó chia quá trình phân cụm thành các thành phần trực tuyến và ngoại tuyến.

Thành phần trực tuyến tính toán và lưu trữ thống kê tóm tắt về dòng dữ liệu bằng cách sử dụng các cụm vi mô, đồng thời thực hiện tính toán và bảo trì trực tuyến gia tăng các cụm vi mô. Thành phần ngoại tuyến thực hiện phân nhóm macro và giải quyết một số câu hỏi của người dùng bằng cách sử dụng thống kê tóm tắt đã lưu, phụ thuộc vào mô hình khung thời gian nghiêng.

Cụm dữ liệu phát triển luồng dữ liệu dựa trên cả thông tin dữ liệu luồng lịch sử và hiện tại, mô hình khung thời gian nghiêng (chẳng hạn như mô hình logarit lũy tiến) được sử dụng, lưu trữ ảnh chụp nhanh của một nhóm vi cụm ở các mức độ chi tiết khác nhau tùy thuộc vào lần truy cập gần đây.