Mã Python phân cụm theo cấp bậc

Với sự phong phú của dữ liệu thô và nhu cầu phân tích, khái niệm học tập không giám sát đã trở nên phổ biến theo thời gian. Mục tiêu chính của học tập không giám sát là khám phá các mẫu ẩn và thú vị trong dữ liệu chưa được gắn nhãn. Thuật toán học tập không giám sát phổ biến nhất là phân cụm. Các ứng dụng để phân tích cụm bao gồm từ y tế đến nhận dạng khuôn mặt đến phân tích thị trường chứng khoán. Trong blog này, chúng ta nói về Hierarchical Clustering.  

Bài báo này có cấu trúc như sau

  • Phân cụm theo thứ bậc là gì?
  • Sự khác biệt giữa Phân cụm & Phân loại
  • Sự khác biệt giữa K-Means & Phân cụm theo cấp bậc
  • Các loại phân cụm phân cấp
  • Phân cụm theo cấp bậc kết tụ
  • Làm cách nào để xác định xem hai cụm có giống nhau không?
  • Dendrogram là gì?
  • Phân cụm theo thứ bậc phân chia
  • Phân cụm theo cấp bậc trong Python
  • Ưu và nhược điểm của phân cụm theo thứ bậc

Phân cụm theo thứ bậc là gì?

Phân cụm theo thứ bậc là một kiểu học tập không giám sát, nhóm các điểm dữ liệu hoặc đối tượng tương tự thành các nhóm được gọi là cụm. Câu hỏi xuất hiện trong đầu bạn là học theo cụm và học không giám sát là gì. Hãy thử tìm cái này

Sự khác biệt giữa Phân cụm & Phân loại

Cả phân loại và phân cụm đều cố gắng nhóm các điểm dữ liệu thành một hoặc nhiều lớp dựa trên sự giống nhau của các tính năng khác nhau. Sự khác biệt nằm ở cách cả hai hoạt động. Phân loại là một thuật toán được giám sát, trong đó có các nhãn xác định trước [yi] được gán cho từng điểm dữ liệu đầu vào [Xi]

Trong khi đó, phân cụm là một thuật toán không được giám sát trong đó các nhãn bị thiếu có nghĩa là tập dữ liệu chỉ chứa các điểm dữ liệu đầu vào [Xi]

Sự khác biệt chính khác là do các kỹ thuật phân loại có nhãn, nên cần có tập dữ liệu thử nghiệm và đào tạo để xác minh mô hình. Trong phân cụm, không có nhãn nên không cần huấn luyện và kiểm tra tập dữ liệu

Các ví dụ phổ biến về thuật toán phân loại là

  1. Hồi quy logistic
  2. Hỗ trợ phân loại Vector
  3. Naive Bayes
  4. Cây quyết định
  5. rừng ngẫu nhiên
  6. Mạng thần kinh

Ví dụ về các thuật toán phân cụm là

  1. phân cụm theo thứ bậc
  2. Phân cụm K-Means
  3. Phân cụm dịch chuyển trung bình
  4. Phân cụm quang phổ

Trong bài viết này, chúng ta sẽ đi sâu tìm hiểu chi tiết về Hierarchical clustering

Sự khác biệt giữa K-Means & Phân cụm theo cấp bậc

Câu trả lời cho lý do tại sao chúng ta cần phân cụm theo thứ bậc nằm trong quá trình phân cụm K-means

Chúng ta sẽ hiểu cụm K-means trong ngôn ngữ của một giáo dân

Hãy xem xét dữ liệu chưa được gắn nhãn này cho vấn đề của chúng tôi. Nhiệm vụ của chúng tôi là nhóm dữ liệu chưa được gắn nhãn thành các cụm bằng cách sử dụng cụm K-nghĩa

Bước 1

Bước đầu tiên là quyết định số cụm [k]. Giả sử chúng ta đã quyết định chia dữ liệu thành hai cụm

Bước 2

Khi các cụm được quyết định, chúng tôi khởi tạo ngẫu nhiên hai điểm, được gọi là tâm cụm

Bước 3

Trong bước thứ ba, thuật toán đi đến từng điểm dữ liệu và chia các điểm thành các lớp tương ứng, tùy thuộc vào việc nó gần tâm cụm màu đỏ hơn hay tâm cụm màu lục hơn.

