Tải bản đầy đủ (.docx) (29 trang)

Phân loại tự động khách hàng sử dụng thuật toán k means

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (287.51 KB, 29 trang )

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 TỐ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 tố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 tố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

3

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

4

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 tố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 tố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 tố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 tố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ự đố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 tốn phân nhóm dữ liệu

Bài tố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 tố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 tố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 hồ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 hồn thành q 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 tố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 tố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 tố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 tốn cơ bản nhất trong học khơng giám sát (Unsupervised learning). Trong
thuật tố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 tố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 tố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à:

yik‖���� − ����‖22 = ∑yij ��

��=1

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 tố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 tố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 tồ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 tố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 tố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 tốn tìm label vector cho tồn bộ dữ liệu có
thể được chia nhỏ thành bài tố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 tố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 tố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 tốn giá trị WCSS.

- Vẽ một đường cong giữa các giá trị WCSS được tính tố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 tố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 tố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 tố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 tố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 tố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 tố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


×