Khớp các mục tương tự từ một bộ


10

Tôi đang cố gắng để phù hợp với các mặt hàng. Cho một tập hợp vật phẩm tôi có thể xếp hạng theo thang điểm từ 0 đến 100 về mức độ tương tự của chúng với nhau. Chẳng hạn, nếu mục là sữa và mục cũng là sữa, thì độ tương tự giữa và sẽ là 100%. Nếu là soda, thì độ tương tự giữa và sẽ là 80%, v.v.nn1n2n1n2n3n1n3

Tôi đang cố gắng tìm ra cách nhóm mặt hàng thành các nhóm mặt hàng tương tự, nhưng đó là một vấn đề đầy thách thức. Tôi gặp phải vấn đề sau: Một con ngựa giống với con bò, tương tự như con dê, một phần tương tự như phô mai dê, tương tự như phô mai, tương quan với bánh quy giòn. Tuy nhiên, tôi không mong đợi một con ngựa sẽ ở cùng nhóm với bánh quy. Mỗi mục có thể tương quan theo cặp, nhưng bắt đầu và kết thúc có thể không.n

Có ý kiến ​​gì không?


Trong sinh học tiến hóa, kết quả của việc phân cụm theo cặp như vậy được gọi là cây phylogentic , vì vậy bạn có thể thêm nó vào tập hợp các thuật ngữ tìm kiếm hữu ích của mình.
hardmath

Câu trả lời:


7

Những gì bạn muốn làm ở đây là phân vùng N quan sát thành các cụm K thể hiện các thuộc tính tương tự. Điều này được gọi là phân cụm và bạn có thể tìm thêm thông tin ở đây .

Vì bạn đã có một phép đo tương tự về số, điều này khiến tôi suy nghĩ về việc sử dụng thuật toán K-Means , trong đó bạn vận hành theo một số bước:

  • Khởi tạo ngẫu nhiên cụm sao
  • Chỉ định mỗi quan sát cho cụm tương ứng với trọng tâm gần nhất.
  • Cập nhật trọng tâm là giá trị trung bình mới của các phần tử trong cụm.

Bạn có thể kiểm tra sự hội tụ khi trọng tâm đã ngừng di chuyển hoặc trong một ngưỡng nhất định.

Điều này sẽ đảm bảo rằng các mục trong mỗi cụm có tương quan với nhau và bạn có thể có các cụm chi tiết hơn bằng cách tăng số lượng cụm trong thuật toán ("K"). Việc tìm ra số lượng cụm phụ thuộc vào từng vấn đề và tôi khuyên bạn nên thử một loạt các giá trị cho các vấn đề của mình, xem xét những gì được nhóm lại với nhau và xem điều gì có ý nghĩa.

Mong rằng sẽ giúp.


5

Tôi nghĩ những gì bạn đang tìm kiếm được gọi là "phân tích cụm" hoặc "phân cụm". Nhiều thuật toán khác nhau tồn tại. Trong trường hợp của bạn, bạn sẽ muốn một số "cụm kết nối", tức là các thành phần nhóm với nhau dựa trên một thuộc tính liên kết hai.

Hãy xem các thuật toán phân cụm trong scikits.learn (mã Python) và các tài liệu tham khảo được đề cập ở đó.

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.