Bước 4

Trong bước thứ tư, chúng tôi di chuyển bước trọng tâm. Chúng tôi tính giá trị trung bình của tất cả các điểm màu đỏ và di chuyển tâm của cụm màu đỏ đến đó và thực hiện tương tự cho cụm màu xanh lá cây

Chúng tôi sẽ thực hiện bước 3 và 4  cho đến khi trọng tâm của cụm không di chuyển nữa. Đó là trong ví dụ này, màu sắc của điểm sẽ không thay đổi nữa

Quá trình K-means có vẻ tốt, phải không?

Có, nhưng có một vấn đề hoặc có thể nói là hạn chế của quy trình này. Khi bắt đầu thuật toán, chúng ta cần quyết định số cụm. Nhưng chúng tôi không biết chúng tôi cần bao nhiêu cụm khi bắt đầu

Phân cụm theo cấp bậc thu hẹp khoảng cách này. Trong phân cụm theo cấp bậc, chúng ta không cần xác định số lượng cụm ngay từ đầu. Hãy xem nó hoạt động như thế nào

Các loại phân cụm phân cấp

Có hai loại phân cụm theo thứ bậc

  • Phân cụm phân cấp kết tụ
  • Phân cụm phân cấp

Phân cụm theo cấp bậc kết tụ

Phân cụm theo thứ bậc kết tụ là kiểu phân cụm theo thứ bậc phổ biến nhất được sử dụng để nhóm các đối tượng thành các cụm dựa trên sự giống nhau của chúng. Đó là cách tiếp cận từ dưới lên trong đó mỗi quan sát bắt đầu trong cụm riêng của nó và các cặp cụm được hợp nhất khi một cụm di chuyển lên trên hệ thống phân cấp

Làm thế nào để phân cụm theo thứ bậc kết tụ hoạt động?

Giả sử bạn có các điểm dữ liệu mà bạn muốn nhóm thành các cụm tương tự

Bước 1. Bước đầu tiên là coi mỗi điểm dữ liệu là một cụm

Bước 2. Xác định hai cụm giống nhau và biến chúng thành một cụm

Bước 3. Lặp lại quá trình cho đến khi chỉ còn lại các cụm duy nhất

Làm cách nào để xác định xem hai cụm có giống nhau không?

Một trong những cách để làm như vậy là tìm khoảng cách giữa các cụm

Đo khoảng cách [tương tự]

Khoảng cách giữa hai cụm có thể được tính toán dựa trên độ dài của đường thẳng được vẽ từ cụm này sang cụm khác. Điều này thường được gọi là khoảng cách Euclide

khoảng cách Euclide. Khoảng cách Euclide giữa hai điểm trong mặt phẳng hoặc không gian 3 chiều đo độ dài của đoạn nối hai điểm. Đó là cách rõ ràng nhất để biểu thị khoảng cách giữa hai điểm

Nếu [x1,y1] và [x2,y2] là các điểm trong không gian 2 chiều thì khoảng cách euclide giữa là

[x2-x1]2 - [y2-y1]2

Ngoài khoảng cách Euclide, một số số liệu khác đã được phát triển để đo khoảng cách, chẳng hạn như

  • Khoảng cách hamming
  • Khoảng cách Manhattan [Taxicab hoặc City Block]
  • Khoảng cách Minkowski

Việc lựa chọn số liệu khoảng cách phải dựa trên lĩnh vực nghiên cứu hoặc vấn đề mà bạn đang cố gắng giải quyết

Ví dụ: nếu bạn đang cố đo khoảng cách giữa các đối tượng trên một lưới đồng nhất, chẳng hạn như bàn cờ hoặc khối thành phố. Sau đó, khoảng cách Manhattan sẽ là một lựa chọn thích hợp

tiêu chí liên kết

Sau khi chọn một số liệu khoảng cách, cần xác định khoảng cách được tính từ đâu. Một số phương pháp liên kết phổ biến là

Liên kết đơn. Liên kết đơn hoặc liên kết gần nhất là khoảng cách ngắn nhất giữa một cặp quan sát trong hai cụm.  

liên kết hoàn chỉnh. Liên kết hoàn chỉnh hoặc liên kết xa nhất là khoảng cách xa nhất giữa một cặp quan sát trong hai cụm

