Rate this post

Trước đây, chúng ta đã xem xét phân tích dữ liệu đồ họa trong R, bây giờ, đã đến lúc nghiên cứu phân tích cụm trong R. Trước tiên, chúng ta sẽ tìm hiểu về các nguyên tắc cơ bản của Clustering R, sau đó tiến hành khám phá các ứng dụng của nó, các phương pháp luận khác nhau như tổng hợp độ tương đồng và cũng triển khai gói Rmap và thuật toán Clustering K-Means của riêng chúng tôi trong R.

Clustering trong R là gì?

Clustering là một kỹ thuật phân đoạn dữ liệu phân chia dữ liệu thành nhiều nhóm dựa trên sự giống nhau của chúng. 

Về cơ bản, chúng tôi nhóm dữ liệu thông qua một phép toán thống kê. Các nhóm nhỏ hơn này được hình thành từ dữ liệu lớn hơn được gọi là các cụm. Cụm này thể hiện các thuộc tính sau:

  • Chúng được phát hiện trong khi thực hiện các hoạt động và kiến ​​thức về số của chúng không được biết trước.
  • Các cụm là tập hợp các đối tượng giống nhau có chung các đặc điểm.

Clustering là phương pháp phân tích dữ liệu và khai thác dữ liệu phổ biến và rộng rãi nhất. Nó được sử dụng trong các trường hợp dữ liệu đầu vào cơ bản có khối lượng khổng lồ và chúng tôi được giao nhiệm vụ tìm kiếm các tập con tương tự có thể được phân tích theo một số cách.

Ví dụ – Một công ty tiếp thị có thể phân loại khách hàng của họ dựa trên nền tảng kinh tế, độ tuổi và một số yếu tố khác để bán sản phẩm của họ theo cách tốt hơn.

Các ứng dụng của Clustering R như sau:

  • Tiếp thị –  Trong lĩnh vực tiếp thị, chúng tôi sử dụng tính năng Clustering để khám phá và chọn lọc những khách hàng là những người mua sản phẩm tiềm năng. Điều này phân biệt những khách hàng dễ mến nhất với những khách hàng ít có xu hướng mua sản phẩm nhất. Sau khi các cụm đã được phát triển, doanh nghiệp có thể theo dõi khách hàng của mình và đưa ra các quyết định cần thiết để giữ chân họ trong cụm đó.
  • Bán lẻ – Các  ngành bán lẻ tận dụng việc Clustering để phân nhóm khách hàng dựa trên sở thích, phong cách, cách lựa chọn trang phục cũng như sở thích của cửa hàng. Điều này cho phép họ quản lý các cửa hàng của mình một cách hiệu quả hơn nhiều.
  • Khoa học y tế –  Y học và các ngành y tế sử dụng các thuật toán Clustering để tạo điều kiện thuận lợi cho việc chẩn đoán và điều trị hiệu quả cho bệnh nhân của họ cũng như phát hiện ra các loại thuốc mới. Dựa trên độ tuổi, nhóm, mã hóa di truyền của bệnh nhân, các tổ chức này có khả năng hiểu chẩn đoán tốt hơn thông qua phân nhóm mạnh mẽ.
  • Xã hội học –  Phân nhóm được sử dụng trong hoạt động Khai thác dữ liệu để phân chia mọi người dựa trên nhân khẩu học, lối sống, tình trạng kinh tế xã hội, v.v. Điều này có thể giúp các cơ quan thực thi pháp luật nhóm những tội phạm tiềm ẩn và thậm chí xác định chúng bằng cách triển khai hiệu quả thuật toán phân nhóm.

Trong các trường khác nhau, Clustering R có các tên khác nhau, chẳng hạn như:

  • Tiếp thị – Trong tiếp thị, thuật ngữ ‘ phân đoạn ‘ hoặc ‘ phân tích kiểu mẫu ‘ có sẵn để Clustering.
  • Y học – Clustering trong y học được gọi là nosology .
  • Sinh học –  Nó được gọi là phân loại số trong lĩnh vực Sinh học.

Để xác định các tiêu chí chính xác cho việc Clustering và sử dụng các thuật toán hiệu quả, công thức chung như sau:

Bn (số phân vùng cho n đối tượng)> exp (n)

Bạn có thể xác định mức độ phức tạp của việc Clustering bằng số lượng các kết hợp có thể có của các đối tượng. Độ phức tạp của cụm phụ thuộc vào con số này.

Cơ sở để nối hoặc tách các đối tượng là khoảng cách giữa chúng. Những khoảng cách này là không giống nhau (khi các đối tượng ở xa nhau) hoặc tương tự (khi các đối tượng ở gần nhau).

Xem thêm Clustering Density-based trong mining dữ liệu

