You are on page 1of 29

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN


---------------------------------------

BÁO CÁO HỌC PHẦN


KHAI THÁC DỮ LIỆU

PHÂN LOẠI TỰ ĐỘNG KHÁCH HÀNG SỬ DỤNG


THUẬT TOÁN K-MEANS

Hà Nội ─ Năm 2023

2
MỤC LỤC
DANH MỤC HÌNH ẢNH.................................................................................. 4
LỜI CẢM ƠN .................................................................................................... 5
LỜI NÓI ĐẦU ................................................................................................... 6
CHƯƠNG 1. BÀI TOÁN PHÂN LOẠI TỰ ĐỘNG KHÁCH HÀNG............. 8 1.1.
Tổng quan về khai thác dữ liệu và bài toán phân loại............................. 8

1.1.1. Khai thác dữ liệu.............................................................................. 8 1.1.2.

Bài toán phân nhóm dữ liệu ............................................................. 9 1.2. Thuật

toán K-means và bài toán phân loại tự động khách hàng ............ 10 1.2.1. Giới

thiệu bài toán ......................................................................... 10 1.2.2. Các khó

khăn thách thức của bài toán ............................................ 11 1.2.3. Đầu vào và

đầu ra của bài toán....................................................... 12 1.2.4. Ứng dụng của bài

toán ................................................................... 13 1.3. Cơ sở lý

thuyết..................................................................................... 14

CHƯƠNG 2. MỘT SỐ THUẬT TOÁN SỬ DỤNG ĐỂ PHÂN CỤM .......... 15 2.1.


Thuật toán K-means............................................................................. 15

2.1.1. Khái niệm ...................................................................................... 15

2.1.2. Cách hoạt động .............................................................................. 15

2.1.3. Phương pháp chọn số cụm tối ưu Elbow Method ........................... 23

2.1.4. Đánh giá thuật toán K-means......................................................... 24

2.2. DBSCAN (Density-Based Spatial Clustering of Applications with


Noise)............................................................................................................ 25

2.2.1. Khái niệm ...................................................................................... 25

2.2.2. Cách hoạt động .............................................................................. 26

2.2.3. Đánh giá ........................................................................................ 27

2.3. Hierarchical Clustering (Phân cụm phân cấp) ...................................... 28

2.3.1. Khái niệm ...................................................................................... 28


2.3.2. Cách hoạt động .............................................................................. 28

2.3.3. Biểu đồ Dendrogram trong phân cụm theo cấp bậc........................ 31

2.3.4. Đánh giá ........................................................................................ 32

2.4. Thuật toán Mean-shift.......................................................................... 33 2.4.1.

Khái niệm ...................................................................................... 33 2.4.2. Cách

hoạt động .............................................................................. 33 2.4.3. Đánh

giá ........................................................................................ 34 TÀI LIỆU THAM

KHẢO................................................................................ 36

DANH MỤC HÌNH ẢNH

LỜI NÓI ĐẦU


Quyển báo cáo này giới thiệu về đề tài "Phân loại tự động khách hàng bằng
thuật toán K-means". Đề tài này mô tả một nghiên cứu về cách áp dụng thuật toán
K-means để phân loại khách hàng một cách tự động. Chúng ta sống trong thời đại
số hóa, và việc hiểu và phân loại khách hàng dựa trên hành vi và dữ liệu của họ
là một yếu tố quan trọng để nâng cao hiệu suất kinh doanh và cung cấp dịch vụ cá
nhân hóa.
Trong thực tế, việc phân loại khách hàng có thể giúp doanh nghiệp xác định
nhu cầu của họ, tạo ra chiến dịch tiếp thị hiệu quả hơn và cung cấp dịch vụ tốt hơn.
Với nhận thức về những lợi ích này, nghiên cứu và áp dụng thuật toán K means cho
bài toán phân loại tự động khách hàng trở thành một giải pháp tiềm năng và mang
tính ứng dụng cao.
Để thực hiện nghiên cứu này, chúng tôi đã tiếp thu kiến thức và kỹ năng liên
quan đến thuật toán K-means, xử lý dữ liệu và phân tích kết quả. Đồng thời, chúng
tôi cũng đã nắm vững các công cụ và ngôn ngữ lập trình để triển khai thuật toán và
tạo ra một hệ thống đáng tin cậy và dễ sử dụng cho phân loại khách hàng.
Trong lời nói đầu này, chúng tôi sẽ trình bày một cái nhìn tổng quan về nội
dung và cấu trúc của báo cáo. Trước hết, chúng em sẽ trình bày cấu trúc của báo
cáo, bao gồm các chương chính và nội dung của từng chương. Các chương bao
gồm:
- Chương 1: Bài toán phân loại tự động khách hàng.
- Chương 2: Các thuật toán có thể sử dụng trong phân loại tự động khách
hàng.
- Chương 3: Sử dụng thuật toán K-means áp dụng vào bài toán phân loại
tự động khách hàng, kết quả thử nghiệm
Trước hết, chúng tôi sẽ giới thiệu lý do lựa chọn đề tài và mục tiêu của
nghiên cứu. Chúng tôi cũng sẽ tôn trọng tầm quan trọng của việc phân loại khách
7

hàng và làm rõ lợi ích của việc áp dụng thuật toán K-means trong việc thực hiện
nhiệm vụ này.
Tiếp theo, chúng tôi sẽ trình bày về thuật toán K-means và cách nó có thể
được áp dụng để phân loại khách hàng. Chúng tôi cũng sẽ trình bày về quy trình
thực hiện nghiên cứu và phân tích kết quả.
Chúng tôi xin gửi lời cảm ơn chân thành đến quý thầy/cô đã dành thời gian
và quan tâm để đọc báo cáo về đề tài của chúng tôi. Chúng tôi mong nhận được sự
đóng góp và phản hồi từ quý vị để tiếp tục phát triển và nâng cao khả năng phân
loại tự động khách hàng bằng thuật toán K-means.

Xin trân trọng cảm ơn!


8

CHƯƠNG 1. BÀI TOÁN PHÂN LOẠI TỰ


ĐỘNG KHÁCH HÀNG

1.1. Tổng quan về khai thác dữ liệu và bài toán phân loại

1.1.1. Khai thác dữ liệu

