Professional Documents
Culture Documents
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
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
khăn thách thức của bài toán ............................................ 11 1.2.3. Đầu vào và
thuyết..................................................................................... 14
KHẢO................................................................................ 36
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.
1.1. Tổng quan về khai thác dữ liệu và bài toán phân loại
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.
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
Đố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.
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
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
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.
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ở
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
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.
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
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:
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:
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.
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
- Ư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
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.
- Ư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
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.
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
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.
- Ư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
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.
- 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.
- Ư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