Phương pháp đo khoảng cách giữa các đối tượng

Để tính toán khoảng cách giữa các đối tượng trong K-mean, chúng tôi sử dụng các loại phương pháp sau:

  • Khoảng cách Euclide –  Đây là phương pháp được sử dụng rộng rãi nhất để đo khoảng cách giữa các đối tượng hiện diện trong không gian đa chiều.

Nói chung, đối với một không gian n chiều, khoảng cách là

  • Khoảng cách Euclid  bình phương – Điều này thu được bằng cách bình phương Khoảng cách Euclid. Các vật thể hiện diện ở khoảng cách xa hơn được ấn định trọng lượng lớn hơn.
  • Khoảng cách  giữa các khối phố (Manhattan) – Sự khác biệt giữa hai điểm trong tất cả các chiều được tính bằng phương pháp này. Nó tương tự như Khoảng cách Euclide trong nhiều trường hợp nhưng nó có thêm chức năng trong việc giảm hiệu ứng ở các đối tượng cực trị không có tọa độ bình phương.

Bình phương quán tính là  tổng bình phương có trọng số  của các bình phương trong khoảng các điểm từ trung tâm của cụm được chỉ định có tổng được tính toán.

Chúng tôi thực hiện phép tính Tổng bình phương của các cụm trên tâm của chúng như sau:

Tổng hình vuông (I) = Tổng hình vuông giữa cụm (I R ) + Tổng hình vuông trong cụm (I A )

Công thức trên được gọi là Công thức Huygens .

Các Between-Cụm Sum của hình vuông được tính bằng cách đánh giá bình phương của sự khác biệt từ trung tâm của lực hấp dẫn từ mỗi cụm, bổ sung của họ.

Chúng tôi thực hiện phép tính Tổng trong Cụm của các hình vuông thông qua quá trình khai quật bình phương chênh lệch so với trọng tâm cho mỗi cụm nhất định và phép cộng của chúng trong cụm đơn. Với sự giảm dần của cụm, dân số trở nên tốt hơn.

R bình phương (RSQ)  mô tả tỷ lệ của tổng bình phương có trong các cụm. Tỷ lệ gần hơn với 1, tốt hơn là Clustering. Tuy nhiên, mục tiêu của một người không phải là tối đa hóa chi phí vì kết quả là sẽ dẫn đến số lượng lớn hơn các cụm. Do đó, chúng tôi yêu cầu R 2 lý tưởnggần hơn 1 nhưng không tạo ra nhiều cụm. Khi chúng ta di chuyển từ k đến k + 1 cụm, có một sự gia tăng đáng kể trong giá trị của R 2

Một số thuộc tính của Clustering hiệu quả là:

  • Phát hiện cấu trúc có trong dữ liệu.
  • Xác định các cụm tối ưu.
  • Đưa ra các cụm phân biệt có thể đọc được.
  • Đảm bảo sự ổn định của cụm ngay cả khi có những thay đổi nhỏ về dữ liệu.
  • Xử lý hiệu quả khối lượng lớn dữ liệu.
  • Xử lý các kiểu dữ liệu khác nhau của các biến.

Lưu ý: Trong trường hợp đúng clustering, hoặc là tôi Rlớn hay tôi Mộtnhỏ trong khi tính tổng bình phương.

Việc Clustering chỉ được khởi động lại sau khi chúng tôi đã thực hiện diễn giải, biến đổi dữ liệu cũng như loại trừ các biến. Trong khi loại trừ biến, nó chỉ đơn giản là không được tính đến trong quá trình Clustering. Biến này trở thành một biến minh họa.

Clustering phân cấp tổng hợp

Trong Agglomerative Hierarchical Clustering (AHC), chuỗi phân vùng lồng nhau của n cụm được tạo ra. Các phân vùng lồng nhau có thứ tự tăng dần tính không đồng nhất tăng dần. Chúng tôi sử dụng AHC nếu khoảng cách là trong một cá nhân hoặc một không gian thay đổi. Khoảng cách giữa hai đối tượng hoặc cụm phải được xác định trong khi thực hiện phân loại.

Thuật toán cho AHC như sau:

  • Đầu tiên chúng ta quan sát các cụm ban đầu.
  • Trong bước tiếp theo, chúng tôi đánh giá khoảng cách giữa các cụm.
  • Sau đó, chúng tôi tiến hành hợp nhất các cụm gần nhất với nhau và thực hiện thay thế chúng bằng một cụm duy nhất.
  • Chúng tôi lặp lại bước 2 cho đến khi cuối cùng chỉ còn lại một cụm duy nhất.

AHC tạo ra một loại cây được gọi là dendrogram . Sau khi tách dendrogram này, chúng tôi thu được các cụm.