Khai thác dữ liệu là quá trình xác định các mẫu tiềm ẩn có tính hợp lệ,
mới lạ, có ích và có thể hiểu được trong một khối dữ liệu rất lớn.
Khai thác dữ liệu là một phần quan trọng đối với sự thành công của bất kỳ sáng
kiến phân tích nào. Các doanh nghiệp có thể sử dụng quy trình khai phá
kiến thức để tăng niềm tin của khách hàng, tìm kiếm nguồn doanh thu mới và
thu hút khách hàng quay lại. Quy trình khai thác dữ liệu hiệu quả hỗ trợ trong
nhiều khía cạnh khác nhau của việc lập kế hoạch kinh doanh và quản lý hoạt
động.
Một số ứng dụng thực tiễn của khai thác dữ liệu:
- Ngân hàng và bảo hiểm: Các dịch vụ tài chính có thể sử dụng ứng dụng khai
thác dữ liệu để giải quyết những vấn đề phức tạp liên quan đến gian lận,
tuân thủ, quản lý rủi ro và tỷ lệ khách hàng rời bỏ dịch vụ. Ví dụ: các công
ty bảo hiểm có thể phát hiện mức định giá sản phẩm tối ưu bằng cách so
sánh hiệu suất của sản phẩm trong quá khứ với mức định giá của đối thủ
cạnh tranh.
9

- Giáo dục: Các nhà cung cấp dịch vụ giáo dục có thể sử dụng thuật toán khai
thác dữ liệu để kiểm tra người học, tùy chỉnh bài học và biến quá trình học
tập thành một trò chơi. Nhờ có nhiều chế độ xem thống nhất, định hướng
theo dữ liệu về tiến độ của người học, các nhà giáo dục có thể nhận biết nhu
cầu của người học và hỗ trợ họ tốt hơn.
- Sản xuất: Các dịch vụ sản xuất có thể sử dụng kỹ thuật khai thác dữ liệu để
cung cấp phân tích mang tính dự đoán và theo thời gian thực về hiệu suất
thiết bị tổng thể, mức độ dịch vụ, chất lượng sản phẩm và hiệu quả của chuỗi
cung ứng. Ví dụ: các nhà sản xuất có thể sử dụng dữ liệu trước đây để dự
đoán sự hao mòn của máy móc sản xuất và dự liệu công tác bảo trì. Nhờ đó,
họ có thể tối ưu hóa lịch trình sản xuất và giảm thời gian ngừng hoạt động.
- Bán lẻ: Các công ty bán lẻ có cơ sở dữ liệu khách hàng lớn với dữ liệu thô về
hành vi mua hàng của khách hàng. Quy trình khai thác dữ liệu có thể xử lý
dữ liệu này để thu về thông tin chuyên sâu liên quan cho các chiến dịch tiếp
thị và dự báo doanh số bán hàng. Thông qua các mô hình dữ liệu chính xác
hơn, công ty bán lẻ có thể tối ưu hóa hoạt động bán hàng và kho vận để gia
tăng sự hài lòng của khách hàng. Ví dụ: quy trình khai thác dữ liệu có thể cho
biết các sản phẩm theo mùa phổ biến mà nhà bán lẻ có thể dự trữ trước để
tránh tình trạng thiếu hụt hàng vào phút cuối.

1.1.2. Bài toán phân nhóm dữ liệu

Bài toán phân nhóm dữ liệu (phân cụm, gom nhóm) là cách phân bổ các đối
tượng dữ liệu vào các nhóm/ cụm sao cho: Các đối tượng trong một cụm thì giống
nhau hơn các phần tử khác cụm.
Bài toán phân nhóm trong khoa học dữ liệu là quá trình tìm kiếm các phân
hoạch của tập dữ liệu. Mục tiêu là chia dữ liệu thành các nhóm có tính chất
tương tự nhau bên trong mỗi nhóm và khác biệt so với các nhóm khác.
10

Cách tiếp cận phổ biến trong phân nhóm là xác định các phân hoạch dữ liệu sao
cho tổng sự tương đồng giữa các điểm dữ liệu bên trong cùng một nhóm là lớn
nhất có thể, trong khi sự tương đồng giữa các nhóm lại là nhỏ nhất có thể.
Cho một bộ dữ liệu gồm n điểm, có rất nhiều phân hoạch có thể có. Mục tiêu
của bài toán phân nhóm là tìm ra một phân hoạch “tốt”.

1.2. Thuật toán K-means và bài toán phân loại tự động khách
hàng
1.2.1. Giới thiệu bài toán

Bài toán phân loại tự động khách hàng là một trong những ứng dụng quan trọng
của khoa học dữ liệu trong lĩnh vực tiếp thị và kinh doanh. Bài toán này tập trung
vào việc phân loại các khách hàng vào các nhóm dựa trên các đặc điểm và hành vi
của họ.
Mục tiêu của phân loại tự động khách hàng là hiểu rõ hơn về nhóm khách hàng
khác nhau trong cơ sở khách hàng. Qua đó, doanh nghiệp có thể tối ưu hóa chiến
lược tiếp thị, tăng cường tương tác và cung cấp giá trị tốt hơn cho từng nhóm
khách hàng.
Quy trình phân loại tự động khách hàng thường gồm các bước sau: - Thu thập
dữ liệu: Bắt đầu bằng việc thu thập dữ liệu về khách hàng từ nhiều nguồn
khác nhau như hành vi mua sắm, thông tin cá nhân, tương tác trực tuyến.
11

- Tiền xử lý dữ liệu: Dữ liệu thường đa dạng và không hoàn hảo, vì vậy


việc tiền xử lý như là xử lý dữ liệu thiếu, chuẩn hóa dữ liệu là cần thiết.
- Chọn số lượng nhóm (k): Xác định số lượng nhóm mà bạn muốn chia
khách hàng thành. Số lượng này có thể dựa trên kiến thức chuyên môn hoặc
được xác định bằng cách sử dụng các phương pháp đánh giá.
- Áp dụng K-means: Sử dụng thuật toán K-means để chia khách hàng
thành K nhóm. K-means sẽ cố gắng tìm ra K nhóm sao cho các khách
hàng trong cùng một nhóm có hành vi mua hàng tương tự nhau, trong
khi các nhóm khác nhau có hành vi khác biệt.
- Phân tích kết quả: Sau khi hoàn thành quá trình chia nhóm, phân tích kết
quả để hiểu các đặc điểm chung của từng nhóm khách hàng. Điều này
có thể giúp bạn tùy chỉnh chiến lược marketing, cải thiện dịch vụ, tối ưu
hóa chiến lược bán hàng, và nắm bắt nhu cầu cụ thể của từng nhóm
khách hàng.