liên kết trung bình. Liên kết trung bình là khoảng cách giữa mỗi quan sát trong một cụm với mọi quan sát trong cụm khác

Liên kết trung tâm. Liên kết trọng tâm là khoảng cách giữa các trọng tâm của hai cụm. Trong phần này, bạn cần tìm trọng tâm của hai cụm và sau đó tính khoảng cách giữa chúng trước khi hợp nhất

Ward's-liên kết. Phương pháp của Ward hoặc phương pháp phương sai tối thiểu hoặc phương pháp phân cụm phương sai tối thiểu của Ward tính toán khoảng cách giữa hai cụm khi tăng tổng bình phương sai số sau khi hợp nhất hai cụm thành một cụm duy nhất. Phương pháp này tìm cách chọn các bước phân cụm liên tiếp để giảm thiểu sự gia tăng sai số tổng bình phương ở mỗi bước

Việc lựa chọn tiêu chí liên kết dựa trên ứng dụng miền. Liên kết trung bình và liên kết hoàn chỉnh là hai thước đo khoảng cách phổ biến nhất trong phân cụm theo thứ bậc. Tuy nhiên, khi không có sự biện minh lý thuyết rõ ràng cho việc lựa chọn các tiêu chí liên kết, phương pháp của Ward là tùy chọn mặc định

Làm thế nào để chọn số lượng cụm?

Để chọn số lượng cụm trong phân cụm theo thứ bậc, chúng tôi sử dụng khái niệm gọi là dendrogram

Dendrogram là gì?

Dendrogram là một biểu đồ dạng cây thể hiện mối quan hệ thứ bậc giữa các quan sát. Nó chứa bộ nhớ của các thuật toán phân cụm theo thứ bậc

Chỉ cần nhìn vào Dendrogram, bạn có thể biết cụm được hình thành như thế nào. Hãy xem cách tạo dendrogram cho các điểm dữ liệu bên dưới

Các quan sát E và F gần nhau nhất bởi bất kỳ điểm nào khác. Vậy chúng được gộp lại thành một cụm và chiều cao của mắt xích nối chúng lại với nhau là nhỏ nhất. Các quan sát tiếp theo gần nhau nhất là A và B được kết hợp với nhau

Điều này cũng có thể được quan sát thấy trong dendrogram vì chiều cao của khối giữa A và B lớn hơn một chút so với E và F. Tương tự, D có thể được hợp nhất thành các cụm E và F và sau đó C có thể được kết hợp thành cụm đó. Cuối cùng A và B kết hợp với C, D, E và F để tạo thành một cụm duy nhất

Điểm quan trọng cần lưu ý khi đọc dendrogram là

  1. Chiều cao của các khối biểu thị khoảng cách giữa các cụm và
  2. Khoảng cách giữa các quan sát thể hiện sự không giống nhau

Nhưng câu hỏi vẫn không thay đổi, làm cách nào để chúng tôi tìm thấy số lượng cụm bằng cách sử dụng dendrogram hoặc chúng tôi nên dừng hợp nhất các cụm ở đâu. Các quan sát được phân bổ cho các cụm bằng cách vẽ một đường ngang qua dendrogram

Nói chung, chúng tôi cắt dendrogram theo cách nó cắt đường thẳng đứng cao nhất. Trong ví dụ trên, chúng ta có hai cụm. Một cụm có các quan sát A và B, và cụm thứ hai có C, D, E và F

Phân cụm theo thứ bậc phân chia

Phân cụm theo thứ bậc phân chia không được sử dụng nhiều trong việc giải quyết các vấn đề trong thế giới thực. Nó hoạt động theo cách ngược lại của cụm kết tụ. Trong phần này, chúng tôi bắt đầu với tất cả các điểm dữ liệu dưới dạng một cụm duy nhất

Tại mỗi lần lặp lại, chúng tôi tách các điểm hoặc cụm xa nhất không giống nhau cho đến khi mỗi điểm dữ liệu được coi là một cụm riêng lẻ. Ở đây chúng tôi đang chia các cụm đơn lẻ thành n cụm, do đó có tên là phân cụm chia

Phân cụm theo cấp bậc trong Python

Để minh họa ứng dụng phân cụm theo cấp bậc trong Python, chúng tôi sẽ sử dụng bộ dữ liệu Iris. Bộ dữ liệu Iris là một trong những bộ dữ liệu phổ biến nhất được sử dụng trong học máy cho mục đích minh họa