Clustering phân cấp được sử dụng rộng rãi nhất trong việc xác định các mẫu trong hình ảnh kỹ thuật số, dự đoán giá cổ phiếu, khai thác văn bản, v.v. Nó cũng được sử dụng để nghiên cứu phân loại trình tự protein.

1. Khoảng cách chính

  • Khoảng cách tối đa –  Trong khoảng cách này, khoảng cách lớn nhất giữa hai đối tượng được quan sát có các cụm có đường kính bằng nhau.
  • Khoảng cách tối thiểu – Khoảng cách tối thiểu giữa hai quan sát mô tả kỹ thuật lân cận hoặc phương pháp AHC liên kết đơn.

Trong trường hợp này, khoảng cách tối thiểu giữa các điểm của các cụm khác nhau được cho là lớn hơn các điểm tối đa có trong cùng một cụm. Khoảng cách giữa các điểm của các cụm khoảng cách được cho là cao hơn các điểm có mặt trong cùng một cụm.

2. Ước tính mật độ 

Trong ước tính mật độ, chúng tôi phát hiện cấu trúc của các cụm phức tạp khác nhau. Ba phương pháp để ước tính mật độ trong Clustering như sau:

  • Phương pháp k-hàng xóm gần nhất –  Số lượng k quan sát tập trung vào x xác định mật độ tại điểm x. Thể tích của hình cầu càng phân chia điều này.
  • Phương pháp hạt nhân đồng nhất – Trong phương pháp  này, bán kính là cố định nhưng số lượng các vùng lân cận thì không.
  • Phương pháp lai Wong – Chúng tôi sử dụng phương pháp  này trong phân tích sơ bộ.

Clustering theo Tổng hợp Tương tự

Clustering theo sự giống nhau Tổng hợp được gọi là Clustering quan hệ, còn được biết đến với tên phương pháp Condorcet.

Với phương pháp này, chúng tôi so sánh tất cả các đối tượng riêng lẻ theo từng cặp giúp xây dựng Clustering toàn cục. Nguyên tắc về quan hệ tương đương thể hiện ba thuộc tính – tính phản xạ, tính đối xứng và tính chuyển đổi.

  • Độ phản xạ => M ii = 1
  • Đối xứng => M ij = M ij
  • Độ nhạy => M ij + M jk – M i <= 1

Loại thuật toán Clustering này sử dụng một cách tiếp cận trực quan. Một cặp giá trị riêng lẻ (A, B) được gán cho các vectơ m (A, B) và d (A, B). Cả A và B đều có cùng giá trị theo m (A, B) trong khi trong trường hợp d (A, B), chúng có các giá trị khác nhau.

Hai cá nhân A và B tuân theo Tiêu chí Condorcet như sau:

c (A, B) = m (A, B) -d (A, B)

Đối với một cá thể A và cụm S, tiêu chí Condorcet như sau:

c (A, S) = Σ i c (A, B i )

Tổng tổng thể là B i ∈ S .

Với các điều kiện trước, chúng ta bắt đầu bằng cách xây dựng các cụm đặt mỗi A riêng lẻ vào cụm S. Trong cụm c (A, S) này, A là lớn nhất và có giá trị nhỏ nhất bằng 0.

Trong bước tiếp theo, chúng tôi tính toán tiêu chí Condorcet toàn cầu thông qua tổng hợp các cá nhân có mặt trong A cũng như cụm S A  chứa chúng.

Lưu ý : Một số lần lặp lại tiếp theo cho đến khi chúng tôi đạt đến số lần lặp lớn nhất được chỉ định hoặc tiêu chí Condorcet toàn cầu không còn cải thiện nữa.

K-Means Clustering trong R

Một trong những thuật toán phân vùng phổ biến nhất trong clustering là K-means cụm phân tích trong R . Nó là một thuật toán học tập không giám sát. Nó cố gắng Clustering dữ liệu dựa trên sự giống nhau của chúng. Ngoài ra, chúng tôi đã chỉ định số lượng cụm và chúng tôi muốn dữ liệu phải được nhóm thành các cụm giống nhau. Thuật toán chỉ định mỗi quan sát cho một cụm và cũng tìm ra tâm của mỗi cụm.

Thuật toán K-mean:

  • Chọn K trọng tâm (K hàng được chọn ngẫu nhiên).
  • Sau đó, chúng ta phải gán mỗi điểm dữ liệu cho tâm gần nhất của nó.
  • Hơn nữa, nó tính toán lại các trọng tâm là trung bình của tất cả các điểm dữ liệu trong một cụm.
  • Gán các điểm dữ liệu cho các trung tâm gần nhất của chúng.
  • Hơn nữa, chúng ta phải tiếp tục các bước 3 và 4 cho đến khi các quan sát không được chỉ định lại.