1.2.2. Các khó khăn thách thức của bài toán

Đối với bài toán phân loại khách hàng nói riêng và bài toán phân nhóm nói
chung, chúng ta đều phải đối mặt với một số thách thức sau:
- Số lượng nhóm (K) cần chọn: việc xác định số lượng nhóm phù hợp để
phân loại khách hàng là một thách thức. Số lượng nhóm không chỉ ảnh
hưởng đến kết quả phân loại mà còn ảnh hưởng đến việc hiểu sâu hơn về
hành vi của khách hàng. Chọn sai số lượng nhóm có thể dẫn đến việc
gộp nhóm quá chung chung hoặc chia nhỏ nhóm một cách không cần
thiết.
- Tính chất đa dạng của dữ liệu khách hàng: Dữ liệu về khách hàng thường
rất đa dạng từ thông tin cá nhân đến hành vi mua hàng, và việc kết hợp
tất cả các đặc trưng này để tạo thành nhóm có thể là một thách thức. Một
số đặc trưng có thể không quan trọng hoặc không phản ánh
12

đúng hành vi mua hàng, và việc xử lý các đặc trưng này đòi hỏi sự
hiểu biết sâu rộng về lĩnh vực và dữ liệu.
- Định nghĩa đặc điểm chung của từng nhóm: Đôi khi, việc hiểu rõ và định
nghĩa được các đặc điểm chung của từng nhóm khách hàng sau khi đã
phân loại cũng là một thách thức. Có thể có sự mờ nhạt giữa các nhóm,
và việc xác định các đặc điểm cụ thể có thể đòi hỏi sự phân tích kỹ lưỡng
và sâu sắc.
- Độ chính xác của thuật toán: Mặc dù K-means là một công cụ phân loại
mạnh mẽ, nhưng nó cũng có nhược điểm, ví dụ như việc dựa vào việc
chọn điểm khởi tạo ban đầu có thể ảnh hưởng đến kết quả cuối cùng.
Nó cũng không hoạt động tốt trên các dữ liệu có hình dạng và kích
thước không đồng đều.
- Phân nhóm chéo lẫn nhau: Đôi khi, khách hàng có thể có nhiều đặc điểm
chung, điều này có thể dẫn đến việc chúng có thể được phân vào nhiều
nhóm khác nhau. Việc này có thể làm mờ đi ranh giới giữa các nhóm và
làm giảm sự chính xác của phân loại.

1.2.3. Đầu vào và đầu ra của bài toán

Bài toán phân loại tự động khách hàng thường sử dụng các đặc trưng từ dữ
liệu khách hàng làm đầu vào và đưa ra các nhóm hoặc các cụm khách hàng
tương ứng là kết quả đầu ra.
Đầu vào: dữ liệu tập hợp thông tin về khách hàng, bao gồm thông tin cá nhân
(như tuổi, giới tính, địa chỉ), thông tin giao dịch mua hàng (số lần mua, số lượng
sản phẩm mua, giá trị đơn hàng), thời gian mua hàng, lịch sử giao dịch, phản hồi từ
khách hàng (nếu có), và bất kỳ thông tin nào khác mô tả hành vi mua hàng
hoặc tương tác với sản phẩm/dịch vụ.
Đầu ra: Kết quả của bài toán với việc phân loại khách hàng thành các nhóm
tương tự nhau dựa trên các dữ liệu đầu vào. Mỗi nhóm này đại diện cho một loại
hành vi mua hàng hay một nhóm khách hàng cụ thể.
13

1.2.4. Ứng dụng của bài toán

Bài toán phân loại tự động khách hàng mang lại rất nhiều lợi ích đến cho các
doanh nghiệp và tổ chức. Họ có thể sử dụng thông tin từ việc phân loại khách hàng
để cải thiện dịch vụ và tối ưu hóa chiến lược kinh doanh. Một số ứng dụng cụ thể:
- Tối ưu hóa chiến lược tiếp thị và quảng cáo: Phân loại khách hàng giúp
xác định nhóm đối tượng mục tiêu cho các chiến dịch tiếp thị và quảng
cáo. Các thông điệp có thể được tùy chỉnh để phù hợp với nhu cầu, sở
thích và hành vi mua hàng cụ thể của từng nhóm khách hàng.
- Cải thiện trải nghiệm khách hàng: Hiểu rõ hơn về các nhóm khách hàng
giúp cải thiện trải nghiệm của họ. Các sản phẩm và dịch vụ có thể được
tùy chỉnh để đáp ứng nhu cầu đặc biệt của từng nhóm, từ việc cải thiện
giao diện người dùng đến việc cung cấp sản phẩm hoặc dịch vụ phù hợp
hơn.
- Dự đoán hành vi mua hàng: Phân loại khách hàng cung cấp thông tin về xu
hướng mua hàng trong tương lai. Dự đoán hành vi mua hàng có thể giúp
dự báo nhu cầu của khách hàng, từ đó tối ưu hóa quản lý hàng tồn kho và
chiến lược cung ứng.
- Tăng cường tìm kiếm khách hàng: Điều này bao gồm việc tìm kiếm khách
hàng tiềm năng và tối ưu hóa chiến lược để giữ chân khách hàng hiện tại.
Các chương trình khuyến mãi, ưu đãi đặc biệt hoặc dịch vụ chăm sóc
khách hàng có thể được tạo ra dựa trên thông tin từ phân loại khách hàng.
- Quản lý chuỗi cung ứng: Hiểu biết về hành vi mua hàng của các nhóm
khách hàng cũng hỗ trợ trong việc quản lý và tối ưu chuỗi cung ứng. Dự
đoán nhu cầu sản phẩm và dịch vụ cụ thể có thể giúp tăng cường quản lý
hàng tồn kho và kế hoạch sản xuất.
14

