Clustering, hay phân nhóm, là kỹ thuật quan trọng trong học máy không cần nhãn, giúp nhóm các đối tượng tương tự nhau trong một tập dữ liệu. Với nhiều phương pháp khác nhau như k-means, hierarchical clustering và DBSCAN, clustering cung cấp các cách tiếp cận đa dạng nhằm phát hiện cấu trúc ngầm của dữ liệu. Bài viết này sẽ cung cấp kiến thức sâu rộng và ứng dụng của clustering trong thực tế.
Trong lĩnh vực học máy, clustering hay còn gọi là phân cụm là một quá trình quan trọng giúp khám phá các cấu trúc dữ liệu không cần đến nhãn trước. Không giống như các phương pháp học có giám sát như classification (phân loại) đòi hỏi dữ liệu được dán nhãn từ trước, clustering chủ yếu tập trung vào việc tìm ra các mẫu tự nhiên có trong dữ liệu. Mục tiêu của clustering là xác định tổ chức và mô hình trong dữ liệu để từ đó có được những thông tin giá trị mà không cần sự can thiệp từ con người.
Clustering là một phương pháp học không giám sát, điều này có nghĩa là nó không cần nhãn dữ liệu để hoạt động. Một cách dễ hiểu, nếu classification dùng để phân loại trái cây cụ thể như táo, chuối hay cam dựa trên nhãn đã biết, thì clustering sẽ giúp nhóm trái cây thành từng cụm, chẳng hạn như nhóm trái cây hình tròn hoặc nhóm trái cây hình dài mà không cần biết chính xác loại trái cây đó là gì.
Tuy nhiên, khác với classification, clustering không thể gán nhãn cụ thể cho từng đối tượng trong cụm mà chỉ giúp tách biệt chúng thành nhóm dựa trên những thuộc tính tương đồng. Điểm mạnh của clustering nằm ở khả năng khám phá dữ liệu mới, tìm ra những mẫu chưa từng được nhận diện trước đây, điều này đặc biệt hữu ích trong các tình huống mà không có đủ dữ liệu huấn luyện được dán nhãn.
Một trong những loại clustering phổ biến nhất là k-means clustering. Đây là kỹ thuật phân cụm đơn giản và thường được sử dụng rộng rãi nhờ vào tính dễ hiểu và hiệu quả trong tính toán. K-means tìm cách phân chia dữ liệu thành k cụm, mỗi cụm có một tâm được tính toán liên tục để tối ưu hóa khoảng cách giữa tâm cụm và các điểm dữ liệu trong cụm.
Bên cạnh đó, Hierarchical clustering là một kỹ thuật khác cung cấp cái nhìn sâu sắc hơn về cấu trúc dữ liệu nhờ vào việc tạo ra một cây phân cấp (dendrogram) thể hiện mối quan hệ thứ tự giữa các đối tượng. Mặc dù khá mạnh mẽ trong việc biểu diễn cấu trúc dữ liệu phức tạp, hierarchical clustering lại yêu cầu lượng lớn tài nguyên tính toán, đặc biệt khi xử lý lượng dữ liệu lớn.
Một loại clustering hiện đại và hữu ích khác là DBSCAN (Density-Based Spatial Clustering of Applications with Noise). DBSCAN hoạt động dựa trên khái niệm cụm dày đặc và có khả năng phát hiện các điểm nhiễu (noise) trong dữ liệu, điều mà các phương pháp clustering truyền thống có thể bỏ qua. Đây là ưu điểm lớn của DBSCAN khi làm việc với các bộ dữ liệu phức tạp và có nhiễu.
Tuy nhiên, không có một phương pháp clustering nào là hoàn hảo cho mọi tình huống. Việc lựa chọn một thuật toán clustering phù hợp phụ thuộc vào đặc điểm cụ thể của dữ liệu, yêu cầu của bài toán và nguồn tài nguyên tính toán sẵn có. K-means, hierarchical clustering hay DBSCAN đều có ưu nhược điểm riêng mà người dùng cần cân nhắc trước khi áp dụng vào thực tế.
Clustering khác gì so với Classification
Trong lĩnh vực học máy, Clustering và Classification là hai kỹ thuật quan trọng dùng để phân tích dữ liệu. Tuy nhiên, hai phương pháp này có các mục tiêu và cách tiếp cận hoàn toàn khác nhau. Trong khi Classification là một bài toán có giám sát, đòi hỏi dữ liệu được gán nhãn trước để xây dựng mô hình dự đoán, Clustering lại là một bài toán không giám sát, tập trung vào việc phân nhóm dữ liệu mà không cần nhãn.
Một ví dụ điển hình của Classification là việc phân loại email thành thư rác và không phải thư rác. Ở đây, bạn cần có tập dữ liệu bao gồm các email đã được gán nhãn là "thư rác" hoặc "không thư rác". Mọi thuật toán sử dụng dữ liệu này để học cách phân loại thư mới vào một trong hai loại.
Ngược lại, Clustering lại không yêu cầu dữ liệu gán nhãn trước. Một ví dụ thực tế cho việc sử dụng Clustering là phân nhóm khách hàng theo hành vi mua sắm. Ở đây, các khách hàng sẽ được nhóm lại dựa trên những điểm tương đồng mà không cần biết trước những nhãn nào sẽ được áp dụng.
Một lợi ích lớn của Clustering là khả năng phát hiện những mẫu mới trong dữ liệu, giúp tổ chức nắm bắt được các thông tin ẩn mới mà không cần sự can thiệp quá sâu vào dữ liệu. Điều này rất hữu ích trong các trường hợp như phát hiện gian lận, khi mà có những mẫu gian lận mới xuất hiện mà chưa tồn tại trong tập dữ liệu gán nhãn.
Ứng dụng thực tế của Classification có thể kể đến việc dự đoán bệnh lý từ dữ liệu xét nghiệm y tế, dự đoán thị trường chứng khoán, hay nhận diện đối tượng trong ảnh. Các mô hình Classification phổ biến bao gồm Support Vector Machines (SVM), Random Forests, và Neural Networks.
Ngược lại, Clustering thường được sử dụng trong phân tích thị trường khách hàng để xác định các phân khúc khác nhau dựa trên hành vi tiêu dùng, trong phát hiện mẫu trong dữ liệu quần thể sinh học, hoặc trong phân tích văn bản để khám phá các chủ đề tiềm ẩn trong dữ liệu văn bản không có nhãn trước.
Việc chọn lựa giữa Clustering và Classification không phải lúc nào cũng rõ ràng và phụ thuộc vào mục tiêu cuối cùng của bài toán. Nếu bạn có sẵn nhãn dữ liệu và cần mô hình để dự đoán, Classification sẽ là lựa chọn hàng đầu. Trong khi đó, nếu dữ liệu chưa được gán nhãn và bạn muốn tìm hiểu các cấu trúc ẩn bên trong nó, thì Clustering là phương pháp phù hợp hơn cả.
Hy vọng với những thông tin và ví dụ minh họa trên, bạn đọc sẽ hiểu rõ hơn về sự khác biệt giữa Clustering và Classification. Cả hai phương pháp đều có giá trị to lớn và mang lại nhiều lợi ích trong các tình huống khác nhau của hoạt động phân tích dữ liệu.
Các thuật toán Clustering phổ biến
Clustering hay phân cụm dữ liệu là một kỹ thuật học máy không giám sát dùng để nhóm các đối tượng có đặc điểm giống nhau vào cùng một cụm. Phương pháp này rất hữu dụng khi chúng ta không có nhãn dữ liệu và muốn khám phá cấu trúc tự nhiên trong tập dữ liệu. Trong phần này, chúng ta sẽ tìm hiểu chi tiết về các thuật toán clustering phổ biến như K-means, Hierarchical Clustering và DBSCAN. Mỗi thuật toán có cách tiếp cận riêng biệt và thích hợp trong các tình huống khác nhau.
K-means Clustering
K-means là một trong những thuật toán clustering đơn giản và phổ biến nhất. Nguyên tắc cơ bản của K-means là phân chia dữ liệu thành K cụm sao cho khoảng cách giữa các điểm trong cùng một cụm là nhỏ nhất.
Bên dưới là cách hoạt động của thuật toán K-means:
Bước 1: Chọn K điểm ngẫu nhiên làm centroid (tâm của cụm).
Bước 2: Gán mỗi điểm dữ liệu vào cụm có centroid gần nhất.
Bước 3: Cập nhật vị trí của mỗi centroid thành trung bình của các điểm dữ liệu được gán cho cụm đó.
Bước 4: Lặp lại Bước 2 và 3 cho đến khi các centroid không thay đổi (hoặc sự thay đổi ở mức không đáng kể).
Thông thường, để chọn số lượng cụm K thích hợp, chúng ta có thể sử dụng phương pháp Elbow hoặc Silhouette Score (sẽ được thảo luận trong chương tiếp theo). K-means thường hoạt động tốt với các dữ liệu có hình cầu và đồng đều kích thước.
Hierarchical Clustering
Hierarchical Clustering (phân cụm phân cấp) xây dựng một hệ thống thứ bậc cho các cụm bằng cách liên tục phân chia hoặc gộp các điểm dữ liệu. Có hai cách tiếp cận chính là Agglomerative (gộp nhóm) và Divisive (phân chia).
Trong Agglomerative, mỗi điểm dữ liệu bắt đầu là một cụm riêng biệt và các cụm gần nhau được gộp lại dần dần. Ngược lại, với Divisive, dữ liệu bắt đầu ở một cụm lớn và chia nhỏ dần thành các cụm nhỏ hơn.
Thuật toán hoạt động dựa trên các thước đo khoảng cách giữa các cụm như:
- Single linkage: Khoảng cách giữa hai cụm là khoảng cách giữa hai điểm gần nhau nhất trong hai cụm.
- Complete linkage: Khoảng cách giữa hai cụm là khoảng cách giữa hai điểm xa nhau nhất.
- Average linkage: Là trung bình của tất cả các cặp điểm giữa hai cụm.
Hierarchical Clustering rất hữu dụng khi không biết trước số lượng cụm vì nó tạo ra cây phân cấp, nhưng không thích hợp với dữ liệu lớn do computational cost cao.
DBSCAN Clustering
DBSCAN (Density-Based Spatial Clustering of Applications with Noise) là một thuật toán phân cụm dựa trên mật độ, hữu ích trong việc tìm kiếm các cụm có hình dạng bất kỳ và nhận dạng nhiễu trong dữ liệu.
Hoạt động của DBSCAN dựa trên ý tưởng rằng một cụm là một khu vực mật độ cao tách biệt với các khu vực mật độ thấp. Thuật toán có hai tham số chính:
- Epsilon (ε): Bán kính tìm kiếm lân cận.
- MinPts: Số điểm dữ liệu tối thiểu để hình thành một cụm.
DBSCAN bắt đầu từ một điểm bất kỳ và kiểm tra mật độ cục bộ. Nếu số lượng điểm trong miền ε đạt MinPts, nó sẽ mở rộng cụm. Quá trình này được lặp cho đến khi tất cả các điểm được xử lý.
Một trong những ưu điểm lớn nhất của DBSCAN là nó có thể phát hiện nhiễu và hoạt động tốt trên các dữ liệu có hình dạng và kích thước khác nhau, điều mà K-means không làm được.
Qua việc hiểu rõ về cách hoạt động của các thuật toán clustering khác nhau, ta có thể áp dụng chúng hợp lý vào các tình huống cụ thể. Trong chương tiếp theo, chúng ta sẽ tìm hiểu cách đánh giá hiệu quả của các thuật toán này thông qua các phương pháp như Elbow Method và Silhouette Score.
Cách đánh giá hiệu quả phân cụm
Khi đã hiểu rõ về các thuật toán clustering phổ biến, việc đánh giá hiệu quả của quá trình phân cụm trở thành bước tiếp theo cần thiết để đạt được kết quả tốt nhất. Để đo lường chất lượng của các cụm đã tạo ra, các phương pháp như Elbow Method và Silhouette Score thường được sử dụng. Hai phương pháp này đóng vai trò quan trọng trong việc xác định sự phù hợp và tối ưu của từng cụm đối với dữ liệu gốc.
Elbow Method
Elbow Method là một phương pháp hình ảnh giúp xác định số lượng cụm tối ưu trong một tập dữ liệu. Bằng cách tính toán tổng bình phương khoảng cách của mỗi điểm dữ liệu tới tâm cụm tương ứng (WCSS), người dùng có thể tìm ra "điểm khuỷu" khi biểu đồ WCSS được vẽ dựa trên số lượng cụm. Điểm mà biểu đồ bắt đầu có sự thay đổi nhỏ về độ dốc là vị trí mà số lượng cụm có thể được tối ưu.
Sử dụng Elbow Method không đòi hỏi phức tạp, nhưng lại rất hiệu quả trong các tình huống dữ liệu có dạng phân tầng rõ ràng. Tuy nhiên, một trong những hạn chế của phương pháp này là nó thường không hữu ích với dữ liệu không tách biệt rõ ràng hoặc có cấu trúc phức tạp.
Silhouette Score
Silhouette Score là một hình thức đo lường độ gần gũi và phân biệt mà các điểm dữ liệu có giữa cụm của chúng và cụm gần nhất khác. Điểm Silhouette truy cập nằm trong khoảng từ -1 đến 1, nơi giá trị gần 1 thể hiện phân cụm phù hợp tốt và giá trị gần 0 chỉ ra các điểm trên đường biên giữa hai cụm. Một giá trị âm cho thấy điểm dữ liệu có thể đã được đặt sai.
Silhouette Score được cho là phù hợp trong các tình huống khi mô hình phân cụm tạo ra nhiều cụm và người dùng cần một chỉ số đánh giá nhanh để xác định mức độ phù hợp của từng cụm. Nó cũng hỗ trợ tốt trong việc điều chỉnh mô hình phân cụm để cải thiện hiệu quả bằng cách xác định các điểm dữ liệu không được phân cụm hợp lý.
Phân tích kết quả và tối ưu mô hình
Sau khi áp dụng các phương pháp đánh giá như Elbow Method và Silhouette Score, phân tích kết quả giúp điều chỉnh và cải thiện mô hình phân cụm. Nếu Elbow Method gợi ý nhiều cụm hơn nên thử nghiệm, người dùng có thể xem xét điều chỉnh số lượng cụm hoặc điều chỉnh dữ liệu đầu vào để đạt được sự rõ ràng hơn. Tuy nhiên, cần nhớ rằng không phải lúc nào việc tăng số lượng cụm cũng là giải pháp tối ưu, mà đôi khi cần phải xem xét lại cách tiếp cận hay các tham số của mô hình phân cụm hiện tại.
Silhouette Score thể hiện rõ việc điều chỉnh mô hình bóng bay đến từng cụm, từ đó cho phép tuỳ chỉnh mô hình cho phù hợp hơn với cấu trúc dữ liệu. Bằng cách phân tích điểm Silhouette, người dùng có cơ hội phát hiện các cụm không hợp lý và tối ưu lại để cải thiện chất lượng phân cụm nói chung.
Việc đánh giá và tối ưu mô hình phân cụm không chỉ mang lại hiệu quả cao hơn mà còn cung cấp một cái nhìn sâu hơn về cách thức dữ liệu được nhóm lại, khuấy động cho các giai đoạn phân tích dữ liệu tiếp theo.
Khi nào nên dùng Clustering
Trong lĩnh vực phân tích dữ liệu, clustering tỏ ra vô cùng hữu ích khi phải đối mặt với dữ liệu mà chúng ta biết rất ít thông tin trước đó. Điều này đặc biệt quan trọng khi công việc yêu cầu phải phân loại dữ liệu từ những nguồn không có gán nhãn hay chưa được phân loại đặc biệt. Clustering không chỉ dùng để tổ chức và phân loại dữ liệu mà còn giúp tìm ra những mối quan hệ tiềm ẩn trong tập dữ liệu mà trước đây chưa được xem xét.
Một trong những ứng dụng phổ biến nhất của clustering là trong phân khúc khách hàng. Clustering cho phép doanh nghiệp phân nhóm các khách hàng dựa trên một số đặc điểm như hành vi mua sắm, sở thích, hoặc thậm chí mức chi tiêu. Điều này giúp các công ty tiếp cận khách hàng một cách hiệu quả hơn thông qua các chiến dịch marketing được điều chỉnh để phù hợp với từng phân khúc khách hàng nhất định.
Trong lĩnh vực y tế, clustering có thể được áp dụng để phát hiện mẫu trong dữ liệu y tế, như phân nhóm bệnh nhân dựa trên triệu chứng, chẩn đoán, hoặc phản ứng với một phương pháp điều trị cụ thể. Việc này không những hỗ trợ việc xác định các phương pháp điều trị hiệu quả mà còn giúp phát hiện những căn bệnh tiềm ẩn chưa được chẩn đoán.
Bên cạnh đó, trong ngành thương mại điện tử, các doanh nghiệp có thể sử dụng clustering để hiểu rõ hơn về hành vi tiêu dùng của khách hàng. Bằng cách phân tích dữ liệu mua sắm và đánh giá, chúng ta có thể phân nhóm khách hàng theo nhiều tiêu chí khác nhau. Kết quả là, doanh nghiệp có thể điều chỉnh chiến lược bán hàng, cải thiện trải nghiệm người dùng và tăng mức độ hài lòng của khách hàng.
Hiểu rõ thị trường cũng là một ứng dụng mạnh mẽ khác của clustering. Trong phân tích thị trường, clustering giúp nhận biết những xu hướng tiềm ẩn và phân khúc thị trường dựa trên các yếu tố không rõ ràng như hành vi tiêu dùng hay mối quan hệ giữa khách hàng và sản phẩm. Điều này giúp doanh nghiệp đưa ra quyết định chiến lược và tiếp cận thị trường một cách thông minh hơn.
Quan trọng hơn hết, clustering tỏ ra cực kỳ lý tưởng trong các tình huống mà thông tin trước về dữ liệu rất hạn chế hoặc dữ liệu bị lạc quan. Khi dữ liệu có thể ẩn chứa nhiều thông tin chưa được khám phá, clustering mang lại một công cụ mạnh mẽ giúp khám phá những mẫu dữ liệu này, từ đó hỗ trợ cho việc ra quyết định và chiến lược kinh doanh.
Với các ứng dụng thực tế rộng rãi trong nhiều ngành công nghiệp, clustering không chỉ giúp tổ chức và tận dụng tối đa dữ liệu, mà còn mở ra những cơ hội mới để nâng cao hiệu quả và sự chính xác trong phân tích và định hướng. Nó là công cụ không thể thiếu khi doanh nghiệp muốn khai thác triệt để dữ liệu rộng lớn và không đồng nhất của mình.
Ứng dụng thực tế của Clustering: Khám phá cách clustering được áp dụng trong thực tế
Hiện nay, clustering đang được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau nhờ khả năng phân loại đối tượng và phát hiện mẫu trong dữ liệu lớn, giúp cải thiện quyết định kinh doanh và nhận diện các xu hướng tiềm ẩn trong dữ liệu. Dưới đây, chúng ta sẽ cùng Mãnh Tử Nha từ blog nha.ai.vn tìm hiểu sâu hơn về những ứng dụng này.
Marketing và phân đoạn thị trường
Trong lĩnh vực marketing, clustering được sử dụng để phân đoạn thị trường, chia khách hàng thành các nhóm nhỏ dựa trên thói quen tiêu dùng, sở thích và nhu cầu. Với sự trợ giúp của clustering, doanh nghiệp có thể tạo ra các chiến lược marketing tùy chỉnh cho từng nhóm khách hàng, từ đó nâng cao hiệu quả tiếp thị và tăng trưởng doanh thu. Ví dụ, một chuỗi cửa hàng bán lẻ có thể sử dụng clustering để phân tích dữ liệu mua sắm của khách hàng, từ đó tạo ra các chương trình khuyến mãi phù hợp với từng phân khúc khách hàng.
Công nghệ sinh học và phát hiện mẫu
Trong lĩnh vực công nghệ sinh học, clustering được sử dụng để phát hiện mẫu trong dữ liệu gene hoặc protein phức tạp, góp phần quan trọng trong việc nghiên cứu và phát triển các liệu pháp điều trị bệnh. Ví dụ, các nhà khoa học có thể sử dụng clustering để phân tích dữ liệu biểu hiện gene, từ đó nhận diện những nhóm gene có liên quan đến một loại bệnh cụ thể hoặc phản ứng với một loại thuốc điều trị.
Dịch vụ tài chính và quản lý rủi ro
Trong ngành dịch vụ tài chính, clustering được ứng dụng để phát hiện các mẫu giao dịch bất thường, từ đó giúp công ty quản lý rủi ro hiệu quả hơn. Các giao dịch được nhóm lại để xác định những hoạt động khó hiểu hoặc đáng ngờ, từ đó phát hiện ra gian lận tài chính hoặc các rủi ro khác một cách nhanh chóng. Chẳng hạn, các ngân hàng có thể sử dụng clustering để phân tích dữ liệu giao dịch thẻ tín dụng, giúp xác định những giao dịch có khả năng gian lận cao.
Khám phá xu hướng trong dữ liệu khách hàng
Clustering không chỉ dừng lại ở việc phân nhóm mà còn giúp phát hiện những xu hướng chưa được biết đến trong dữ liệu khách hàng. Doanh nghiệp có thể phân tích dữ liệu lịch sử của khách hàng để khám phá những mẫu hình tiêu dùng mới, từ đó điều chỉnh sản phẩm và dịch vụ để đáp ứng kịp thời những nhu cầu đang nổi lên. Điều này đặc biệt quan trọng trong một thế giới mà nhu cầu khách hàng luôn biến đổi.
Ứng dụng trong các ngành khác
Ngoài các ứng dụng trên, clustering còn được áp dụng trong nhiều ngành công nghiệp khác như y tế, viễn thông, giáo dục và logistics. Trong y tế, clustering giúp phân tích các dữ liệu bệnh nhân để tạo ra các kết luận đáng tin cậy về điều kiện sức khỏe và điều trị phù hợp. Trong viễn thông, các nhà cung cấp dịch vụ có thể sử dụng clustering để phân tích dữ liệu sử dụng dịch vụ, từ đó tối ưu hóa chất lượng dịch vụ và phát triển các gói dịch vụ mới đáp ứng nhu cầu khách hàng.
Nhìn chung, clustering đang trở thành một công cụ quan trọng và không thể thiếu trong việc khám phá và phân tích dữ liệu lớn, mang lại lợi ích thiết thực cho nhiều lĩnh vực ngành công nghiệp và xã hội.
Ví dụ minh họa bằng Python
Nếu bạn đã từng nghe qua về clustering, thì chắc chắn bạn sẽ muốn thử nghiệm chúng với các thư viện Python để áp dụng vào dữ liệu thực tế. Sử dụng scikit-learn, một thư viện mạnh mẽ cho machine learning trong Python, bạn có thể dễ dàng thực hiện các thuật toán clustering như k-means, hierarchical clustering và DBSCAN.
1. K-Means Clustering
K-Means là một thuật toán phân cụm phổ biến, có tác dụng phân chia n quan sát thành k nhóm, trong đó mỗi nhóm được đại diện bởi trung tâm cụm (centroid). Để thực hiện K-Means Clustering với scikit-learn, trước tiên chúng ta cần chuẩn bị dữ liệu.
Bước 1: Chuẩn bị dữ liệu
Bạn có thể tạo một bộ dữ liệu ví dụ bằng cách sử dụng thư viện NumPy hoặc sử dụng một bộ dữ liệu sẵn có từ scikit-learn.
from sklearn.datasets import make_blobs
import numpy as np
X, y = make_blobs(n_samples=300, centers=4, cluster_std=0.6, random_state=0)
Bước 2: Áp dụng K-Means
Tiếp theo, chúng ta sẽ huấn luyện mô hình K-Means.
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=4)
kmeans.fit(X)
y_kmeans = kmeans.predict(X)
Bước 3: Trực quan hóa kết quả
Kế đến, chúng ta trực quan hóa dữ liệu và các trung tâm cụm để quan sát kết quả phân cụm.
import matplotlib.pyplot as plt
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.75 , marker='x' )
plt.show()
2. Hierarchical Clustering
Khác với K-Means, hierarchical clustering tạo ra một cây phân cấp các nhóm dữ liệu. Dưới đây là cách thực hiện với scikit-learn.
Bước 1: Cài đặt Hierarchical Clustering
Chúng ta sẽ sử dụng thuật toán Agglomerative Clustering.
from sklearn.cluster import AgglomerativeClustering
hc = AgglomerativeClustering(n_clusters=4, affinity='euclidean', linkage='ward')
y_hc = hc.fit_predict(X)
Bước 2: Trực quan hóa kết quả
Bạn có thể trực quan hóa kết quả phân cụm bằng cách biểu diễn dữ liệu lên đồ thị và tô màu theo kết quả.
plt.scatter(X[:,0], X[:,1], c=y_hc, cmap='viridis')
plt.show()
3. DBSCAN
DBSCAN là một thuật toán phân cụm dựa trên mật độ, rất hiệu quả với dữ liệu có hình dạng không đều và chứa nhiễu.
Bước 1: Áp dụng DBSCAN
Thực hiện DBSCAN bằng cách chỉ định các tham số cần thiết như epsilon và min_samples.
from sklearn.cluster import DBSCAN
dbscan = DBSCAN(eps=0.3, min_samples=5)
y_dbscan = dbscan.fit_predict(X)
Bước 2: Trực quan hóa kết quả
Với DBSCAN, bạn cũng có thể vẽ đồ thị kết quả phân nhóm.
plt.scatter(X[:,0], X[:,1], c=y_dbscan, cmap='viridis')
plt.show()
Với các ví dụ trên, hy vọng bạn có thể áp dụng các thuật toán clustering vào các dự án dữ liệu của mình. Việc hiểu cách thức hoạt động và ứng dụng thực tế của các mô hình này sẽ tạo điều kiện tăng cường khả năng phân tích dữ liệu và giải quyết các bài toán phức tạp trong học máy của bạn.
Kết luậnClustering là một phần không thể thiếu của học máy, cho phép các nhà
khoa học dữ liệu khám phá cấu trúc ẩn trong dữ liệu mà không cần phụ thuộc vào nhãn. Phương pháp này được ứng dụng rộng rãi để phân khúc khách hàng, dự đoán nhu cầu và phát hiện mẫu. Hiểu rõ về các thuật toán và cách đánh giá hiệu quả của chúng giúp cải thiện mạnh mẽ chất lượng phân tích dữ liệu và ra quyết định kinh doanh thông minh hơn.