Thuật toán này hoạt động theo các bước sau:

1. Chỉ định số lượng cụm K mong muốn : Chúng ta hãy chọn k = 2 cho 5 điểm dữ liệu này trong không gian 2D.

2. Gán mỗi điểm dữ liệu cho một cụm : Hãy gán ba điểm trong cụm 1 sử dụng màu đỏ và hai điểm trong cụm 2 sử dụng màu vàng (như trong hình).

3. Trung tâm của cụm máy tính : Trọng tâm của các điểm dữ liệu trong cụm màu đỏ được hiển thị bằng cách sử dụng chữ thập đỏ và các điểm trong cụm màu vàng sử dụng dấu thập màu vàng.

4. Chỉ định lại các điểm cho cụm gần nhất của chúng trong centroid:  Các cụm màu đỏ chứa các điểm dữ liệu được gán cho phía dưới mặc dù nó gần tâm điểm nhất của cụm màu vàng. Do đó, chúng tôi gán điểm dữ liệu đó vào một cụm màu vàng.

5. Tính toán lại các trọng tâm của cụm : Bây giờ, tính toán lại các trọng tâm cho cả hai cụm. Chúng tôi thực hiện lặp lại bước 4 và 5 và cho đến thời điểm đó không thể thực hiện thêm cải tiến nào nữa. Chúng tôi sẽ lặp lại các bước thứ 4 và thứ 5 cho đến khi chúng tôi đạt được optima toàn cầu. Điều này tiếp tục cho đến khi không thể chuyển đổi nữa. Sau đó, nó sẽ đánh dấu sự kết thúc của thuật toán nếu không được đề cập.

Bây giờ chúng ta sẽ hiểu thuật toán k-mean với ví dụ sau:

> library(tidyverse)
> library(cluster)
> library(factoextra)
> library(gridExtra)
> data('USArrests') 
> d_frame <- USArrests
> d_frame <- na.omit(d_frame)  #Removing the missing values
> d_frame <- scale(d_frame)
> head(d_frame)

Đầu ra:

> kmeans2 <- kmeans(d_frame, centers = 2, nstart = 25)
> str(kmeans2)

Đầu ra:

> fviz_cluster ( kmeans2, data = d_frame )

Đầu ra:

> kmeans3 <- kmeans(d_frame, centers = 3, nstart = 25) 
> kmeans4 <- kmeans(d_frame, centers = 4, nstart = 25)  
> kmeans5 <- kmeans(d_frame, centers = 5, nstart = 25)  
> #Comparing the Plots
> plot1 <- fviz_cluster(kmeans2, geom = "point", data = d_frame) + ggtitle("k = 2")
> plot2 <- fviz_cluster(kmeans3, geom = "point", data = d_frame) + ggtitle("k = 3")
> plot3 <- fviz_cluster(kmeans4, geom = "point", data = d_frame) + ggtitle("k = 4")
> plot4 <- fviz_cluster(kmeans5, geom = "point", data = d_frame) + ggtitle("k = 5")
> grid.arrange(plot1, plot2, plot3, plot4, nrow = 2)

Đầu ra:

Lập hồ sơ mạng với K-Means Clustering

Thông thường, để thuê nhân viên, các công ty sẽ thực hiện kiểm tra lý lịch thủ công. Loại kiểm tra này tốn nhiều thời gian và không thể xem xét nhiều yếu tố. Tuy nhiên, với sự trợ giúp của các thuật toán học máy, giờ đây có thể tự động hóa nhiệm vụ này và chọn những nhân viên có nền tảng và quan điểm đồng nhất với công ty. Trong những trường hợp như thế này, các phương pháp phân tích cụm như phương tiện k có thể được sử dụng để tách các ứng viên dựa trên các đặc điểm chính của họ.

Với cách tiếp cận mới đối với hồ sơ mạng, có thể phân loại nội dung web bằng cách sử dụng tùy chọn của người dùng dữ liệu. Tùy chọn này được coi là nhóm dữ liệu đầu vào ban đầu sao cho cụm kết quả sẽ cung cấp hồ sơ của người dùng. Dữ liệu được truy xuất từ ​​nhật ký của các trang web mà người dùng đã truy cập trong thời gian họ ở lại tổ chức.

Bản tóm tắt

Trong hướng dẫn Clustering R, chúng tôi đã xem qua các khái niệm khác nhau về Clustering trong R. Chúng tôi cũng đã nghiên cứu một ví dụ điển hình trong đó phân nhóm có thể được sử dụng để thuê nhân viên tại một tổ chức. Chúng ta đã xem qua một hướng dẫn ngắn về K-means clustering.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now