1.3. Cơ sở lý thuyết
Để thực hiện chủ đề nghiên cứu này, chúng em đã sử dụng kiến thức và kỹ năng
trong học phần “Học máy” , “Khai thác dữ liệu và ứng dụng”và một số học phần
liên quan. Các kiến thức này có thể gồm những phần sau đây: - Phân cụm dữ liệu:
+ Định nghĩa và mục đích của phân cụm dữ liệu.
+ Các phương pháp và thuật toán phân cụm dữ liệu thông dụng. +
Các độ đo và phương pháp đánh giá hiệu quả của phân cụm. - Thuật
toán K-means:
+ Nguyên lý hoạt động của thuật toán K-means.
+ Các bước thực hiện thuật toán K-means, bao gồm: khởi tạo điểm trung
tâm, gán các điểm dữ liệu vào các cụm, cập nhật lại các điểm trung tâm
và lặp lại quá trình cho đến khi hội tụ.
+ Các phương pháp khởi tạo điểm trung tâm ban đầu và các phương pháp
cập nhật điểm trung tâm trong thuật toán K-means.
- Tiêu chí đánh giá hiệu quả của thuật toán K-means:
+ Các độ đo phân tán trong cụm, bao gồm SSE (Sum of Squared Errors),
SSB (Sum of Squared Between), và silhouette coefficient.
+ Các phương pháp đánh giá số lượng cụm tối ưu, bao gồm Elbow Method
và Silhouette Method.
- Tiền xử lý dữ liệu cho bài toán phân loại tự động khách hàng: +
Thu thập dữ liệu khách hàng từ các nguồn khác nhau.
+ Chuẩn hóa và biểu diễn trực quan dữ liệu.
Cơ sở lý thuyết này cung cấp những kiến thức cần thiết để hiểu và áp dụng
thuật toán K-means vào bài toán phân loại tự động khách hàng. Nó giúp xác định
các phương pháp đánh giá và tối ưu hóa hiệu suất của thuật toán, cũng như cung
cấp cách tiền xử lý dữ liệu và ứng dụng trong lĩnh vực kinh doanh.
15

CHƯƠNG 2. MỘT SỐ THUẬT TOÁN SỬ


DỤNG ĐỂ PHÂN CỤM

2.1. Thuật toán K-means

2.1.1. Khái niệm

Thuật toán K-means clustering (phân cụm K-means) là một trong những
thuật toán cơ bản nhất trong học không giám sát (Unsupervised learning). Trong
thuật toán K-means clustering, chúng ta không biết nhãn (label) của từng điểm dữ
liệu. Mục đích là làm thể nào để phân dữ liệu thành các cụm (cluster) khác nhau sao
cho dữ liệu trong cùng một cụm có tính chất giống nhau. Mục tiêu của thuật toán là
tìm ra K điểm trung tâm (centroids) đại diện cho K nhóm dữ liệu khác nhau, sao
cho tổng bình phương khoảng cách giữa các điểm dữ liệu và điểm trung tâm gần
nhất là nhỏ nhất.

2.1.2. Cách hoạt động

Dưới đây là các bước cơ bản để thực hiện thuật toán K-means: 1. Khởi tạo:
Chọn ngẫu nhiên K điểm trong tập dữ liệu ban đầu làm các điểm trung tâm ban
đầu. Đây là các điểm đại diện cho K nhóm dữ liệu. 2. Phân loại: Với mỗi điểm
dữ liệu, tính khoảng cách Euclid từ điểm đó tới K điểm trung tâm và gán điểm
dữ liệu vào nhóm có điểm trung tâm gần nhất. Kết quả là một phân loại ban đầu
của dữ liệu thành các nhóm. 3. Cập nhật vị trí điểm trung tâm: Tính toán lại vị
trí mới cho mỗi điểm trung tâm bằng cách lấy trung bình của các điểm dữ liệu
trong cùng một nhóm. Cập nhật này được thực hiện sau mỗi lần phân loại.
4. Lặp lại phân loại và cập nhật: Tiếp tục lặp lại bước 2 và 3 cho đến khi
không có sự thay đổi đáng kể trong phân loại hoặc đã đạt đến số lần lặp tối
đa được chỉ định trước.
16

5. Đầu ra: Kết quả của thuật toán là K điểm trung tâm cuối cùng và phân loại
của từng điểm dữ liệu dựa trên vị trí của các điểm trung tâm. Các điểm trung
tâm đại diện cho các nhóm trong dữ liệu.

⮚ Bài toán cơ sở

Giả sử chúng ta có hai biến M1 và M2.


Hình 2. 1 Biểu đồ phân tán trục x, y của 2 biến
Chúng ta cần chọn một số k hoặc trọng tâm ngẫu nhiên để tạo thành cụm. Những
điểm này có thể là điểm từ tập dữ liệu hoặc bất kỳ điểm nào khác

Hình 2. 2 Chọn 1 số k hoặc trọng tâm ngẫu nhiên


17

Bây giờ chúng ta sẽ gán từng điểm dữ liệu của biểu đồ phân tán cho điểm K
hoặc trọng tâm gần nhất của nó. Vì vậy, chúng tôi sẽ vẽ một trung vị giữa cả hai
trọng tâm.
Hình 2. 3 Gán điểm dữ liệu cho điểm K hoặc trọng tâm gần nhất
Từ hình ảnh trên, rõ ràng là các điểm bên trái của đường gần với K1 hoặc
tâm màu xanh và các điểm bên phải của đường gần với tâm màu vàng. Hãy tô màu
chúng thành màu xanh lam và màu vàng để dễ hình dung
18

Hình 2. 4 Tô màu cho các điểm dữ liệu


Vì chúng tôi cần tìm cụm gần nhất nên chúng tôi sẽ lặp lại quy trình bằng
cách chọn một trọng tâm mới.
Hình 2. 5 Chọn một trọng tâm mới
Tiếp theo, chúng tôi sẽ gán lại từng điểm dữ liệu cho trọng tâm mới.
19

Hình 2. 6 Gán từng điểm dữ liệu cho trọng tâm mới


Khi việc gán lại đã diễn ra, vì vậy chúng ta sẽ lại chuyển sang bước 4, đó là
tìm trọng tâm hoặc điểm K mới.
Hình 2. 7 Tìm trọng tâm hoặc điểm K mới
20