Dữ liệu Iris có 3 loại hoa Iris là 3 lớp trong biến phụ thuộc. Và nó chứa bốn biến độc lập là chiều dài đài hoa, chiều rộng đài hoa, chiều dài cánh hoa và chiều rộng cánh hoa, tất cả đều tính bằng cm. Chúng ta sẽ so sánh các lớp ban đầu với các lớp được hình thành bằng phương pháp phân cụm theo thứ bậc

Nhập dữ liệu

Chúng tôi sẽ nhập tập dữ liệu từ thư viện sklearn

Bộ dữ liệu Iris

Trực quan hóa các lớp học

Biểu đồ phân tán ở trên cho thấy cả ba lớp hoa Iris đều chồng lên nhau. Nhiệm vụ của chúng tôi là hình thành cụm bằng cách sử dụng phân cụm theo thứ bậc và so sánh chúng với các lớp ban đầu

Tạo chương trình dendro

Chúng tôi bắt đầu bằng cách nhập thư viện sẽ giúp tạo dendrogram. Dendrogram giúp đưa ra ý tưởng sơ bộ về số lượng cụm

Bằng cách xem chương trình dendro ở trên, chúng tôi chia dữ liệu thành ba cụm

Phù hợp với mô hình

Chúng tôi khởi tạo AgglomerativeClustering. Truyền khoảng cách euclide làm thước đo khoảng cách giữa các điểm và liên kết phường để tính toán độ gần của cụm. Sau đó, chúng tôi điều chỉnh mô hình trên các điểm dữ liệu của mình. Cuối cùng, chúng tôi trả về một mảng các số nguyên trong đó các giá trị tương ứng với các danh mục riêng biệt bằng cách sử dụng thuộc tính lables_

Đầu ra ở trên hiển thị các giá trị của 0, 1, 2, vì chúng tôi đã xác định 4 cụm. 0 đại diện cho các điểm thuộc về cụm đầu tiên và 1 đại diện cho các điểm trong cụm thứ hai. Tương tự, thứ ba đại diện cho các điểm trong cụm thứ ba

Trực quan hóa cụm

Vẫn còn sự chồng chéo giữa các cụm Loại 1 và Loại 3. Nhưng nếu bạn so sánh với các cụm ban đầu, thì việc phân loại đã được cải thiện khá nhiều

Ưu và nhược điểm của phân cụm theo thứ bậc

1. Giống như phân cụm K-means, chúng ta không cần chỉ định số lượng cụm cần thiết cho thuật toán

2. Nó không hoạt động tốt trên tập dữ liệu lớn. Nó thường được áp dụng cho dữ liệu nhỏ hơn. Nếu bạn có một tập dữ liệu lớn, việc xác định đúng số lượng cụm bằng chương trình dendro có thể trở nên khó khăn

3. So với K-means, phân cụm theo cấp bậc nặng về mặt tính toán và mất nhiều thời gian hơn để chạy

Sự kết luận

Bất chấp những hạn chế của phân cụm theo cấp bậc khi nói đến tập dữ liệu lớn, nó vẫn là một công cụ tuyệt vời để xử lý tập dữ liệu vừa và nhỏ và tìm các mẫu trong đó. Trong bài viết này, chúng tôi đã xử lý các khái niệm cơ bản về phân cụm theo cấp bậc, đây là một loại thuật toán học tập không giám sát và cách triển khai nó trong Python

Nếu bạn muốn tìm hiểu về các thuật toán học tăng cường và có giám sát cũng như việc triển khai chúng trong lĩnh vực giao dịch, bạn có thể xem các khóa học trên Quantra

từ chối trách nhiệm. Thông tin trong dự án này là đúng và đầy đủ theo sự hiểu biết tốt nhất của Học sinh. Tất cả các đề xuất được đưa ra mà không có bảo đảm từ phía học viên hoặc QuantInsti®. Sinh viên và QuantInsti® từ chối mọi trách nhiệm pháp lý liên quan đến việc sử dụng thông tin này. Tất cả nội dung được cung cấp trong dự án này chỉ dành cho mục đích thông tin và chúng tôi không đảm bảo rằng bằng cách sử dụng hướng dẫn, bạn sẽ thu được lợi nhuận nhất định

Chủ Đề