2013-07-28 34 views
5

Để phân cụm, đầu vào Mahout cần phải ở dạng vectơ. Có hai loại triển khai vectơ. Một là Sparse Vector và một là Vector Dense.Clustering - Vector thưa thớt và Vector dày đặc

Sự khác biệt giữa hai loại là gì?

Các tình huống sử dụng cho thưa thớt và dày đặc?

Trả lời

11

Khái niệm khôn ngoan, hầu hết các giá trị trong một vectơ thưa thớt là 0, trong một véc tơ dày đặc mà chúng không có. Tương tự cho các ma trận dày đặc và thưa thớt. Các cụm từ thưa thớtdày đặc thường mô tả các thuộc tính này, không chỉ trong Mahout.

Trong Mahout the DenseVector giả định không quá nhiều mục nhập 0 và do đó "Thực hiện vectơ như một mảng đôi" (org.apache.mahout.math.DenseVector). Ngược lại, việc triển khai vectơ thưa thớt của AbstractVector, ví dụ: RandomAccessSparseVectorSequentialAccessSparseVector, sử dụng các cấu trúc dữ liệu khác nhau không lưu trữ giá trị bằng 0.

Tùy chọn nào cần thực hiện tùy thuộc vào dữ liệu bạn muốn lưu trữ trong vectơ. Nếu bạn mong đợi hầu hết các giá trị bằng không, việc thực thi vectơ thưa thớt sẽ hiệu quả hơn, tuy nhiên nếu bạn sử dụng dữ liệu chỉ với một vài giá trị bằng không, bạn sẽ giới thiệu rất nhiều chi phí cấu trúc dữ liệu.

Lựa chọn vectơ dày đặc và thưa thớt không ảnh hưởng đến kết quả tính toán của bạn trên vectơ, chỉ sử dụng bộ nhớ và tốc độ tính toán.

Các vấn đề liên quan