Chúng ta có thể thấy trong hình trên; không có điểm dữ liệu nào khác nhau ở
hai bên của đường thẳng, điều đó có nghĩa là mô hình của chúng tôi đã được hình
thành.

Hình 2. 8 Minh họa kết quả phân cụm


⮚ Bài toán tối ưu

Nếu ta coi center mk là center (hoặc representative) của mỗi cluster và ước
lượng tất cả các điểm được phân vào cluster này bởi mk, thì một điểm dữ liệu
���� được phân vào cluster k sẽ bị sai số là (����−mk). Chúng ta mong
muốn sai số này có trị tuyệt đối nhỏ nhất nên ta sẽ tìm cách để đại lượng sau đây
đạt giá trị nhỏ nhất:
‖���� − ����‖22
Hơn nữa, vì ���� được phân vào cluster k nên yik = 1, yij = 0, ∀j ≠ k.
Khi đó, biểu thức bên trên sẽ được viết lại là:
��
��=1
yik‖���� − ����‖22 = ∑yij
Sai số cho toàn bộ dữ liệu sẽ là:
‖���� − ����‖22

21

Trong đó Y=[y1;y2;…;yN], M=[m1,m2,…mK] lần lượt là các ma trận


được tạo bởi label vector của mỗi điểm dữ liệu và center của mỗi cluster. Hàm số
mất mát trong bài toán K-means clustering của chúng ta là hàm L(Y, M) với ràng
buộc như được nêu trong phương trình (1).
Tóm lại, chúng ta cần tối ưu bài toán sau:

(subject to nghĩa là thỏa mãn điều kiện).


Bài toán (2) là một bài toán khó tìm điểm tối ưu vì nó có thêm các điều kiện
ràng buộc. Bài toán này thuộc loại mix-integer programming (điều kiện biến là số
nguyên) - là loại rất khó tìm nghiệm tối ưu toàn cục (global optimal point, tức
nghiệm làm cho hàm mất mát đạt giá trị nhỏ nhất có thể). Tuy nhiên, trong một số
trường hợp chúng ta vẫn có thể tìm được phương pháp để tìm được nghiệm gần
đúng hoặc điểm cực tiểu (điểm cực tiểu chưa chắc đã phải là điểm làm cho hàm số
đạt giá trị nhỏ nhất).
Một cách đơn giản để giải bài toán (2) là xen kẽ giải Y và M khi biến còn lại
được cố định. Đây là một thuật toán lặp, cũng là kỹ thuật phổ biến khi giải bài toán
tối ưu. Chúng ta sẽ lần lượt giải quyết hai bài toán sau đây: Cố định M, tìm Y
Giả sử đã tìm được các centers, hãy tìm các label vector để hàm mất
mát đạt giá trị nhỏ nhất. Điều này tương đương với việc tìm cluster cho mỗi điểm
dữ liệu.
Khi các centers là cố định, bài toán tìm label vector cho toàn bộ dữ liệu có
thể được chia nhỏ thành bài toán tìm label vector cho từng điểm dữ liệu ����
như sau:
22

Vì chỉ có một phần tử của label vector yi bằng 11 nên bài toán (3) có thể tiếp
tục được viết dưới dạng đơn giản hơn:

Vì ‖���� − ����‖22chính là bình phương khoảng cách tính từ điểm


xi tới center mj, ta có thể kết luận rằng mỗi điểm xi thuộc vào cluster có center
gần nó nhất! Từ đó ta có thể dễ dàng suy ra label vector của từng điểm dữ liệu. Cố
định Y, tìm M
Giả sử đã tìm được cluster cho từng điểm, hãy tìm center mới cho mỗi
cluster để hàm mất mát đạt giá trị nhỏ nhất.
Một khi chúng ta đã xác định được label vector cho từng điểm dữ liệu, bài toán tìm
center cho mỗi cluster được rút gọn thành:

Tới đây, ta có thể tìm nghiệm bằng phương pháp giải đạo hàm bằng 0, vì
hàm cần tối ưu là một hàm liên tục và có đạo hàm xác định tại mọi điểm. Và quan
trọng hơn, hàm này là hàm convex (lồi) theo mj nên chúng ta sẽ tìm được giá trị
nhỏ nhất và điểm tối ưu tương ứng.
Đặt l(mj) là hàm bên trong dấu argmin, ta có đạo hàm:

Giải phương trình đạo hàm bằng 0 ta có:


23

Nếu để ý một chút, chúng ta sẽ thấy rằng mẫu số chính là phép đếm số lượng các
điểm dữ liệu trong cluster j. Còn tử số chính là tổng các điểm dữ liệu trong cluster j.
Hay nói một cách đơn giản hơn nhiều: mj là trung bình cộng của các điểm trong
cluster j. Tên gọi K-means clustering cũng xuất phát từ đây.

2.1.3. Phương pháp chọn số cụm tối ưu Elbow Method

Phương pháp Elbow là một trong những cách phổ biến nhất để tìm số cụm
tối ưu. Phương pháp này sử dụng khái niệm giá trị WCSS. WCSS là viết tắt của
Within Cluster Sum of Squares , xác định tổng số biến thể trong một cụm. Công
thức tính giá trị của WCSS (cho 3 cụm) được đưa ra dưới đây: WCSS= ∑Pi in Cluster1
distance(Pi C1)2 +∑Pi in Cluster2distance(Pi C2)2+∑Pi in CLuster3 distance(Pi C3)2 ∑Pi in Cluster1
distance(Pi C1)2: Đó là tổng bình phương khoảng cách giữa mỗi điểm dữ liệu và
trọng tâm của nó trong một cluster1 và tương tự cho hai thuật ngữ còn lại.

Để đo khoảng cách giữa các điểm dữ liệu và trọng tâm, chúng ta có thể sử dụng
bất kỳ phương pháp nào như khoảng cách Euclide hoặc khoảng cách Manhattan.

Để tìm giá trị tối ưu của các cụm, phương pháp Elbow (khuỷu tay) thực hiện
theo các bước sau:

- Nó thực thi phân cụm K-means trên một tập dữ liệu nhất định cho các giá trị K
khác nhau (trong khoảng từ 1-10).
- Đối với mỗi giá trị của K, tính toán giá trị WCSS.
- Vẽ một đường cong giữa các giá trị WCSS được tính toán và số cụm K. - Điểm
uốn cong hay một điểm của đồ thị trông giống như một cánh tay thì điểm đó
được coi là giá trị tốt nhất của K.
Vì biểu đồ cho thấy một khúc cua gấp, trông giống như một khuỷu tay, do đó nó
được gọi là phương pháp khuỷu tay(Elbow Method).
24

Hình 2. 9 Minh họa biểu đồ Elbow Method

2.1.4. Đánh giá thuật toán K-means

- Ưu điểm
+ Đơn giản và dễ hiểu: K-means là một thuật toán đơn giản và dễ hiểu, dễ
dàng triển khai và hiểu cách hoạt động. Nó là một trong những phương
pháp phân cụm đầu tiên được học và sử dụng phổ biến.
+ Tốc độ thực thi nhanh: K-means là một thuật toán hiệu quả và có tốc độ
tính toán nhanh, đặc biệt là khi được áp dụng trên tập dữ liệu lớn. Do đó,
nó là lựa chọn tốt cho các bài toán có quy mô lớn.
+ Hiệu quả trong việc phân cụm dữ liệu có hình dạng cầu: K-means hoạt
động tốt khi các nhóm dữ liệu có hình dạng cầu hoặc gần như cầu. Vì nó
sử dụng khoảng cách Euclid, nó thích hợp cho các tập dữ liệu có phân
phối đồng đều và tương tự hình cầu.
+ Dễ dàng mở rộng và áp dụng cho các bài toán phân cụm đơn giản: Với K-
means, bạn có thể dễ dàng mở rộng và thích ứng cho các bài toán phân
cụm đơn giản mà không cần nhiều tham số cấu hình.
- Nhược điểm
+ Phụ thuộc vào sự khởi tạo ban đầu: Kết quả của thuật toán có thể bị ảnh
hưởng mạnh bởi sự khởi tạo ban đầu của các điểm trung tâm. Nếu không
may, việc khởi tạo sai có thể dẫn đến kết quả phân cụm không tốt.
25

+ Cần xác định số lượng nhóm K trước: Khi sử dụng K-means, bạn phải xác
định số lượng nhóm K trước. Việc chọn K thích hợp có thể khá khó và
đòi hỏi kiến thức về dữ liệu hoặc phân tích trước.
+ Không thể xử lý các dạng phân phối không cầu: K-means giả định rằng
các nhóm có hình dạng cầu và đồng đều, điều này không luôn đúng cho
tất cả các tập dữ liệu. Nó không hiệu quả đối với các nhóm dữ liệu có
hình dạng không cầu, phân phối không đồng đều hoặc dạng cụm phức
tạp.
+ Dễ bị mắc kẹt vào các cụm tối thiểu cục bộ: K-means có thể bị mắc kẹt
vào các cụm tối thiểu cục bộ, trong đó kết quả phân cụm không phản ánh
được cấu trúc tổng thể của dữ liệu.
+ Tóm lại, K-means là một thuật toán đơn giản và hiệu quả, nhưng cần cân
nhắc các điểm yếu của nó khi áp dụng cho các bài toán phân cụm phức
tạp

2.2. DBSCAN (Density-Based Spatial Clustering of


Applications with Noise)

2.2.1. Khái niệm

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 độ. Nó có khả năng xác định các cụm dữ liệu
có mật độ cao và xác định các điểm nhiễu không thuộc vào bất kỳ cụm nào.
DBSCAN không yêu cầu số lượng cụm trước và có thể xử lý dữ liệu có hình dạng
và kích thước khác nhau.
26

Hình 2. 10 Minh họa thuật toán DBSCAN


2.2.2. Cách hoạt động

1. Đặt tham số: Xác định hai tham số chính cho thuật toán DBSCAN:
∙ Epsilon (ε): Bán kính xung quanh mỗi điểm dữ liệu. Điểm dữ liệu nằm
trong bán kính ε của một điểm khác được xem là điểm lân cận.
∙ MinPts: Số lượng điểm lân cận tối thiểu trong bán kính ε để một điểm dữ
liệu được coi là một điểm lõi.
2. Xác định điểm lõi (core points): Mỗi điểm dữ liệu có ít nhất MinPts điểm lân
cận trong bán kính ε được coi là một điểm lõi.
3. Xác định cụm:
∙ Chọn một điểm lõi chưa được gán vào bất kỳ cụm nào làm điểm khởi đầu
của một cụm mới.
∙ Tìm tất cả các điểm lõi có thể tiếp cận được từ điểm khởi đầu thông qua
các điểm lân cận.
∙ Mở rộng cụm bằng cách thêm các điểm lõi tiếp cận được vào cụm. Tiếp
tục quá trình này cho đến khi không còn điểm lõi nào có thể tiếp cận
được.
∙ Chuyểnsang điểm lõi chưa được gán vào cụm khác và tiếp tục quá trình
cho đến khi tất cả các điểm dữ liệu đều được gán vào các cụm.
4. Xác định điểm nhiễu (noise points): Các điểm dữ liệu không thuộc vào bất kỳ
cụm nào và không là điểm lõi được coi là điểm nhiễu.
27

Kết quả của thuật toán DBSCAN là tập hợp các cụm dữ liệu được phân chia và
tập hợp các điểm nhiễu không thuộc vào cụm nào. Mật độ của dữ liệu sẽ xác định
hình dạng và kích thước của các cụm.

2.2.3. Đánh giá

