Tổng quan về K-means - K-means là một thuật toán phân cụm không giám sát được sử dụng để phânloại dữ liệu vào các nhóm khác nhau dựa trên đặc trưng của chúng, thực hiện việcphân chia các
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO NGÂN HÀNG NHÀ NƯỚC VIỆT NAM
TRƯỜNG ĐẠI HỌC NGÂN HÀNG TP.HCM
BÁO CÁO BÀI TẬP NHÓM
Môn : Khoa Học Dữ Liệu
Đề tài : K-mean ( Gom cụm)
Giảng viên hướng dẫn: Ths.Nguyễn Hồng Ân
Trang 24 Cao Võ Viết Bằng 050610220829
MỤC LỤC
LỜI MỞ ĐẦU & LÝ DO CHỌN ĐỀ TÀI
I Giới thiệu về thuật toán K-means
1 Tổng quan về K-means
2 Nội dung của K-means
3 Đặc điểm của thuật toán K-means
4 Các biến thể của K-means
4.1 Thuật toán K-medoid:
4.2 Thuật toán Fuzzy c-mean (FCM):
5 Tầm quan trọng của K-means trong phân tích dữ liệu
II Nguyên lý hoạt động của K-means
1 Cách K-means hoạt động
2 Các bước thực hiện của K-means
3 Cách chọn số lượng cụm k
3.1 Phân tích đồ thị Elbow:
3.2 Phương pháp Silhouette:
3.3 Kiến thức chuyên môn:
3.4 Thử nghiệm và đánh giá:
3.5 Phương pháp Gap:
III Ứng dụng của thuật toán K-means trong thực tế
1 Các lĩnh vực ứng dụng của K-means
1.1 Phân khúc khách hàng
1.2 Phân tích thị trường
1.3 Tài Chính
1.4 Y tế
1.5 An Ninh
1.6 Phân đoạn ảnh hoặc nén hình ảnh: các nhóm tương tự nhau về hình ảnh hoặc màu sắc
1.7 Phát hiện bất thường: những gì không giống nhau — hoặc các ngoại lệ từ các cụm
2
Trang 31.8 Học bán giám sát:
2 Các ví dụ cụ thể về việc sử dụng K-means
2.1 Ứng dụng thuật toán k-means trong phân tích khách hàng
2.2 Ứng dụng thuật toán k-means trong phân tích thị trường:
2.3 Ứng dụng thuật toán k-means trong tài chính:
2.4 Ứng dụng thuật toán k-means trong y tế
2.5 Ứng dụng thuật toán k-means trong an ninh:
2.6 Ứng dụng phân loại về hình ảnh hoặc màu sắc trong k-Means:
2.7 Ứng dụng các ngoại lệ từ các cụm trong k-Means:
2.8 Học bán giám sát
IV K-means trong Python
1 Giới thiệu về thư viện scikit-learn
2 Cách sử dụng K-means trong Python
3 Một ví dụ cụ thể về việc sử dụng K-means trong Python
V Kết luận
DANH MỤC TÀI LIỆU THAM KHẢO
3
Trang 4LỜI MỞ ĐẦU & LÝ DO CHỌN ĐỀ TÀI
Với việc sử dụng Internet ngày càng tăng trong xã hội ngày nay, lượng dữliệu được tạo ra là vô cùng lớn Dữ liệu trong tự nhiên là một tài nguyên vô tận, nótồn tại ở rất nhiều dạng, vật chất, thông tin kể cả con người và số lượng dữ liệu cầnphân tích làm cho việc xử lý trở nên khó khăn ngay cả đối với máy tính Trong thờiđại của công nghệ thông tin, dữ liệu của tự nhiên dần dần chuyển thành thông tin vàlưu trữ khắp nơi trên thế giới số
Trong thực tế, không phải lúc nào cũng có dữ liệu được gắn nhãn một cáchhoàn chỉnh cho chúng ta làm dựa vào để huấn luyện các mô hình MachineLearning Đôi khi chúng ta chỉ có dữ liệu thô không nhãn và cần phải tự điều chỉnh,phân loại dữ liệu để lấy thông tin hữu ích từ dữ liệu đó Bài toán phân loại dữ liệukhông nhãn, hay còn gọi là phân cụm (Clustering), là một trong những bài toánquan trọng của Machine Learning
Để quản lý các quy trình như vậy, chúng ta cần các công cụ phân tích dữ liệulớn Các phương pháp và kỹ thuật khai thác dữ liệu, kết hợp với học máy, cho phépchúng ta phân tích lượng lớn dữ liệu một cách có ý nghĩa K-means là một kỹ thuậtphân cụm dữ liệu có thể được sử dụng cho học máy không giám sát Nó có khảnăng phân loại dữ liệu chưa được gán nhãn vào một số cụm xác định dựa trên sựtương đồng (k)
Trong các thuật toán và khai phá dữ liệu, thuật toán phân cụm dữ liệu đượcbiết đến nhiều vì khả năng áp dụng của nó trong công việc phân tích và chọn lọc dữliệu cần thiết từ nguồn dữ liệu số Và trong các thuật toán phân cụm đó, thuật toánK-means được xem như một thuật toán cơ bản, khởi đầu cho phương pháp khai phá
Trang 5tìm hiểu về thuật toán K-means Clustering, cách hoạt động của thuật toán, và một sốứng dụng của nó.
Tuy còn hạn chế nhưng thuật toán K-means là nền tảng, chỉ ra một hướng đi
và khai phá dữ liệu bằng cách gom cụm và đạt được hiệu quả cao Không nhữngvậy, K-means còn là khởi đầu cho nhiều thuật toán phân cụm ra đời tiếp theo vớimục đích đạt được hiệu quả tối ưu nhất
Bài tập nhóm của chúng em còn nhiều thiếu sót, chúng em mong nhận đượcnhững ý kiến góp ý từ giảng viên để cải thiện bài luận, mở mang tri thức về lĩnh vựckhoa học dữ liệu và học máy để có thể áp dụng vào công việc nghiên cứu sau này
I Giới thiệu về thuật toán K-means
1 Tổng quan về K-means
- K-means là một thuật toán phân cụm không giám sát được sử dụng để phânloại dữ liệu vào các nhóm khác nhau dựa trên đặc trưng của chúng, thực hiện việcphân chia các đối tượng thành các cụm có chung điểm tương đồng và không giốngvới các đối tượng thuộc cụm khác Thuật toán này hoạt động bằng cách tìm kiếmcác trung tâm cụm tối ưu để mô phỏng các nhóm trong dữ liệu
- K-means Clustering là một thuật toán thuộc nhóm unsupervised learning(thuật toán học không giám sát), là nhóm các điểm dữ liệu không được gắn nhãnthành k cụm khác nhau sao các điểm dữ liệu mà trong cùng một cụm có các thuộctính tương tự
- Thuật ngữ ‘K’ là một số, là nhóm các điểm dữ liệu tương tự lại với nhauthành các cụm bằng cách giảm thiểu khoảng cách trung bình giữa các điểm hìnhhọc Để làm như vậy, nó lặp đi lặp lại phân vùng các bộ dữ liệu thành một số cốđịnh (K) của các nhóm con (hoặc cụm) không chồng chéo trong đó mỗi điểm dữliệu thuộc về cụm có trung tâm cụm trung bình gần nhất Chúng ta cho hệ thống biếtcần tạo bao nhiêu cụm
- Ví dụ, K=3 đề cập đến ba cụm Có một cách để tìm ra giá trị tốt nhất hoặctối ưu của K cho một dữ liệu nhất định
5
Trang 6- Trong thuật toán k-Means mỗi cụm dữ liệu được đặc trưng bởi mộttâm(centroid) tâm là điểm đại diện nhất cho một cụm và có giá trị bằng trung bìnhcủa toàn bộ các quan sát nằm trong cụm Chúng ta sẽ dựa vào khoảng cách từ mộtquan sát tới các tâm để xác định nhãn cho chúng trùng thuộc về tâm gần nhất Banđầu thuật toán sẽ khởi tạo ngẫu nhiên một số lượng xác định trước tâm cụm Sau đótiến hành xác định nhãn cho từng điểm dữ liệu và tiếp tục cập nhật lại tâm cụm.Thuật toán sẽ dừng cho tới khi toàn bộ các điểm dữ liệu được phân về đúng cụmhoặc số lượt cập nhật tâm chạm ngưỡng.
2 Nội dung của K-means
- K-means cần được giả định số K để xác định số lượng cụm cần được tạotrong quá trình phân nhóm, như nếu K = 2, sẽ có 2 cụm và đối với K = 3, sẽ có 3cụm … K-means dựa trên tâm mỗi cụm, trong đó các điểm dữ liệu bất kì đượcliên kết với một tâm Mục đích chính củaa thuật toán này là giảm thiểu tổng khoảngcách giữa điểm dữ liệu và tâm các cụm tương ứng của chúng Thuật toán lấy tập
dữ liệu không được gắn nhãn làm đầu vào, chia tập dữ liệu thành K số cụm và lặplại quá trình cho đến khi nó không tìm thấy cụm tối ưu hơn Giá trị của K cần đượcxác định trước trong thuật toán này
3 Đặc điểm của thuật toán K-means
Kết quả đầu ra phụ thuộc vào các giá trị ban đầu
Khó xác định được số cụm thực sự có trong không gian dữ liệu, phải thử vớinhiều K khác nhau.Đối với K nhỏ, ta có thể giảm thiểu sự phụ thuộc bằng
6
Trang 7cách chạy K-means nhiều lần với các giá trị khởi tạo khác nhau và chọn rakết quả tốt nhất Nhưng khi tăng K lên, ta cần có các phiên bản nâng cấp củaK-means đã chọn các giá trị tốt hơn của các tâm ban đầu (K-mean seeding)
Khó phát hiện các loại cụm có hình dạng phức tạp
Phân nhóm dữ liệu với các kích thước và mật độ khác nhau K-means gặp sự
cố khi phân cụm dữ liệu trong các cụm có kích thước và mật độ khác nhau
Để phân cụm dữ liệu như vậy, ta cần sửa đổi, nâng cấp K-means đã tổng quáthóa với các cụm có hình dạng, kích thước khác nhau
Không thể xử lý được nhóm các giá trị ngoại lai Các tâm có thể bị kéo theocác phần tử ngoại lai, hoặc các phần tử ngoại lai có thể nhận được cụm riêngthay vì bỏ qua chúng cần cân nhắc loại bỏ hoặc cắt bớt các điểm dữ liệungoại lai trước khi phân cụm
4 Các biến thể của K-means
4.1 Thuật toán K-medoid:
Medoids là một thuật toán phân cụm phân chia tập hợp các điểm dữ liệuxung quanh một trung gian (điểm khác biệt nhỏ nhất) và liên tục cố gắng giảm sựkhác biệt giữa các điểm trong cùng một cụm Điểm mấu chốt ở đây là medoid về cơbản là một điểm dữ liệu từ tập hợp đầu vào, không giống như k có nghĩa là giá trịtrung bình đơn thuần
- Nội dung thuật toán:
Thuật toán khá trực quan Nói cách khác, chúng ta được cung cấp hai tham
số đầu vào , tức là giá trị của k số lượng cụm sẽ được hình thành và tập dữ liệu màcác cụm hình thành Đầu tiên, lấy k số điểm dữ liệu ngẫu nhiên làm trung gian Sau
đó, đối với mọi điểm dữ liệu ngoại trừ những điểm được coi là trung bình, hãy tínhtoán sự không giống nhau với từng trung bình k bằng cách sử dụng bất kỳ số liệukhoảng cách nào như Euclidean, Manhattan hoặc bất kỳ thứ gì khác và bao gồmdòng điện trên cụm được đại diện bởi trung bình có ít khác biệt nhất với điểm hiệntại Khi mọi nút (các điểm) đã được gán cho một cụm, hãy tính tổng số điểm khônggiống nhau của lần lặp, là tổng các điểm không giống nhau giữa mọi nút và điểmtrung bình của cụm mà nó nằm trong đó Đây là một lần lặp lại Điều này sẽ đượclặp lại với các nút khác nhau dưới dạng trung bình cho đến khi tổng số điểm khácbiệt được tìm thấy lớn hơn lần lặp trước
7
Trang 8- Ưu & Nhược điểm K-Method:
Tương tự thuật toán K-mean
Mỗi cụm được đại diện bởi một trong các đối tượng của cụm
Chọn đối tượng ở gần tâm cụm nhất làm đại diện cho cụm đó
K-medoid khắc phục được nhiễu, nhưng độ phức tạp lớn hơn
4.2 Thuật toán Fuzzy c-mean (FCM):
- Từ những năm 1920, Lukasiewicz đã nghiên cứu cách diễn đạt toán học kháiniệm mờ Năm 1965, Lofti Zadeh đã phát triển lý thuyết khả năng và đề xuất hệthống logic mờ (fuzzy logic) Kỹ thuật này gom cụm một tập n vectơ đối tượng dữliệu X={x1,x2,…,xn} RS thành c các nhóm mờ dựa trên tính toán tối thiểu hóa⊂hàm mục tiêu để đo chất lượng của gom cụm và tìm trung tâm cụm trong mỗinhóm, sao cho chi phí hàm độ đo độ phi tương tự là nhỏ nhất
- Nội dung thuật toán :
Mỗi phần tử q V ban đầu đ ợc gán cho một tập trọng số Wqk, trong đó Wqkƣcho biết khả năng q thuộc về cụm k, (k=1,K) Wqk =1 Có nhiều cách tínhtrọng số Wqk khác nhau, trong đó Wqk =1/Dqk thường đ ợc sử dụng nhấtƣ(Dqk là khoảng cách từ q đến trọng tâm của cụm k)
Trong quá trình gom cụm trọng số này có thể đ ợc cập nhật ở mỗi bước lặpƣkhi trọng tâm của cụm bị thay đổi
Sau khi kết thúc quá trình gom cụm, một cụm không có mẫn nào sẽ bị loại,
do đó số cụm tìm đ ợc th ờng không biết trước.ƣ ƣ
Ưu nhược điểm của Fuzzy C-Means
Chung chiến lược phân cụm với K-mean
Nếu K-mean là phân cụm dữ liệu cứng (1 điểm dữ liệu chỉ thuộc về 1 cụm)thì FCM là phân cụm dữ liệu mờ (1 điểm dữ liệu có thể thuộc về nhiều hơn 1cụm với 1 xác suất nhất định)
Thêm yếu tổ quan hệ giữa các phần tử và các cụm dữ liệu thông qua cáctrọng số trong ma trận biểu biển bậc của các thành viên với 1 cụm
FCM khắc phục được các cụm dữ liệu chồng nhau trên các tập dữ liệu cókích thước lớn hơn, nhiều chiều và nhiều nhiều, song vẫn nhạy cảm vớinhiều và các phần tử ngoại lai
5 Tầm quan trọng của K-means trong phân tích dữ liệu
8
Trang 9K-means là một thuật toán quan trọng trong phân tích dữ liệu và có sự ứngdụng rộng rãi vì những lợi ích sau đây:
Phân cụm dữ liệu: K-means cho phép chúng ta phân cụm dữ liệu thànhcác nhóm dựa trên đặc điểm tương tự Việc phân cụm giúp chúng tahiểu và tóm tắt dữ liệu một cách cấu trúc và có thể khám phá các mẫu,nhóm, hay đặc điểm của dữ liệu mà không cần biết trước thông tin chitiết về từng nhóm
Khám phá kiểu dữ liệu: K-means có thể giúp phát hiện và phân loại cáckiểu dữ liệu khác nhau trong tập dữ liệu, nhưng không cần biết trước vềkiểu dữ liệu đó Bằng cách phân cụm dữ liệu, chúng ta có thể nhận racác nhóm dữ liệu tương tự và hiểu được các đặc điểm riêng biệt củatừng nhóm
Tóm tắt dữ liệu: K-means cho phép chúng ta tạo ra một số lượng hữuhạn các điểm trung tâm (centroid) đại diện cho mỗi nhóm dữ liệu Điềunày giúp giảm kích thước của dữ liệu ban đầu và tạo ra một tóm tắt đơngiản hơn của dữ liệu ban đầu
Phân loại và gom nhóm: K-means có thể được sử dụng để phân loại cácđiểm dữ liệu mới vào các nhóm đã được hình thành Sau khi huấn luyện
mô hình, chúng ta có thể sử dụng các trung tâm cụm đã tìm được để dựđoán nhãn của các điểm dữ liệu mới
Tiền xử lý dữ liệu: K-means có thể được sử dụng để xử lý và làm sạch
dữ liệu Bằng cách gán các điểm dữ liệu vào cụm tương ứng, chúng ta
có thể xác định và loại bỏ các ngoại lệ hoặc giá trị lỗi trong dữ liệu
Ví dụ về cách K-means có thể được sử dụng trong phân tích dữ liệu kinh doanh:
- Giả sử một nhà quản lý của một chuỗi cửa hàng bán lẻ muốn hiểu vàphân loại khách hàng của mình dựa trên hành vi mua hàng Nhà quản lý
có tập dữ liệu gồm các thông tin về mỗi khách hàng như tổng số tiền đãchi tiêu trong cửa hàng, số lần mua hàng, số lượng sản phẩm mua, vàthời gian từ lần mua hàng gần nhất
- Để sử dụng K-means trong phân tích này, nhà quản lý có thể thực hiệncác bước sau:
9
Trang 10 Bước 1: Chuẩn bị dữ liệu
Chuẩn bị dữ liệu khách hàng với các thuộc tính đã đề cập ở trên
Chuẩn hóa dữ liệu nếu cần thiết để đảm bảo rằng các đặc trưng có cùngphạm vi và đơn vị đo
Bước 2: Xác định số cụm (clusters) mong muốn
Dựa vào mục tiêu phân loại và số lượng khách hàng mong muốn, cần xácđịnh số cụm (K) mà chủ cửa hàng muốn phân chia khách hàng vào
Bước 3: Áp dụng thuật toán K-means
Áp dụng thuật toán K-means lên dữ liệu khách hàng với số cụm K đã xácđịnh
Thuật toán sẽ tiến hành tìm các trung tâm cụm (centroids) ban đầu và sau
đó điều chỉnh vị trí của chúng để tối thiểu hóa tổng bình phương khoảngcách giữa các điểm dữ liệu và trung tâm cụm tương ứng
Bước 4: Phân tích kết quả
Dựa trên kết quả của thuật toán K-means, các khách hàng sẽ được phânvào các cụm tương ứng Có thể phân tích từng cụm để hiểu và mô tả cácđặc điểm của khách hàng trong mỗi nhóm Ví dụ: nhóm có tổng số tiền chitiêu cao nhưng ít lần mua hàng, nhóm có số lượng sản phẩm mua nhiềunhưng tổng số tiền chi tiêu thấp, vv
Bước 5: Ứng dụng quyết định và chiến lược kinh doanh
Dựa trên thông tin từ phân tích K-means, có thể áp dụng các quyết định vàchiến lược kinh doanh phù hợp cho từng nhóm khách hàng Ví dụ: tạochương trình khuyến mãi dành riêng cho nhóm khách hàng chi tiêu cao,tăng cường quảng cáo đối với nhóm khách hàng mua ít lần nhưng sốlượng sản phẩm mua nhiều, vv
Trên đây chỉ là một ví dụ cơ bản về cách K-means có thể được áp dụngtrong phân tích dữ liệu kinh doanh Thực tế, phân tích dữ liệu kinh doanh
có thể bao gồm nhiều thuộc tính và biến số khác nhau, và việc sử dụng means có thể giúp ta hiểu rõ hơn về các nhóm khách hàng và tạo ra chiếnlược kinh doanh tốt hơn dựa trên thông tin đó
K-Tóm lại, K-means đóng vai trò quan trọng trong phân tích dữ liệu bằng cách cungcấp phương pháp phân cụm, khám phá kiểu dữ liệu, tóm tắt dữ liệu, phân loại và
10
Trang 11gom nhóm dữ liệu, cũng như tiền xử lý dữ liệu Nó là một công cụ hữu ích trongviệc hiểu và khám phá dữ liệu trong nhiều lĩnh vực như khoa học dữ liệu, khai phá
- Cách hoạt động của thuật toán K-Means:
Các giai đoạn sau sẽ giúp chúng ta hiểu cách hoạt động của kỹ thuật phân cụm Means:
K- Trước tiên, chúng ta cần cung cấp số lượng cụm K cần được tạo ra bởithuật toán này (Để biết thêm thông tin, hãy kiểm tra phần "Chọn K")
Tiếp theo, chọn K điểm dữ liệu ngẫu nhiên và gán mỗi điểm vào một cụm.Tạm thời, phân loại dữ liệu dựa trên số lượng điểm dữ liệu Khởi tạo các
11
Trang 12điểm trung tâm của cụm (centroids) bằng cách xáo trộn tập dữ liệu và sau
đó chọn các điểm dữ liệu K cho các centroid
Gán các điểm dữ liệu cho cụm có trung tâm gần nhất.Tính toán lại vị trítrung tâm bằng cách lấy giá trị trung bình của tất cả các điểm dữ liệu đượcgán cho cụm
Lặp lại các bước dưới đây cho đến khi tìm được trung tâm lý tưởng, tức làviệc gán điểm dữ liệu vào các cụm không thay đổi
i Đầu tiên, tính tổng bình phương khoảng cách giữa các điểm dữ liệu vàtrung tâm
12
Trang 13ii Tại điểm này, chúng ta cần gán mỗi điểm dữ liệu vào cụm gần nhất với cácđiểm khác (trung tâm).
iii Cuối cùng, tính toán trung tâm cho các cụm bằng cách lấy trung bình củatất cả các điểm dữ liệu trong cụm
K-means thực hiện chiến lược Expectation-Maximization để giải quyết vấn đề Bước Expectation: Trong thuật toán K-Means, bước Expectation là bước gán mỗiđiểm dữ liệu vào một cụm dựa trên trung tâm cụm gần nhất Quá trình này đượcthực hiện bằng cách tính toán khoảng cách giữa mỗi điểm dữ liệu và các trung tâmcụm, sau đó gán điểm dữ liệu vào cụm có trung tâm gần nhất
Cụ thể, quá trình Expectation trong K-Means bao gồm các bước sau:
Đầu tiên, chọn K trung tâm cụm ban đầu Các trung tâm cụm này có thểđược chọn ngẫu nhiên từ dữ liệu hoặc bằng cách sử dụng một phương phápkhởi tạo khác nhau
Tính toán khoảng cách giữa mỗi điểm dữ liệu và các trung tâm cụm hiện tại
Có nhiều phương pháp tính khoảng cách có thể được sử dụng, phổ biến nhất
Quá trình Expectation trong K-Means giúp xác định việc gán điểm dữ liệuvào từng cụm dựa trên khoảng cách Sau khi hoàn thành bước Expectation, tatiếp tục với bước Maximization để cập nhật lại trung tâm cụm dựa trên việcgán điểm dữ liệu vào các cụm Quá trình Expectation-Maximization lặp lạicho đến khi đạt được sự hội tụ và tìm ra trung tâm cụm lý tưởng
Trang 142 Các bước thực hiện của K-means
- Thuật toán phân cụm K-means tính toán các trung tâm và lặp lại cho đếnkhi tìm được trung tâm lý tưởng Giả định rằng chúng ta biết có bao nhiêu cụm Nócũng được gọi là thuật toán phân cụm phẳng Số lượng cụm được tìm thấy từ dữliệu bằng phương pháp này được ký hiệu bằng chữ "K" trong K-means
- Trong phương pháp này, các điểm dữ liệu được gán cho các cụm sao chotổng bình phương khoảng cách giữa các điểm dữ liệu và trung tâm cụm là nhỏ nhất
có thể Cần lưu ý rằng việc giảm đa dạng trong các cụm dẫn đến sự giống nhau hơngiữa các điểm dữ liệu trong cùng một cụm
- Thuật toán K-means thực hiện qua các bước chính sau:
Bước 1: Chọn ngẫu nhiên K tâm (centroid) cho K cụm (cluster) Một cụmđược đại diện bằng các tâm của cụm
Trong nghiên cứu, để xác định được số cụm tối ưu nhóm sử dụng phươngpháp Elbow Tiến hành chạy phân cụm trên tập dữ liệu cho một phạm vigiá trị của K (k từ 1 đến 10), tại vị trí k nào tạo thành khúc của khuỷu taythì chọn ra k tối ưu
Bước 2: Tính khoảng cách giữa các đối tượng (objects) đến K tâm(thường dùng khoảng cách Euclidean)
Bước 3: Nhóm các đối tượng vào nhóm gần nhất
Bước 4: Xác định lại tâm mới cho các nhóm
Bước 5: Thực hiện lại bước 2 cho đến khi không có sự thay đổi nhóm nàocủa các đối tượng
14
Trang 15Các bước thực hiện K-Means Clustering ( Zakrzewska and Murlewski, 2005)
- Các bước thực hiện của thuật toán K-means cụ thể như sau:
Bước 1: Khởi tạo các điểm trung tâm
Bước đầu tiên là khởi tạo các điểm trung tâm của các cụm Có nhiều cách để thựchiện việc này, chẳng hạn như chọn ngẫu nhiên, chọn theo tập dữ liệu huấn luyện,hoặc chọn theo một số heuristic cụ thể
Bước 2: Gán các điểm dữ liệu vào các cụm
Trong bước này, mỗi điểm dữ liệu sẽ được gán vào cụm có điểm trung tâm gầnnhất Để tính khoảng cách giữa một điểm dữ liệu và một điểm trung tâm, có thể sửdụng các phép đo khoảng cách khác nhau, chẳng hạn như khoảng cách Euclidean,khoảng cách Manhattan, hoặc khoảng cách Minkowski
Bước 3: Cập nhật các điểm trung tâm
Sau khi tất cả các điểm dữ liệu đã được gán vào các cụm, điểm trung tâm củamỗi cụm sẽ được cập nhật bằng cách tính trung bình của tất cả các điểm dữ liệuđược gán vào cụm đó
15
Trang 16 Bước 4: Kiểm tra điều kiện dừng
Nếu thuật toán đã hội tụ, tức là các điểm trung tâm của các cụm không thay đổisau khi cập nhật, thì thuật toán sẽ dừng Ngược lại, thuật toán sẽ tiếp tục lặp lại haibước trên cho đến khi hội tụ
Điều kiện dừng của thuật toán K-means thường được xác định bằng cáchgiới hạn số lần lặp lại của thuật toán hoặc bằng cách sử dụng một số heuristics cụthể
VÍ DỤ:
Đoạn mã trên sẽ cho kết quả như hình trên
3 Cách chọn số lượng cụm k.
- Lựa chọn số lượng cụm k trong k-Means là một quyết định quan trọng, vì nó
có thể ảnh hưởng đáng kể đến kết quả của thuật toán Nếu số lượng cụm quá ít, thìcác cụm có thể không đủ đại diện cho dữ liệu Ngược lại, nếu số lượng cụm quánhiều, thì các cụm có thể bị chồng lấp và không mang lại nhiều thông tin
- Có nhiều phương pháp khác nhau để lựa chọn số lượng cụm k trong Means Một số phương pháp phổ biến bao gồm:
k-16
Trang 173.1 Phân tích đồ thị Elbow:
Phương pháp này thường được sử dụng để chọn số lượng cụm K Đầu tiên,chúng ta tính toán giá trị của hàm mục tiêu (thường là tổng bình phương khoảngcách) cho các giá trị K từ 1 đến một giá trị tối đa đã cho Sau đó, chúng ta xem xét
đồ thị của các giá trị này và tìm điểm "khuỷu" của đường cong Số lượng cụm Ktương ứng với điểm khuỷu được chọn là giá trị tốt nhất
Trong thuật toán k-Means thì chúng ta cần phải xác định trước số cụm Câu hỏiđặt ra là đâu là số lượng cụm cần phân chia tốt nhất đối với một bộ dữ liệu cụ thể?Phương pháp Elbow là một cách giúp ta lựa chọn được số lượng các cụm phù hợpdựa vào đồ thị trực quan hoá bằng cách nhìn vào sự suy giảm của hàm biến dạng vàlựa chọn ra điểm khuỷu tay (elbow point) Để tìm hiểu phương pháp Elbow, bêndưới chúng ta cùng thử nghiệm vẽ biểu đồ hàm biến dạng bằng cách điều chỉnh sốlượng cụm của thuật toán k-Means
Vẽ biểu đồ hàm biến dạng:
17
Trang 18Điểm khuỷu tay là điểm mà ở đó tốc độ suy giảm của hàm biến dạng sẽ thay đổinhiều nhất Tức là kể từ sau vị trí này thì gia tăng thêm số lượng cụm cũng khônggiúp hàm biến dạng giảm đáng kể Nếu thuật toán phân chia theo số lượng cụm tại
vị trí này sẽ đạt được tính chất phân cụm một cách tổng quát nhất mà không gặp cáchiện tượng vị khớp (overfitting) Trong hình trên thì ta thấy vị trí của điểm khuỷutay chính là k=2 vì khi số lượng cụm lớn hơn 2 thì tốc độ suy giảm của hàm biếndạng dường như không đáng kể so với trước đó
Phương pháp Elbow là một phương pháp thường được sử dụng để lựa chọn sốlượng cụm phân chia hợp lý dựa trên biểu đồ, tuy nhiên có một số trường hợp chúng
ta sẽ không dễ dàng phát hiện vị trí của Elbow, đặc biệt là đối với những bộ dữ liệu
mà quy luật phân cụm không thực sự dễ dàng được phát hiện Nhưng nhìn chung thìphương pháp Elbow vẫn là một phương pháp tốt nhất được ứng dụng trong việc tìmkiếm số lượng cụm cần phân chia
3.2 Phương pháp Silhouette:
Phương pháp Silhouette được sử dụng để đánh giá chất lượng phân cụm means với các giá trị K khác nhau Nó tính toán một độ đo gọi là Silhouettescore cho mỗi điểm dữ liệu trong dữ liệu Silhouette score đo độ tương đồngcủa một điểm dữ liệu với cụm của nó so với các cụm khác Giá trị K tốt nhấtđược chọn là giá trị tương ứng với Silhouette score cao nhất
K-18