- Ưu điểm
+ DBSCAN hoạt động tốt trên các tập dữ liệu có mật độ không đồng đều và
có thể xác định được các cụm có hình dạng và kích thước khác nhau.
Điều này cho phép thuật toán tự động phát hiện các cụm có hình dạng
phức tạp, không chỉ giới hạn trong các cụm hình cầu.
+ DBSCAN không yêu cầu người dùng chỉ định số lượng cụm trước. Thay
vào đó, nó dựa vào hai tham số chính: epsilon (bán kính xung quanh mỗi
điểm) và MinPts (số điểm tối thiểu để xem một vùng là cụm). Điều này
giúp loại bỏ gánh nặng của việc lựa chọn tham số và giúp DBSCAN tự
động phát hiện số lượng cụm trong dữ liệu.
+ DBSCAN có khả năng xử lý điểm nhiễu, tức là các điểm không thuộc vào
bất kỳ cụm nào. Nó sẽ chỉ xem những điểm gần nhau với mật độ đủ cao là
thành viên của cùng một cụm, trong khi các điểm ở xa hoặc có mật độ
thấp hơn sẽ được coi là điểm nhiễu.
- Nhược điểm
+ Việc chọn tham số epsilon phù hợp có thể ảnh hưởng đáng kể đến kết quả
phân cụm của DBSCAN. Nếu giá trị epsilon quá lớn, có thể dẫn đến việc
kết hợp các cụm thành một cụm lớn, trong khi nếu giá trị epsilon quá
nhỏ, có thể tạo ra quá nhiều cụm nhỏ.
+ Thứ tự của các điểm dữ liệu trong tập dữ liệu có thể ảnh hưởng đến kết
quả của DBSCAN. Những điểm gần nhau và có mật độ cao hơn sẽ được
phân vào cùng một cụm, trong khi các điểm khác có thể thuộc vào các
cụm khác nhau nếu thứ tự của chúng bị thay đổi. Điều này có thể làm cho
DBSCAN không ổn định và kém linh hoạt đối với dữ liệu có biến đổi thứ
tự.
28

2.3. Hierarchical Clustering (Phân cụm phân cấp)

2.3.1. Khái niệm

Phân cụm phân cấp (Hierarchical Clustering) là một thuật toán phân cụm dữ
liệu trong lĩnh vực học máy và thống kê. Nó giúp nhóm các điểm dữ liệu tương tự
nhau thành các cụm dựa trên mức độ tương đồng hoặc khoảng cách giữa chúng.
Thuật toán phân cụm phân cấp xây dựng một cây phân cấp, gọi là
dendrogram, để biểu diễn sự tương đồng giữa các điểm dữ liệu. Ban đầu, mỗi điểm
dữ liệu được coi là một cụm đơn lẻ. Sau đó, thuật toán liên tiếp ghép các cụm lại
với nhau để tạo thành các cụm lớn hơn và cuối cùng hình thành một cụm duy nhất
chứa toàn bộ dữ liệu.

2.3.2. Cách hoạt động

Hoạt động của thuật toán AHC có thể được giải thích bằng các bước dưới đây:
+ Bước 1: Tạo từng điểm dữ liệu dưới dạng một cụm duy nhất. Giả sử có N
điểm dữ liệu, vì vậy số cụm cũng sẽ là N.
Hình 2. 11 Tạo điểm dữ liệu mới
+ Bước 2: Lấy hai điểm hoặc cụm dữ liệu gần nhất và hợp nhất chúng để tạo
thành một cụm. Vì vậy, bây giờ sẽ có N-1 cụm.
29

Hình 2. 12 Hợp nhất hai điểm hoặc cụm gần nhất


+ Bước 3 : Một lần nữa, lấy hai cụm gần nhất và hợp nhất chúng lại với
nhau để tạo thành một cụm. Sẽ có N-2 cụm.
Hình 2. 13 Minh họa hợp nhất 2 cụm
+ Bước 4: Lặp lại Bước 3 cho đến khi chỉ còn một cụm. Vì vậy, chúng ta sẽ
nhận được các cụm sau. Hãy xem xét các hình ảnh dưới đây:
30
Hình 2. 14 Minh họa kết quả sau khi thực hiện hợp nhất các cụm
+ Bước 5: Khi tất cả các cụm được kết hợp thành một cụm lớn, hãy phát
triển chương trình dendro để phân chia các cụm theo vấn đề.
31

2.3.3. Biểu đồ Dendrogram trong phân cụm theo cấp bậc

Dendrogram là một cấu trúc dạng cây được sử dụng chủ yếu để lưu trữ từng
bước dưới dạng bộ nhớ mà thuật toán Hierarchical Clustering thực hiện. Trong biểu
đồ dendrogram, trục Y hiển thị khoảng cách Euclide giữa các điểm dữ liệu và trục x
hiển thị tất cả các điểm dữ liệu của tập dữ liệu đã cho.

Hoạt động của dendrogram có thể được giải thích bằng sơ đồ dưới đây:
Hình 2. 15 Minh họa biểu đồ dendrogram
Trong sơ đồ trên, phần bên trái đang hiển thị cách các cụm được tạo trong cụm
kết tụ và phần bên phải đang hiển thị chương trình dendro tương ứng.
- Như chúng ta đã thảo luận ở trên, đầu tiên, các điểm dữ liệu P2 và P3 kết hợp
với nhau và tạo thành một cụm, tương ứng, một dendrogram được tạo,
32

kết nối P2 và P3 có dạng hình chữ nhật. Độ cao được quyết định theo khoảng
cách Euclide giữa các điểm dữ liệu.
- Trong bước tiếp theo, P5 và P6 tạo thành một cụm và chương trình dendro
tương ứng được tạo. Nó cao hơn so với trước đây, vì khoảng cách Euclide
giữa P5 và P6 lớn hơn một chút so với P2 và P3.
- Một lần nữa, hai chương trình dendro mới được tạo kết hợp P1, P2 và P3 trong
một chương trình dendro và P4, P5 và P6 trong một chương trình dendro
khác.
- Cuối cùng, dendrogram cuối cùng được tạo ra để kết hợp tất cả các điểm dữ
liệu lại với nhau.

2.3.4. Đánh giá

- Ưu điểm
+ Hierarchical Clustering không yêu cầu người dùng chỉ định số lượng cụm
trước. Nó tự động xây dựng cấu trúc cây phân cấp và tách cụm theo các
mức độ khác nhau, giúp khám phá cấu trúc dữ liệu một cách tự nhiên.
+ Hierarchical Clustering tạo ra biểu đồ dendrogram, cho phép người dùng
có cái nhìn toàn diện về cấu trúc phân cụm dữ liệu. Dendrogram có thể
hữu ích để hiểu mối quan hệ giữa các cụm và đánh giá mức độ tương
đồng giữa chúng.
+ Phương pháp Hierarchical Clustering có thể được áp dụng cho cả dữ liệu số
và dữ liệu rời rạc, cũng như khả năng tích hợp các độ đo tương đồng hoặc
phương pháp gom nhóm khác để phù hợp với loại dữ liệu cụ thể.
- Nhược điểm
+ Hierarchical Clustering có độ phức tạp tính toán khá cao. Khi số lượng
điểm dữ liệu lớn, việc tính toán ma trận khoảng cách giữa các điểm có thể
mất nhiều thời gian và tài nguyên tính toán.
+ Hierarchical Clustering có thể bị ảnh hưởng bởi nhiễu và biến đổi dữ liệu.
Những điểm nhiễu hoặc biến đổi có thể gây ra sai sót trong quá trình
phân cụm và làm suy giảm chất lượng kết quả.
+ Vì tính toán phức tạp, Hierarchical Clustering thường không hiệu quả cho
các tập dữ liệu lớn. Khi số lượng điểm dữ liệu rất lớn, việc xử lý và lưu
trữ ma trận khoảng cách có thể trở thành một vấn đề.
33

2.4. Thuật toán Mean-shift

2.4.1. Khái niệm

Thuật toán phân cụm Mean-shift là một thuật toán không giám sát
(unsupervised) được sử dụng để tìm các cụm dữ liệu trong không gian đa chiều. Nó
hoạt động bằng cách di chuyển các "cửa sổ" trung tâm trên không gian dữ liệu để
tìm vị trí ổn định (stationary points), nơi mật độ dữ liệu cao nhất.

Hình 2. 16 Minh họa thuật toán Mean-shift


2.4.2. Cách hoạt động
Thuật toán Mean-shift có một số điểm quan trọng sau;
- Cửa sổ trung tâm (Window): Là một cửa sổ hình cầu hoặc hình lập phương
xung quanh mỗi điểm dữ liệu trong không gian. Kích thước của cửa sổ được
định nghĩa bởi bán kính hoặc cạnh của nó.
34

- Kernel: Là một hàm phi tuyến tính được áp dụng vào các điểm dữ liệu trong
cửa sổ trung tâm để tính toán trọng tâm (mean-shift vector). Hàm kernel
thường là một hàm phi tuyến tính, ví dụ như Gaussian kernel.
- Trọng tâm (Mean-shift vector): Là véc-tơ chỉ phương và khoảng cách từ cửa sổ
trung tâm đến trọng tâm tính toán được dựa trên trung bình có trọng số của
các điểm dữ liệu trong cửa sổ. Trọng tâm thể hiện vị trí dự đoán của mật độ
cao nhất trong không gian dữ liệu.
- Điểm ổn định (Stationary point): Đây là điểm khi di chuyển từ vị trí hiện tại
sang vị trí tiếp theo bằng trọng tâm, nó không thay đổi quá một ngưỡng nhất
định. Nếu vị trí trung tâm không thay đổi quá mức này, ta coi nó là điểm ổn
định và thuật toán dừng lại.

Thuật toán Mean-shift hoạt động dựa trên việc di chuyển các "cửa sổ" trung
tâm (window) trên không gian dữ liệu để tìm vị trí ổn định (stationary points), nơi
mật độ dữ liệu cao nhất. Quá trình di chuyển này được thực hiện như sau:
1. Khởi tạo các cửa sổ trung tâm (window) với các vị trí ban đầu trong không
gian dữ liệu.
2. Tính toán trọng tâm (mean-shift vector) cho mỗi cửa sổ dựa trên trung bình
có trọng số của các điểm dữ liệu trong cửa sổ. Trọng số thường được tính
dựa trên hàm kernel như Gaussian kernel.
3. Di chuyển các cửa sổ trung tâm theo trọng tâm tính được. Quá trình này tiếp
tục cho đến khi các vị trí trung tâm không thay đổi quá một ngưỡng nhất
định.
4. Gom nhóm các điểm dữ liệu dựa trên vị trí cuối cùng của các cửa sổ trung
tâm. Các điểm dữ liệu thuộc cùng một cửa sổ được coi là cùng một cụm.

2.4.3. Đánh giá

- Ưu điểm
+ Mean-shift không yêu cầu bạn chỉ định số lượng cụm trước khi chạy thuật
toán. Thuật toán tự động tìm các cụm dựa trên dữ liệu đầu vào, do đó rất
thuận tiện khi áp dụng cho các tập dữ liệu không biết trước.
+ Thuật toán Mean-shift có thể được áp dụng cho nhiều loại dữ liệu và tác vụ
khác nhau như phân đoạn hình ảnh, nhận diện khuôn mặt, theo dõi đối
tượng (object tracking) và nhiều ứng dụng khác. Điều này làm cho thuật
toán rất linh hoạt và khả năng áp dụng rộng.
35

+ Mean-shift được thiết kế để xử lý hiệu quả các tập dữ liệu lớn. Đặc điểm
trung tâm của thuật toán là sự thay đổi trọng tâm cụm dựa trên mật độ dữ
liệu trong vùng lân cận, do đó có khả năng phân cụm dữ liệu lớn một
cách hiệu quả.
- Nhược điểm
+ Mặc dù không yêu cầu định nghĩa số lượng cụm trước, Mean-shift vẫn phụ
thuộc vào việc thiết đặt tham số như bán kính tìm kiếm (search radius).
Việc chọn tham số phù hợp có thể ảnh hưởng đáng kể đến hiệu suất của
thuật toán.
+ Thuật toán Mean-shift có thể rất tốn thời gian và tài nguyên tính toán đối
với các tập dữ liệu lớn hoặc có số chiều cao. Điều này có thể làm giảm
hiệu suất của thuật toán khi áp dụng cho các bài toán thực tế.
+ Nếu tập dữ liệu chứa nhiễu hoặc các dạng dữ liệu không tuân theo phân
phối mật độ, thuật toán Mean-shift có thể không hoạt động hiệu quả. Dữ
liệu nhiễu có thể làm cho trọng tâm cụm di chuyển không đáng kể và dẫn
đến việc hình thành các cụm không mong muốn.
36

TÀI LIỆU THAM KHẢO


[1]. Simulated Data set of Iraqi tourism places, (2020), UCI Machine Learning
Repository, https://doi.org/10.24432/C5SC97.
[2].MachineLearningCoBan, (2017), Tiep Vu Huu,
https://machinelearningcoban.com/2017/01/01/kmeans/.
[3]. Phân cụm với K-Means (chọn K bằng Elbow, Silhoutte), (2020), MiAI.

You might also like