Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 46

TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN

VIỆN CÔNG NGHỆ THÔNG TIN VÀ KINH TẾ SỐ

BÁO CÁO CHUYÊN ĐỀ NHÓM 4


HỌC PHẦN: CHUYÊN ĐỀ TỰ CHỌN – CÔNG NGHỆ THÔNG TIN
GIẢNG VIÊN: TS. NGUYỄN TRUNG TUẤN

ĐỀ TÀI: TÌM HIỂU VỀ CÁC KỸ THUẬT PHÂN LỚP DỮ


LIỆU, CÀI ĐẶT VÀ CHẠY THỬ CÔNG CỤ

CÁC THÀNH VIÊN TRONG NHÓM


Hoàng Thị Hồng Ngọc 11202817
Nguyễn Tiến Phong 11203101
Lê Thị Quỳnh 11203367
Đỗ Mạnh Sơn 11203439
Nguyễn Hoa Sơn 11203449

Hà Nội – T3/2023
MỤC LỤ
C
LỜI NÓI ĐẦU.....................................................................................................4

CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI..................................................................6

1.1. Giới thiệu đề tài..........................................................................................6

1.2. Lý do chọn đề tài........................................................................................6

CHƯƠNG II. CƠ SỞ LÝ THUYẾT.................................................................7

2.1. Khai phá dữ liệu (Data Mining).................................................................7

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

2.1.2. Quá trình hoạt động của Data Mining..................................................7

2.1.3. Một số kỹ thuật Data Mining...............................................................8

2.1.4. Phân loại VPN......................................................................................9

2.2. Kỹ thuật phân cụm....................................................................................12

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

2.2.2. Các giai đoạn của quá trình phân cụm...............................................13

2.2.3. Ưu, nhược điểm quá trình phân cụm..................................................14

2.2.4. Một số thuật toán phân cụm dữ liệu...................................................14

2.2.5. Các ứng dụng của kỹ thuật phân cụm dữ liệu....................................20

CHƯƠNG III. THUẬT TOÁN K-MEANS....................................................23

3.1. Giới thiệu thuật toán.................................................................................23

3.2. Mục đích...................................................................................................24

3.3. Phân tích toán học....................................................................................24

3.3.1. Hàm mất mát và bài toán tối ưu.........................................................25

3.3.2. Thuật toán tối ưu hàm mất mát...........................................................26

3.4. Ưu và nhược điểm của thuật toán.............................................................28


3.4.1. Ưu điểm..............................................................................................28

3.4.2. Nhược điểm........................................................................................29

3.5. Ứng dụng của thuật toán...........................................................................30

CHƯƠNG IV. XÂY DỰNG CHƯƠNG TRÌNH...........................................33

4.1. Tổng quan chương trình...........................................................................33

4.1.1. Giao diện chương trình.......................................................................34

4.1.2. Ví dụ kết quả của chương trình..........................................................34

4.2. Cài đặt thử nghiệm chương trình phần mềm............................................35

4.3. Hướng dẫn cài đặt phần mềm...................................................................36

4.4. Hướng dẫn chi tiết sử dụng các chức năng của chương trình phần mềm.36

4.5. Đánh giá....................................................................................................40

4.5.1. Đánh giá kết quả đề tài.......................................................................40

4.5.2. Ưu, nhược điểm..................................................................................40

4.5.3. Định hướng phát triển.........................................................................41

KẾT LUẬN........................................................................................................43

TÀI LIỆU THAM KHẢO................................................................................44


LỜI NÓI ĐẦU
Trong những năm gần đây, sự phát triển mạnh mẽ của CNTT đã làm cho khả
năng thu thập và lưu trữ thông tin của các hệ thống thông tin tăng nhanh một cách
chóng mặt. Bên cạnh đó, việc tin học hóa một cách ồ ạt và nhanh chóng các hoạt
động sản xuất, kinh doanh cũng như nhiều lĩnh vực hoạt động khác đã tạo ra cho
chúng ta một lượng dữ liệu lưu trữ khổng lồ. Hàng triệu CSDL đã được sử dụng
trong các hoạt động sản xuất, kinh doanh, quản lý..., trong đó có nhiều CSDL cực
lớn cỡ Gigabyte, thậm chí là Terabyte. Sự bùng nổ này đã dẫn tới một yêu cầu cấp
thiết là cần có những kỹ thuật và công cụ mới để tự động chuyển đổi lượng dữ liệu
khổng lồ kia thành các tri thức có ích. Từ đó, các kỹ thuật khai phá dữ liệu đã trở
thành một lĩnh vực thời sự của nền CNTT thế giới hiện nay nói chung và Việt Nam
nói riêng. Khai phá dữ liệu đang được áp dụng một cách rộng rãi trong nhiều lĩnh
vực kinh doanh và đời sống khác nhau: marketing, tài chính, ngân hàng và bảo
hiểm, khoa học, y tế, an ninh, internet… Rất nhiều tổ chức và công ty lớn trên thế
giới đã áp dụng kỹ thuật khai phá dữ liệu vào các hoạt động sản xuất kinh doanh
của mình và thu được những lợi ích to lớn.

Các kỹ thuật khai phá dữ liệu thường được chia thành 2 nhóm chính:

 Kỹ thuật khai phá dữ liệu mô tả: có nhiệm vụ mô tả về các tính chất hoặc
các đặc tính chung của dữ liệu trong CSDL hiện có.
 Kỹ thuật khai phá dữ liệu dự đoán: có nhiệm vụ đưa ra các dự đoán dựa
vào các suy diễn trên dữ liệu hiện thời.

Trong báo cáo chuyên đề này trình bày một số vấn đề về Phân cụm dữ liệu,
một trong những kỹ thuật cơ bản để Khai phá dữ liệu. Đây là hướng nghiên cứu có
triển vọng chỉ ra những sơ lược trong việc hiểu và khai thác CSDL khổng lồ, khám
phá thông tin hữu ích ẩn trong dữ liệu; hiểu được ý nghĩa thực tế của dữ liệu.
Báo cáo được trình bày trong 3 chương và phần phụ lục :

Chương 1 : Trình bày tổng quan về đề tài.

Chương 2 : Trình bày tổng quan lý thuyết về khai phá dữ liệu, phân cụm dữ
liệu, giới thiệu, phân tích, đánh giá các thuật toán dùng để phân cụm dữ liệu.

Chương 3 : Cài đặt, chạy thử và đánh giá về công cụ.

Kết luận : Tóm tắt các vấn đề được tìm hiểu trong luận văn và các vấn đề
liên quan trong luận văn, đưa ra phương hướng nghiên cứu tiếp theo.
CHƯƠNG I

GIỚI THIỆU ĐỀ TÀI


1.1. Giới thiệu đề tài

1.2. Lý do chọn đề tài


CHƯƠNG II
CƠ SỞ LÝ THUYẾT
2.1. Khai phá dữ liệu (Data Mining)
2.1.1. Khái niệm
Khai phá dữ liệu (Data Mining) là quá trình tìm kiếm và khám phá thông tin
tiềm ẩn trong các tập dữ liệu lớn, phức tạp và không cấu trúc. Quá trình này bao
gồm việc áp dụng các kỹ thuật thống kê, máy học và trí tuệ nhân tạo để phân tích
và tìm ra các mô hình, quy luật, mẫu và xu hướng tiềm ẩn trong dữ liệu.

Khai phá dữ liệu giúp cho người sử dụng có thể khám phá ra các thông tin
quan trọng, nhận thức về các quy luật tồn tại và phát triển trong dữ liệu. Nhờ đó,
người sử dụng có thể đưa ra các quyết định thông minh, tối ưu hóa các quy trình và
cải thiện hiệu quả kinh doanh.

Các kỹ thuật khai phá dữ liệu bao gồm: phân tích đa chiều, phân tích nhân
tố, phân tích nhóm, phân tích hồi quy, phân tích mạng neuron, cây quyết định,
phân tích dữ liệu dạng văn bản, và các kỹ thuật khác như k-means clustering, phân
tích thành phần chính (PCA) và phân tích thành phần độc lập (ICA).
2.1.2. Quá trình hoạt động của Data Mining
Quá trình hoạt động của khai phá dữ liệu (data mining) bao gồm các bước sau:
1. Bước 1: Làm sạch dữ liệu – Trong bước này, dữ liệu được làm sạch sao cho
không có tạp âm hay bất thường trong dữ liệu.
2. Bước 2: Tích hợp dữ liệu – Trong quá trình tích hợp dữ liệu, nhiều nguồn
dữ liệu sẽ kết hợp lại thành một.
3. Bước 3: Lựa chọn dữ liệu – Trong bước này, dữ liệu được trích xuất từ cơ sở
dữ liệu.
4. Bước 4: Chuyển đổi dữ liệu – Trong bước này, dữ liệu sẽ được chuyển đổi
để thực hiện phân tích tóm tắt cũng như các hoạt động tổng hợp.
5. Bước 5: Khai phá dữ liệu – Trong bước này, chúng tôi trích xuất dữ liệu hữu
ích từ nhóm dữ liệu hiện có.
6. Bước 6: Đánh giá mẫu – Chúng tôi phân tích một số mẫu có trong dữ liệu.
7. Bước 7: Trình bày thông tin – Trong bước cuối cùng, thông tin sẽ được thể
hiện dưới dạng cây, bảng, biểu đồ và ma trận.

2.1.3. Một số kỹ thuật Data Mining


Có rất nhiều kỹ thuật khai phá dữ liệu (data mining) khác nhau được sử dụng
trong lĩnh vực này. Dưới đây là một số kỹ thuật phổ biến trong khai phá dữ liệu:
Clustering: Kỹ thuật này phân chia dữ liệu thành các nhóm (clusters) dựa
trên sự tương đồng giữa các mẫu dữ liệu. Clustering có thể được sử dụng để tìm
kiếm các nhóm khách hàng có cùng đặc điểm, hoặc để phát hiện các nhóm của các
sản phẩm tương tự.
Classification: Kỹ thuật phân loại (classification) giúp dự đoán lớp của một
mẫu dữ liệu mới dựa trên các thông tin thu thập từ dữ liệu đã biết trước đó. Ví dụ,
phân loại có thể được sử dụng để dự đoán liệu một khách hàng mới sẽ mua sản
phẩm nào.
Regression: Kỹ thuật hồi quy (regression) giúp dự đoán một giá trị số dựa
trên các thông tin thu thập từ dữ liệu đã biết trước đó. Ví dụ, hồi quy có thể được
sử dụng để dự đoán giá của một sản phẩm dựa trên các đặc tính của nó.
Association rule learning: Kỹ thuật học luật liên kết (association rule
learning) tìm kiếm các quy tắc xuất hiện thường xuyên trong dữ liệu. Ví dụ, học
luật liên kết có thể được sử dụng để tìm kiếm các sản phẩm thường được mua cùng
nhau.
Neural networks: Mạng neuron (neural networks) là một kỹ thuật học máy
được lấy cảm hứng từ cấu trúc não người. Mạng neuron có thể được sử dụng để
phân loại dữ liệu hoặc để dự đoán giá trị số.
Decision trees: Cây quyết định (decision trees) là một kỹ thuật học máy tạo
ra một cây các quyết định để phân loại dữ liệu. Cây quyết định có thể được sử
dụng để phân loại khách hàng dựa trên các đặc tính của họ.
Text mining: Kỹ thuật khai phá dữ liệu văn bản (text mining) giúp phân tích
các dữ liệu văn bản để tìm kiếm thông tin cụ thể hoặc để phát hiện các mẫu và xu
hướng trong các tài liệu văn bản.
Time series analysis: Kỹ thuật phân tích chuỗi thời gian (time series
analysis) giúp dự do
2.1.4. Phân loại VPN
Khai phá dữ liệu (data mining) là một lĩnh vực quan trọng trong khoa học dữ
liệu, có rất nhiều ứng dụng trong nhiều lĩnh vực khác nhau. Sau đây là một số ứng
dụng của data mining:
Lĩnh vực Ứng dụng
Data mining có thể được sử dụng để phát hiện các xu
hướng và thông tin liên quan đến khách hàng, giúp các công ty
Marketing
phân tích dữ liệu khách hàng để đưa ra quyết định liên quan đến
các chiến lược marketing, phát triển sản phẩm và dịch vụ.
Data mining có thể giúp các công ty tài chính phát hiện
Tài chính các mô hình phân tích rủi ro và quản lý rủi ro tài chính, cũng như
phát hiện các gian lận và giao dịch lạ lùng.
Data mining có thể giúp phát hiện các bệnh lý hiếm gặp,
Y tế đưa ra dự đoán về tình trạng sức khỏe của bệnh nhân và giúp
quản lý dữ liệu y tế.
Data mining có thể giúp các công ty tìm hiểu thông tin về
Chăm sóc khách hàng, phân tích hành vi của họ để đưa ra các giải pháp tốt
khách hàng hơn để nâng cao chất lượng dịch vụ và cải thiện trải nghiệm
khách hàng.
Data mining có thể giúp các công ty phân tích và quản lý
Quản lý chuỗi
thông tin về sản xuất, vận chuyển, lưu trữ và phân phối sản phẩm
cung ứng
để đưa ra quyết định tối ưu cho quá trình chuỗi cung ứng.
Data mining có thể giúp các nhà khoa học và nhà nghiên
Khoa học và cứu tìm kiếm thông tin trong các tập dữ liệu lớn, giúp phát hiện
nghiên cứu các mô hình và xu hướng mới trong các lĩnh vực như khoa học,
công nghệ và xã hội học.
Data mining có thể giúp các tổ chức bảo mật tìm kiếm
An ninh
thông tin về các hành vi độc hại và các mối đe dọa bảo mật khác
mạng
trong mạng, giúp phát hiện và ngăn chặn các cuộc tấn công.
Giáo dục Data mining có thể giúp phát hiện các mô hình liên quan
đến học tập của học sinh, giúp giáo viên đưa ra các chiến lược và
phương pháp giảng dạy tốt hơn. Ngoài ra, nó cũng có thể giúp
phân tích kết quả học tập và đưa ra dự đoán về thành tích của
học sinh trong tương lai.
Data mining có thể giúp các doanh nghiệp du lịch tìm hiểu
Du lịch thông tin về các địa điểm du lịch, các hoạt động yêu thích của du
khách và giúp tối ưu hoá các chiến lược quảng cáo.
Data mining có thể được sử dụng để phát hiện các hành vi
Phát hiện
gian lận trong các lĩnh vực như bảo hiểm, tài chính và thương
gian lận
mại điện tử.
Data mining là một phần quan trọng của khoa học dữ liệu,
Khoa học dữ
giúp phát hiện các mô hình và cung cấp các kỹ thuật phân tích dữ
liệu
liệu để giải quyết các vấn đề trong nhiều lĩnh vực.
Điều khiển Data mining có thể giúp các công ty phân tích dữ liệu về
quá trình sản sản xuất để tối ưu hóa quá trình sản xuất và đưa ra quyết định
xuất hiệu quả hơn.
Data mining có thể giúp các tổ chức quản lý tài nguyên,
Quản lý tài
giúp phát hiện và phân tích các mô hình và xu hướng để tối ưu
nguyên
hóa việc sử dụng tài nguyên.
Data mining có thể giúp phát hiện và đánh giá rủi ro trong
Quản lý rủi ro
các lĩnh vực như tài chính, bảo hiểm, thương mại điện tử và y tế.

Tổng quan lại, data mining là một công cụ quan trọng để phân tích dữ liệu
và đưa ra quyết định tối ưu trong nhiều lĩnh vực khác nhau. Nó giúp các tổ chức
tìm ra các mô hình, xu hướng và thông tin quan trọng trong dữ liệu để đưa ra quyết
định hiệu quả và cải thiện hiệu suất hoạt động.
2.2. Kỹ thuật phân cụm
2.2.1. Khái niệm
Phân cụm là quá trình nhóm một tập các đối tượng thực thể hay trừu tượng
thành lớp các đối tượng tương tự. Một cụm là một tập hợp các đối tượng dữ liệu
mà các phần tử của nó tương tự nhau trong cùng một cụm và phi tương tự (khác
biệt) đối với các đối tượng nằm trong cụm khác. Một cụm các đối tượng dữ liệu có
thể xem như là một nhóm trong nhiều ứng dụng

Phân cụm nhìn từ góc độ tự nhiên là một việc vô cùng quen thuộc và bình
thường mà cuộc sống hằng ngày chúng ta vẫn làm và thực hiện như: phân loại học
sinh thành các nhóm tương ứng với học lực: học sinh khá, học sinh giỏi; phân loại
đất đai; phân loại tài sản; phân loại các mặt hàng trong các cửa hàng; phân loại
sách trong thư viện; phân loại các môn học theo các tổ hợp/ các khối tương ứng khi
thi đại học;...... Việc phân loại này cũng dựa trên định nghĩa đó là gom các đối
tượng có cùng tính chất hoặc có sự tương đồng về tính chất thành một nhóm.

Nguyên tắc cơ bản đằng sau cụm là việc gán một tập hợp các quan sát nhất
định thành các nhóm con hoặc cụm sao cho các quan sát hiện diện trong cùng một
cụm có mức độ giống nhau. Đó là việc thực hiện khả năng nhận thức của con
người để phân biệt các đối tượng dựa trên bản chất của chúng.

Ví dụ, khi đi mua hàng tạp hóa, chúng ta dễ dàng phân biệt giữa táo và cam
trong một bộ nhất định có chứa cả hai. Ta phân biệt hai đối tượng này dựa trên
màu sắc, kết cấu của chúng và các thông tin cảm giác khác được xử lý bởi bộ não
của bạn. Clustering là một mô phỏng của quá trình này để máy móc có thể phân
biệt giữa các đối tượng khác nhau

Đây là một phương pháp học không giám sát vì không có nhãn bên ngoài
gắn vào đối tượng. Máy phải tự học các tính năng và mẫu mà không cần bất kỳ ánh
xạ đầu vào-đầu ra nào. Thuật toán có thể trích xuất các suy luận từ bản chất của
các đối tượng dữ liệu và sau đó tạo các lớp riêng biệt để nhóm chúng một cách
thích hợp.

Trong Machine learning Clustering, thuật toán chia tập hợp thành các nhóm
khác nhau sao cho mỗi điểm dữ liệu tương tự với các điểm dữ liệu trong cùng một
nhóm và khác với các điểm dữ liệu trong các nhóm khác. Trên cơ sở sự giống nhau
và không giống nhau, sau đó phân nhóm phụ thích hợp cho đối tượng.

Hình ảnh dữ liệu được phân thành ba nhóm


2.2.2. Các giai đoạn của quá trình phân cụm
Quá trình phân cụm gồm các bước như sau:

1. Trích chọn hay lựa chọn đặc tính (Feature selection or extraction): bao gồm
việc trích chọn ra các đối tượng dữ liệu thích hợp, hữu ích từ dữ liệu cơ sở.
Việc trích chọn tốt các đặc tính có thể làm giảm rất lớn các dữ liệu nhiễu và
đơn giản hoá quá trình thiết kế và xử lý tiếp theo.
2. Lựa chọn hoặc thiết kế thuật toán phân cụm (Clustering algorithm design or
selection): liên quan tới việc kiểm tra xem nên phân cụm theo xu hướng nào
và chọn thuật toán hoặc thiết kế một thuật toán phân cụm với các tham số
phù hợp.

3. Đánh giá (Cluster Validation): việc kiểm định thường dựa trên các kiểm tra
thông thường và các kĩ thuật trực quan. Tuy nhiên, số lượng dữ liệu lớn và
số chiều của chúng tăng sẽ khiến quá trình đánh giá gặp khó khăn.

4. Biểu diễn các kết quả (Results Interpretation): Mục đích cuối cùng của phân
cụm là cung cấp cho người sử dụng những hiểu biết tri thức đầy đủ, ý nghĩa
từ dữ liệu cơ sở, bởi vậy, cần giải quyết hiệu quả vấn đề kết hợp các kết quả
phân cụm với các nghiên cứu khác để đưa ra kết luận tin cậy về tri thức thu
được và đề xuất những phân tích xa hơn.

Quá trình phân cụm dữ liệu


2.2.3. Ưu, nhược điểm quá trình phân cụm
2.2.4. Một số thuật toán phân cụm dữ liệu
2.2.4.1.Thuật toán phân cụm phân cấp
2.2.4.1.1. Thuật toán BIRCH
Một thuật toán phân cụm cho tập dữ liệu lớn được gọi là BIRCH (Balanced
Iterative Reducing and Clustering using Hierarchies) . Ý tưởng của thuật toán là
không cần lưu toàn bộ các đối tượng dữ liệu của các cụm trong bộ nhớ mà chỉ lưu
các đại lượng thống kê. Thuật toán đưa ra hai khái niệm mới để theo dõi các cụm
hình thành: phân cụm đặc trưng là tóm tắt thông tin về một cụm và cây phân cụm
đặc trưng (cây CF) là cây cân bằng được sử dụng lưu trữ cụm đặc trưng (được sử
dụng để mô tả cụm tóm tắt).

Trước tiên được gọi là cụm đặc trưng, là một bộ ba(n, LS, SS), trong đó n là
số các điểm trong phân hoạch cụm con, LS là tổng số các giá trị thuộc tích và SS là
tổng bình phương của các điểm đó. Đặc trưng tiếp theo là cây CF, mà đơn giản là
cây cân bằng mà lưu bộ ba này. Có thể chứng mình rằng, các đại lượng thống kê
chuẩn, như là độ đo khoảng cách, có thể xác định từ cây CF. Hình 4.10 dưới đây
biểu thị một ví dụ về cây CF. Có thể thấy rừng, tất cả các nút trong cây lưu tổng
các đặc trưng cụm CF, các nút con, trong khi đó các nút là lưu trữ các đặc trưng
của các cụm dữ liệu
Cây CF trong thuật toán BIRCH

2.2.4.1.2. Thuật toán CURE


Thuật toán CURE (Clustering Using REpresentatives) là thuật toán sử dụng
chiến lược dưới lên (Bottom up) của kỹ thuật phân cụm phân cấp
Thay vì sử dụng các trọng tâm hoặc các đối tượng tâm để biểu diễn cụm,
CURE sử dụng nhiều đối tượng để diễn tả cho mỗi cụm dữ liệu. Các đối tượng đại
diện cho cụm này ban đầu được lựa chọn rải rác đều ở các vị trí khác nhau, sau đó,
chúng được di chuyển bằng cách co lại theo một tỷ lệ nhất định. Tại mỗi bước của
thuật toán, hai cụm có cặp đối tượng đại diện gần nhất (đối tượng thuộc về mỗi
cụm) sẽ được trộn lại thành một cụm.
Với cách thức sử dụng nhiều hơn một điểm đại diện cho các cụm, CURE có
thể khám phá được các cụm có các dạng hình thù và kích thước khác nhau trong
CSDL lớn. Việc co các đối tượng đại diện lại có tác dụng làm giảm tác động của
các phần tử ngoại lai, vì vậy, CURE có khả năng xử lý đối với các phần tử ngoại
lai.

nh ảnh một số cụm dữ liệu được khám phá bởi thuật toán CURE
2.2.4.2. Thuật toán phân cụm dựa trên mật độ
2.2.4.2.1. Thuật toán DBSCAN
Thuật toán DBSCAN (Density - Based Spatial Clustering of Applications
with Noise) thích nghi với mật độ dày để phân cụm và khám phá ra các cụm có
hình dạng bất kỳ trong không gian CSDL có nhiễu.
Phân cụm dựa trên mật độ là tập tối đa các điểm liên thông mật độ; một cụm
được xác định bằng một tập tất cả các đối tượng liên thông mật độ các láng giềng
của nó; mỗi đối tượng không được chứa trong cụm được coi như là nhiễu. Trên
thực tế, DBSCAN tìm kiếm các cụm bằng cách kiểm tra các đối tượng mà có số
đối tượng láng giềng nhỏ hơn một ngưỡng tối thiểu, tức là có tối thiểu MinPts đối
tượng và mỗi đối tượng trong cụm tồn tại một đối tượng khác trong cụm giống
nhau với khoảng cách nhỏ hơn một ngưỡng Eps. Tìm tất cả các đối tượng mà các
láng giềng của nó thuộc về lớp các đối tượng đã xác định ở trên. DBSCAN lặp lại
tìm kiếm ngay khi các đối tượng liên lạc mật độ từ các đối tượng trung tâm. Quá
trình kết thúc khi không tìm được điểm mới nào có thể thêm vào bất kỳ cụm nào
Độ phức tạp của DBSCAN là O(n2), nhưng nếu áp dụng chỉ số không gian
để giúp xác định các láng giềng của một đối tượng dữ liệu thì độ phức tạp của
DBSCAN đã được cải tiến là O(nlogn).

Hình ảnh một số cụm dữ liệu được khám phá bởi thuật toán DBSCAN

2.4.2.2. Thuật toán OPTICS


Đây là thuật toán mở rộng cho thuật toán DBSCAN bằng cách giảm bớt các
tham số đầu vào. OPTICS (Ordering Points To Identify the Clustering Structure)
sắp xếp các cụm theo thứ tự tăng dần, nhằm tự động phân cụm dữ liệu. Thứ tự này
diễn tả cấu trúc dữ liệu phân cụm dựa trên mật độ chứa thông tin tương đương với
phân cụm dựa trên mật độ với một dãy các tham số đầu vào OPTICS xem xét bán
kính tối thiểu nhằm xác định các láng giềng phù hợp với thuật toán. DBSCAN và
OPTICS tương tự với nhau về cấu trúc và có cùng độ phức tạp: O(nlogn) (n là kích
thước tập dữ liệu)
Thứ tự các cụm được tăng dần trong OPTICS

2.2.4.3. Thuật toán phân cụm phân hoạch


2.2.4.3.1. Thuật toán PAM
Thuật toán PAM (Partitioning Around Medoids) được đề xuất bởi Kaufman
và Rousseeuw, là thuật toán mở rộng của thuật toán k-means nhằm tăng khả năng
xử lý hiệu quả đối với dữ liệu nhiễu hoặc phần tử ngoại lai. PAM sử dụng các đối
tượng medoid để biểu diễn cho các cụm dữ liệu, một đối tượng medoid là đối
tượng đặt tại vị trí trung tâm nhất bên trong mỗi cụm. Vì vậy, các đối tượng
medoid ít bị ảnh hưởng của các đối tượng ở rất xa trung tâm.
Ban đầu, PAM khởi tạo k đối tượng medoid và phân phối các đối tượng còn
lại vào các cụm với các đối tượng medoid đại diện tương ứng sao cho chúng tương
tự đối với medoid trong cụm gần nhất.
Giả sử Oj là đối tượng không phải là medoid mà Om là đối tượng medoid,
khi đó ta nói Oj thuộc về cụm có đối tượng medoid là Om làm đại diện nếu
d(Oj ,Om) = minOed(Oj , Oe); trong đó d(Oj ,Om) là độ phi tương tự giữa Oj và
Om , minOe là giá trị nhỏ nhất của độ phi tương tự giữa Oj và tất cả các đối tượng
medoid của các cụm dữ liệu. Chất lượng của mỗi cụm được khám phá được đánh
giá thông qua độ phi tương tự trung bình giữa một đối tượng và đối tượng medoid
tương ứng với cụm của nó, nghĩa là chất lượng phân cụm được đánh giá thông qua
chất lượng của tất cả các đối tượng medoid. Độ phi tương tự được xác định bằng
độ đo khoảng cách, thuật toán PAM được áp dụng cho dữ liệu không gian.
Để xác định các medoid, PAM bắt đầu bằng cách lựa chọn k đối tượng
medoid bất kỳ. Sau mỗi bước thực hiện, PAM cố gắng hoán chuyển giữa đối tượng
medoid Om và một đối tượng Op, không phải là medoid, miễn là sự hoán chuyển
này nhằm - 34 - cải tiến chất lượng của phân cụm, quá trình này kết thúc khi chất
lượng phân cụm không thay đổi. Chất lượng phân cụm được đánh giá thông qua
hàm tiêu chuẩn. Chất lượng phân cụm tốt nhất khi hàm tiêu chuẩn đạt giá trị tối
thiểu.
Vì vậy, độ phức tạp tính toán của PAM là O(Ik(n-k)2 ), trong đó I là số vòng lặp.
Như vậy, thuật toán PAM kém hiệu quả về thời gian tính toán khi giá trị k và n là
lớn.
2.2.4.3.2. Thuật toán CLARA
Thuật toán CLARA (Clustering LARge Applications) được Kaufman và
Rousseeuw đề xuất vào năm 1990 nhằm khắc phục nhược điểm của thuật toán
PAM trong trường hợp giá trị k và n là lớn. CLARA tiến hành trích mẫu cho tập dữ
liệu có n phần tử, nó áp dụng thuật toán PAM và tìm ra các đối tượng trung tâm
medoid cho mẫu được trích ra từ mẫu dữ liệu này. Nếu mẫu dữ liệu được trích theo
một cách ngẫu nhiên thì các medoid của nó xấp xỉ với các medoid của toàn bộ tập
dữ liệu ban đầu. Để tiến tới một xấp xỉ tốt hơn, CLARA đưa ra nhiều cách lấy mẫu
và thực hiện phân cụm cho mỗi trường hợp, sau đó tiến hành chọn kết quả phân
cụm tốt nhất khi thực hiện phân cụm trên mẫu này. Để cho chính xác, chất lượng
của các cụm được đánh giá thông qua độ phi tương tự trung bình của toàn bộ các
đối tượng dữ liệu trong tập đối tượng dữ liệu ban đầu. Kết quả thực nghiệm chỉ ra
rằng, 5 mẫu dữ liệu có kích thước 40 + 2k cho các kết quả tốt.
Độ phức tạp tính toán của CLARA là O(k(40+k)2 + k(n-k)), và thuật toán có
thể thực hiện đối với tập dữ liệu lớn. Cần chú ý với kỹ thuật tạo mẫu trong PCDL:
kết quả phân cụm có thể không phụ thuộc vào tập dữ liệu khởi tạo nhưng nó chỉ
đạt tối ưu cục bộ. Ví dụ, nếu các đối tượng medoid của dữ liệu khởi tạo không nằm
trong mẫu, khi đó kết quả thu được không được đảm bảo là tốt nhất.
Ở đây, một phần nhỏ dữ liệu hiện thời được chọn như một đại diện của dữ
liệu thay vì sử dụng toàn bộ dữ liệu và sau đó medoid được chọn từ mẫu sử dụng
PAM. Nếu mẫu được chọn theo cách ngẫu nhiên thì nó có thể cần phải đại diện tập
dữ liệu gốc. Các đối tượng đại diện (medoids) được chọn là tương tự mà đã được
chọn từ tập dữ liệu. Nó đưa ra nhiều mẫu của tập dữ liệu, áp dụng PAM trên mỗi
mẫu, và trả lại cụm tốt nhất ở đầu ra, như vậy, CLARA có thể xử lý với tập dữ liệu
lớn hơn PAM.
2.2.5. Các ứng dụng của kỹ thuật phân cụm dữ liệu
1. Thuật toán Clustering để xác định tế bào ung thư
Bộ dữ liệu ung thư có thể được xác định bằng cách sử dụng các thuật toán
Clustering. Trong hỗn hợp dữ liệu bao gồm cả dữ liệu ung thư và không ung thư,
các thuật toán phân nhóm có thể tìm hiểu các đặc điểm khác nhau có trong dữ liệu
mà chúng tạo ra các cụm kết quả. Qua thực nghiệm, chúng tôi nhận thấy rằng tập
dữ liệu ung thư cho chúng tôi kết quả chính xác khi đưa ra một mô hình thuật toán
Clustering phi tuyến tính không giám sát.
2. Thuật toán Clustering trong công cụ tìm kiếm
Trong khi tìm kiếm điều gì đó cụ thể trên Google, bạn sẽ nhận được kết hợp các
kết quả tương tự phù hợp với truy vấn ban đầu của bạn. Đây là kết quả của việc
Clustering nhóm các đối tượng tương tự trong một cụm duy nhất và cung cấp điều
đó cho bạn. Dựa trên đối tượng tương tự gần nhất, dữ liệu được gán cho một cụm
duy nhất, cung cấp một tập hợp kết quả toàn diện cho người dùng.

3. Thuật toán clustering trong mạng không dây


Sử dụng thuật toán Clustering trên các nút không dây, chúng tôi có thể tiết
kiệm năng lượng được sử dụng bởi các cảm biến không dây. Có nhiều thuật toán
dựa trên Clustering khác nhau trong mạng không dây để cải thiện mức tiêu thụ
năng lượng của chúng và tối ưu hóa việc truyền dữ liệu.

4. Clustering để phân khúc khách hàng


Một trong những ứng dụng phổ biến nhất của Clustering là trong lĩnh vực
phân khúc khách hàng. Dựa trên phân tích cơ sở người dùng, các công ty có thể
xác định những khách hàng sẽ chứng tỏ là người dùng tiềm năng cho sản phẩm
hoặc dịch vụ của họ. Clustering cho phép họ phân khúc khách hàng thành nhiều
nhóm, dựa vào đó họ có thể áp dụng các chiến lược mới để thu hút cơ sở khách
hàng của mình. Giờ đây, bạn có thể thực hành các khái niệm Clustering thông qua
dự án Machine learning tốt nhất từ trước đến nay về Phân khúc khách hàng bằng
cách sử dụng Machine learning.
CHƯƠNG III

THUẬT TOÁN K-MEANS


3.1. Giới thiệu thuật toán
K- means là thuật toán phân cụm mà định nghĩa các cụm bởi trung tâm của
các phương tử. Phương pháp này dựa trên độ đo khoảng cách của các đối tượng dữ
liệu trong cụm. Nó được xem như là trung tâm của cụm. Như vậy, nó cần khởi tạo
một tập trung tâm các trung tâm cụm ban đầu, và thông qua đó nó lặp lại các bước
gồm gán mỗi đối tượng tới cụm mà trung tầm gần, và tính toán tại trung tâm của
mỗi cụm trên cơ sở gán mới cho các đối tượng.
Quá trình này dừng khi các trung tâm hội tụ.

Các thiết lập để xác định ranh giới các cụm ban đầu
Trong phương pháp K-means, chọn một giá trị k và sau đó chọn ngẫu nhiên
k trung tâm của các đối tượng dữ liệu. Tính toán khoảng cách giữa đối tượng dữ
liệu trung bình mỗi cùm để tìm kiếm phần tử nào là tương tự và thêm vào cụm đó.
Từ khoảng cách này có thể tính toán trung bình mới của cụm và lặp lại quá trình
cho đến khi mỗi các đối tượng dữ liệu là một bộ phận của các cụm k
3.2. Mục đích
Mục đích chính của thuật toán K-means là phân cụm (clustering) tập dữ liệu
cho trước thành các cụm (clusters) sao cho các điểm trong cùng một cụm có tính
chất và đặc trưng tương đồng nhau và các điểm ở các cụm khác nhau có tính chất
và đặc trưng khác biệt.
Nói cách khác, mục đích của thuật toán K-means là tìm ra K cụm trong dữ
liệu, sao cho mỗi điểm dữ liệu sẽ được gán vào cụm có trung tâm gần nhất, và tất
cả các điểm trong cùng một cụm sẽ có tính chất và đặc trưng tương tự nhau. K-
means được sử dụng trong nhiều lĩnh vực khác nhau, chẳng hạn như trong khai phá
dữ liệu, phân tích hình ảnh, phân loại văn bản, và nhận diện chữ viết tay.
Mục đích của việc phân cụm dữ liệu là giúp ta hiểu rõ hơn về cấu trúc và
tính chất của dữ liệu, giúp ta đưa ra quyết định và lập kế hoạch tốt hơn, đồng thời
giảm thiểu chi phí và thời gian cho việc xử lý dữ liệu. K-means là một trong những
phương pháp phân cụm đơn giản và phổ biến nhất được sử dụng hiện nay, vì nó có
thể áp dụng cho nhiều loại dữ liệu và cho phép thực hiện phân cụm một cách
nhanh chóng và dễ dàng.
3.3. Phân tích toán học
Giả sử có N điểm dữ liệu là X = [ x 1 , x2 , … , xN] ∈ Rd x N và K < N là số
cluster chúng ta muốn phân chia. Chúng ta cần tìm các center m 1, m2, … , mK ∈ Rd
x1
và label của mỗi điểm dữ liệu.
Với mỗi điểm dữ liệu xi đặt yi = [ yi1 , yi2 , … , yiK ] là label vector của nó,
trong đó nếu xi được phân vào cluster k thì y iK = 1 và yij = 0 , ∀ j ≠ k . Điều này có
nghĩa là có đúng một phần tử của vector y i là bằng 1 (tương ứng với cluster của x i),
các phần tử còn lại bằng 0. Ví dụ: nếu một điểm dữ liệu có label vector là [ 1 , 0 , 0
, … , 0 ] thì nó thuộc vào cluster 1, là [ 0 , 1 , 0 , … , 0 ] thì nó thuộc vào cluster 2,
… . Cách mã hóa label của dữ liệu như thế này được gọi là biểu diễn one-hot.
3.3.1. Hàm mất mát và bài toán tối ưu
Ràng buộc của yi có thể viết dưới dạng toán học như sau:

Hơn nữa, vì xi được phân vào cluster k nên y ik = 1 , yij = 0 , ∀ j ≠ k . Khi đó,
biểu thức bên trên sẽ được viết lại là:

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 m k , thì một điểm dữ liệu x i
được phân vào cluster k sẽ bị sai số là ( x i − 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:

Hơn nữa, vì xi được phân vào cluster k nên y ik = 1 , yij = 0 , ∀ j ≠ k . Khi đó,
biểu thức bên trên sẽ được viết lại là:

Sai số cho toàn bộ dữ liệu sẽ là:

Trong đó Y = [ yi ; 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).


3.3.2. Thuật toán tối ưu hàm mất mát
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. (Nếu chúng ta vẫn nhớ chương trình toán ôn thi đại học
thì đ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 xi như sau:
Vì chỉ có một phần tử của label vector yi bằng 1 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:

∥xi−mj∥2 chí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. Sau này nếu có dịp, tôi sẽ nói thêm về tối ưu
lồi (convex optimization) - một mảng cực kỳ quan trọng trong toán tối ưu.
Đặ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ó:


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.
3.4. Ưu và nhược điểm của thuật toán
3.4.1. Ưu điểm
 Tính đơn giản: Thuật toán k-means được xây dựng dựa trên một cách tiếp
cận đơn giản, dễ hiểu và thực hiện. Thuật toán chỉ cần thực hiện một số thao
tác lặp lại đơn giản, chẳng hạn như tính khoảng cách và cập nhật trung tâm
phân nhóm. Điều này đặc biệt hữu ích đối với người mới bắt đầu với học
máy và khai phá dữ liệu.
 Hiệu quả với dữ liệu lớn: Thuật toán k-means có thể xử lý được những tập
dữ liệu lớn một cách nhanh chóng và hiệu quả. Với các tập dữ liệu lớn, thuật
toán k-means vẫn có thể thực hiện phân nhóm nhanh chóng, vì vậy nó
thường được sử dụng trong các ứng dụng thực tế.
 Phù hợp với nhiều loại dữ liệu: Thuật toán k-means không đòi hỏi tính chất
đặc biệt của dữ liệu, có thể áp dụng cho nhiều loại dữ liệu khác nhau. Ví dụ,
thuật toán k-means có thể được sử dụng để phân nhóm hình ảnh, âm thanh,
văn bản, và các loại dữ liệu khác.
 Dễ dàng tùy chỉnh số lượng phân nhóm: Thuật toán k-means cho phép người
dùng tùy chỉnh số lượng phân nhóm dựa trên nhu cầu của họ. Việc tùy chỉnh
giá trị k có thể giúp người dùng chọn số lượng phân nhóm phù hợp với dữ
liệu của họ. Điều này đặc biệt hữu ích đối với các tập dữ liệu có kích thước
lớn và phức tạp.
3.4.2. Nhược điểm
 Phụ thuộc vào giá trị k: Khi sử dụng thuật toán k-means, người dùng cần xác
định trước số lượng phân nhóm k. Nếu giá trị k không được chọn đúng, có
thể dẫn đến kết quả phân nhóm không tốt hoặc không chính xác. Việc lựa
chọn giá trị k phù hợp là một vấn đề quan trọng trong thuật toán k-means.
 Nhạy cảm với giá trị khởi tạo ban đầu: Việc chọn ngẫu nhiên các trung tâm
ban đầu của các phân nhóm có thể dẫn đến kết quả phân nhóm khác nhau
khi thực hiện thuật toán nhiều lần. Điều này có thể ảnh hưởng đến tính ổn
định của thuật toán.
 Không phải lúc nào cũng cho kết quả tốt: Mặc dù thuật toán k-means là
phương pháp phổ biến trong việc phân nhóm dữ liệu, nhưng không phải lúc
nào nó cũng cho kết quả tốt. Kết quả phân nhóm của thuật toán có thể phụ
thuộc vào đặc điểm của tập dữ liệu, giá trị k, và phương pháp khởi tạo ban
đầu của các trung tâm.
 Không phân nhóm được dữ liệu phi tuyến: Thuật toán k-means là phương
pháp phân nhóm dữ liệu tuyến tính, không phân nhóm được dữ liệu phi
tuyến. Điều này có thể dẫn đến kết quả phân nhóm không chính xác cho các
tập dữ liệu phi tuyến.
 Không phát hiện được các phân nhóm lồng nhau: Thuật toán k-means không
phát hiện được các phân nhóm lồng nhau hoặc phân nhóm chồng lên nhau.
Điều này có thể dẫn đến kết quả phân nhóm không chính xác khi có sự
chồng lấn hoặc trùng lặp giữa các phân nhóm.
Thuật toán k-means có nhiều ưu điểm về tính đơn giản, hiệu quả xử lý dữ
liệu lớn và phù hợp với nhiều loại dữ liệu khác nhau. Tuy nhiên, nó cũng có nhược
điểm như phụ thuộc vào giá trị k và giá trị khởi tạo ban đầu của các trung tâm phân
nhóm, không phân nhóm được dữ liệu phi tuyến và không phát hiện được các phân
nhóm lồng nhau. Do đó, việc sử dụng thuật toán k-means đòi hỏi người dùng phải
cân nhắc và lựa chọn phương pháp phù hợp cho tập dữ liệu của mình.
3.5. Ứng dụng của thuật toán
Phân tích cụm: Thuật toán hồi K-means sử dụng phương pháp chia cụm
(clustering) để phân nhóm các điểm dữ liệu vào K nhóm, với K là số lượng cụm
cần phân. Thuật toán sử dụng các điểm trung tâm của các cụm để tính toán khoảng
cách từ các điểm dữ liệu đến các điểm trung tâm, và sau đó phân nhóm các điểm
dữ liệu vào cụm có điểm trung tâm gần nhất. Phân tích cụm giúp ta có thể tìm ra
các đặc trưng chung của các điểm dữ liệu trong cùng một cụm và phân tích sự khác
biệt giữa các cụm khác nhau.
Trích xuất thông tin: Thuật toán hồi K-means có thể trích xuất nhiều thông
tin từ tập dữ liệu, ví dụ như khoảng cách giữa các điểm dữ liệu, giá trị trung bình
của các đặc trưng trong từng cụm, hoặc số lượng các điểm dữ liệu trong từng cụm.
Các thông tin này có thể giúp cho việc đưa ra quyết định, phân tích và tối ưu hóa
hơn đối với các bài toán liên quan đến dữ liệu.
Nhận dạng mẫu: Khi sử dụng thuật toán hồi K-means, chúng ta có thể xác
định các mẫu hoặc tiêu chuẩn trong tập dữ liệu. Chúng ta có thể tìm ra các đặc
trưng chung của các điểm dữ liệu trong cùng một cụm, hoặc xác định những cụm
có đặc trưng tương tự nhau. Điều này có thể giúp cho việc phân loại, nhận dạng đối
tượng hoặc tối ưu hóa các quy trình trong nhiều lĩnh vực khác nhau.
Phân tích hành vi khách hàng: Thuật toán hồi K-means cũng có thể được
sử dụng để phân tích hành vi khách hàng và nhận biết các nhóm khách hàng có đặc
trưng giống nhau. Ví dụ, khi áp dụng thuật toán hồi K-means vào tập dữ liệu khách
hàng, chúng ta có thể tìm ra các nhóm khách hàng có cùng sở thích, nhu cầu và
thói quen mua hàng. Điều này có thể giúp cho việc đưa ra quyết định về chiến lược
marketing, phân loại khách hàng và tối ưu hóa các chiến dịch quảng cáo.
Phân tích tâm trạng khách hàng: Thuật toán hồi K-means cũng có thể
được sử dụng để phân tích tâm trạng khách hàng dựa trên phản hồi của họ về sản
phẩm hoặc dịch vụ. Ví dụ, chúng ta có thể phân loại các phản hồi khách hàng
thành các nhóm dựa trên cảm xúc của họ, như tích cực, tiêu cực hoặc trung tính.
Khi phân tích tâm trạng khách hàng, chúng ta có thể tìm ra những điểm chung
trong cảm xúc của các khách hàng, từ đó có thể đưa ra những cải tiến sản phẩm
hoặc dịch vụ để tăng sự hài lòng của khách hàng.
Phân tích văn bản: Thuật toán hồi K-means cũng có thể được sử dụng để
phân tích văn bản, ví dụ như phân loại các bài viết vào các chủ đề khác nhau hoặc
nhận dạng ngôn ngữ và phong cách viết của tác giả. Khi sử dụng thuật toán hồi K-
means trong phân tích văn bản, chúng ta có thể tìm ra các đặc trưng chung của các
bài viết trong cùng một nhóm và từ đó có thể phân tích, tối ưu hóa và đưa ra quyết
định trong nhiều lĩnh vực khác nhau, ví dụ như phân tích dữ liệu khách hàng hoặc
phân tích tin tức.
Phân tích hình ảnh: Thuật toán hồi K-means cũng có thể được sử dụng
trong phân tích hình ảnh, ví dụ như phân loại các hình ảnh vào các nhóm khác
nhau dựa trên đặc trưng của chúng. Khi sử dụng thuật toán hồi K-means trong
phân tích hình ảnh, chúng ta có thể tìm ra các đặc trưng chung của các hình ảnh
trong cùng một nhóm và từ đó có thể phân tích, tối ưu hóa và đưa ra quyết định
trong nhiều lĩnh vực khác nhau, ví dụ như phân tích hình ảnh y tế hoặc phân tích
hình ảnh vệ tinh.
Phân tích chuỗi thời gian: Thuật toán hồi K-means cũng có thể được sử
dụng trong phân tích chuỗi thời gian, ví dụ như phân loại các chuỗi thời gian vào
các nhóm khác nhau dựa trên đặc trưng của chúng. Khi sử dụng thuật toán hồi K-
means trong phân tích chuỗi thời gian, chúng ta có thể tìm ra các mô hình và xu
hướng chung trong các chuỗi thời gian trong cùng một nhóm và từ đó có thể dự
đoán, tối ưu hóa và đưa ra quyết định trong nhiều lĩnh vực khác nhau, ví dụ như
phân tích dữ liệu thị trường tài chính hoặc phân tích lưu lượng truy cập trang web.
Nhận diện đối tượng: Thuật toán hồi K-means cũng có thể được sử dụng để
nhận diện đối tượng trong hình ảnh hoặc video. Ví dụ, chúng ta có thể phân loại
các đối tượng trong một hình ảnh vào các nhóm dựa trên các đặc trưng như kích
thước, hình dạng, màu sắc, vị trí và hướng. Khi sử dụng thuật toán hồi K-means để
nhận diện đối tượng, chúng ta có thể tìm ra những đặc trưng chung của các đối
tượng trong cùng một nhóm và từ đó có thể phân tích, tối ưu hóa và đưa ra quyết
định trong nhiều lĩnh vực khác nhau, ví dụ như trong y học, công nghệ thông tin,
an ninh và giám sát.
Điều khiển tự động: Thuật toán hồi K-means cũng có thể được sử dụng để
điều khiển tự động, ví dụ như trong các hệ thống sản xuất hoặc các robot tự động.
Ví dụ, chúng ta có thể phân loại các sản phẩm hoặc linh kiện vào các nhóm dựa
trên đặc trưng của chúng và từ đó điều khiển quá trình sản xuất tự động để tối ưu
hóa hiệu suất và chất lượng sản phẩm. Khi sử dụng thuật toán hồi K-means để điều
khiển tự động, chúng ta có thể tối ưu hóa quá trình sản xuất, giảm thiểu sai sót và
tiết kiệm chi phí.
CHƯƠNG IV

XÂY DỰNG CHƯƠNG TRÌNH


4.1. Tổng quan chương trình
Chương trình cài đặt thuật toán phân cụm phân hoạch K-means sử dụng bộ
dữ liệu Wholesale customers dataset, bao gồm thông tin về chi tiêu hàng tháng của
một số khách hàng của một nhà bán lẻ ở Bồ Đào Nha. Bộ dữ liệu gồm 440 mẫu với
8 thuộc tính khác nhau. Ngôn ngữ lập trình được sử dụng là Python và chương
trình sử dụng thư viện scikit-learn để triển khai thuật toán K-means. Nó cho phép
người dùng nhập vào số lượng cụm mong muốn và hiển thị kết quả phân cụm trên
đồ thị hai chiều. Bên cạnh đó, chương trình cũng cung cấp một số thông tin thống
kê về các cụm, bao gồm trung tâm của từng cụm và số lượng mẫu trong từng cụm.
Chương trình này có thể giúp người dùng hiểu rõ hơn về cách thức hoạt động của
thuật toán K-means và ứng dụng của nó trong phân tích dữ liệu. Nó cũng có thể
được sử dụng như một công cụ để phân tích dữ liệu và đưa ra quyết định trong các
bối cảnh thực tế.
4.1.1. Giao diện chương trình

4.1.2. Ví dụ kết quả của chương trình

Đồ thị phân cụm chia theo 2 Đồ thị phân cụm chia theo 3
cụm với 2 thuộc tính Fresh và Milk cụm với 2 thuộc tính Fresh và Milk
Đồ thị phân cụm chia theo 4 Đồ thị hàm biến dạng theo
cụm với 2 thuộc tính Fresh và Milk phương pháp Elbow với 2 thuộc
tính Fresh và Milk

4.2. Cài đặt thử nghiệm chương trình phần mềm


Chương trình được chia ra làm 2 lớp chính và mỗi lớp sử dụng các thư viện
cần cài đặt trước
1. Thiết lập giao diện cho chương trình

Bao gồm thư viện tkinter (thư viện cho phép tạo giao diện đồ họa trên
Python).
2. Xử lý dữ liệu

Bao gồm:
- Thư viện pandas: cho phép đọc, xử lý và lưu trữ dữ liệu, cung cấp các đối
tượng dữ liệu và công cụ để thao tác với chúng.
- Thư viện matplotlib: cho phép tạo và hiển thị đồ thị trực quan.
- Thư viện sklearn (hay còn gọi là scikit-learn): cho phép xử lý dữ liệu,
huấn luyện và áp dụng các thuật toán học máy trong Python.
- Thư viện random: cho phép tạo số ngẫu nhiên
4.3. Hướng dẫn cài đặt phần mềm
Việc cài đặt phần mềm được chia ra làm 2 phần là phần cài đặt phần mềm
nền và phần cài đặt chương trình phần mềm cài đặt thuật toán phân cụm phân
hoạch K-means. Cụ thể hướng dẫn cài đặt 2 phần:
1. Cài đặt phần mềm nền

- Cài đặt Python tại địa chỉ: https://www.python.org/downloads/


- Cài đặt trình biên dịch và trình quản lý gói: Trong một số trường hợp, có
thể cần cài đặt các trình biên dịch và trình quản lý gói như pip để có thể
cài đặt các gói thư viện cần thiết cho Python.
- Cài đặt môi trường phát triển tích hợp (IDE): Có thể sử dụng một số IDE
phổ biến như PyCharm, VSCode, hoặc Spyder…
2. Cài đặt chương trình phần mềm cài đặt thuật toán phân cụm phân
hoạch K-means

- Tải xuống folder của chương trình phần mềm


- Mở folder trong IDE
- Chạy file kmeans.py
4.4. Hướng dẫn chi tiết sử dụng các chức năng của chương trình phần mềm
1. Mở file chứa dữ liệu

Từ giao diện mở đầu của chương trình, click vào nút “OPEN FILE CSV” để
chọn bộ dữ liệu với định dạng .csv (hoặc .xlsx)
Ở đây, chương trình sử dụng bộ dữ liệu Wholesale customers dataset. Bộ dữ
liệu này bao gồm thông tin về các khách hàng của một nhà phân phối sỉ. Nó có 440
mẫu và mỗi mẫu có 8 thuộc tính. Bộ dữ liệu này được sử dụng để phân tích hành vi
của khách hàng và sử dụng để phân cụm

2. Tùy chọn thuộc tính để phân cụm

Sau khi chọn xong, chương trình sẽ hiển thị các dữ liệu có trong file lên giao
diện qua một TreeView, xuất hiện 2 nút tùy chọn thuộc tính để phân cụm
“X_AXIS_VALUE” (lựa chọn thuộc tính nằm trên trục hoành) và
“Y_AXIS_VALUE” (lựa chọn thuộc tính nằm trên trục tung):

Ở đây, ví dụ hai thuộc tính Fresh và Milk được lựa chọn, click vào nút
“SHOW VALUES CHOSEN” để trích xuất các dữ liệu thuộc hai cột trên, đồng
thời hiển thị qua TreeView thứ 2: (Dữ liệu hiển thị với đúng định dạng, đằng sau
chương trình, dữ liệu được chọn sẽ được xử lý, dán nhãn và gom vào một mảng để
phân ra các cụm)
3. Vẽ biểu đồ hàm biến dạng theo phương pháp Elbow

Sau khi lựa chọn xong thuộc tính, có thể click vào nút “SHOW ELBOW” để
hiển thị biểu đồ hàm biến dạng theo phương pháp Elbow để tham khảo và lựa chọn
số cụm phù hợp.

Ở đây, với hai thuộc tính Fresh và Milk được lựa chọn, chương trình hiển thị
biểu đồ hàm biến dạng. Nhìn vào biểu đồ, ta có thể lựa chọn ra điểm khuỷ tay
(elbow point) tại 2.
4. Nhập số cụm và giá trị khởi tạo

Chương trình cho phép người dùng nhập số cụm và giá trị khởi tạo theo ý
muốn. Nhập số cụm vào phần N_CLUSTER và giá trị khởi tạo vào phần
RANDOM_STATE.

5. Chạy thuật toán K-means và hiển thị đồ thị trực quan hóa kết quả
phân cụm

Sau khi nhập dữ liệu, click chuột vào nút “RUN K-MEANS” để chạy
chương trình và click chuột vào nút “SHOW PLOT” để hiển thị đồ thị trực quan
hóa kết quả phân cụm.
Cuối cùng, ta được đồ thị phân cụm từ bộ dữ liệu Wholesale customers
dataset với hai thuộc tính Fresh và Milk, số cụm được phân chia là hai và giá trị
khởi tạo là 200.
4.5. Đánh giá
4.5.1. Đánh giá kết quả đề tài
Chương trình đã thực hiện thành công phân cụm phân hoạch dữ liệu với bộ
dữ liệu Wholesale customers dataset và phân loại khách hàng thành các nhóm dựa
trên hành vi mua hàng của họ theo tùy chọn thuộc tính của người dùng. Kết quả
này có thể được ứng dụng trong các lĩnh vực như tiếp thị và kinh doanh để tối ưu
hóa chiến lược kinh doanh và nâng cao hiệu quả kinh doanh. Chương trình cũng
cho phép thực hiện phân cụm phân hoạch dữ liệu với các bộ dữ liệu khác người
dùng nhập vào.
4.5.2. Ưu, nhược điểm
1. Ưu điểm

- Quá trình phân cụm dữ liệu được thực hiện nhanh chóng và hiệu quả.
- Giao diện đơn giản, dễ sử dụng, giúp người dùng có thể thực hiện phân
cụm dữ liệu một cách dễ dàng và nhanh chóng.
- Cho phép người dùng tùy chỉnh số lượng nhóm cần phân chia, giúp cho
việc phân tích dữ liệu trở nên đa dạng và linh hoạt.
- Hỗ trợ việc trực quan hóa dữ liệu bằng việc cung cấp biểu đồ phân cụm
dữ liệu, giúp người dùng có thể dễ dàng quan sát và phân tích kết quả
phân cụm
2. Nhược điểm

- Giao diện chưa sinh động, bắt mắt, có thể gây nhàm chán. Việc sắp xếp
bố cục còn thiếu khoa học và chưa hợp lý.
- Thuật toán yêu cầu đầu vào là các giá trị chuẩn hóa, nếu bộ dữ liệu không
được chuẩn hóa trước khi chạy thuật toán, kết quả phân cụm có thể
không chính xác.
- Chương trình chưa cho phép phân cụm phân hoạch với quá nhiều thuộc
tính cùng lúc trong bộ dữ liệu
- Các tham số đầu vào được nhập thủ công nên có thể có sai sót. Số lượng
nhóm được chỉ định sẽ ảnh hưởng đến kết quả phân cụm. Nếu người
dùng chọn sai số lượng nhóm, kết quả phân cụm có thể không phù hợp.
- Chưa hiển thị được chi tiết từng bước hoạt động cụ thể hơn của thuật toán
để giúp người dùng hiểu rõ thuật toán hơn
4.5.3. Định hướng phát triển
- Cải tiến giao diện người dùng bằng cách cung cấp cho người dùng các
tùy chọn tùy chỉnh các thông số của thuật toán, giúp người dùng tùy
chỉnh thêm kích thước nhóm, số lần lặp lại, chọn phương pháp khởi tạo
điểm trung tâm và các hình thức khác. Bên cạnh đó, cũng cần cải thiện
khả năng tương tác của chương trình bằng cách cho phép người dùng
xem trước kết quả phân cụm trên các biểu đồ trực quan, giúp người dùng
dễ dàng hiểu và thấy được kết quả phân cụm của dữ liệu.
- Nâng cấp chương trình có thể xử lý dữ liệu nhiễu bằng cách sử dụng các
phương pháp xử lý dữ liệu trước khi chạy thuật toán phân cụm, có thể
tích hợp các phương pháp xử lý dữ liệu phổ biến như chuẩn hóa, chọn
đặc trưng, loại bỏ nhiễu để tối ưu hóa kết quả phân cụm.
- Nâng cấp giao diện chương trình đẹp hơn, dễ nhìn hơn nhằm tạo sự thích
thú cho người dùng.
- Cải thiện khả năng mở rộng của chương trình giúp cho chương trình có
thể hoạt động hiệu quả với các bộ dữ liệu lớn hơn, có tính phức tạp cao
hơn. Các phương pháp cải thiện khả năng mở rộng bao gồm phân tách dữ
liệu thành các bộ nhỏ hơn, sử dụng tính toán song song và tối ưu hóa
thuật toán.
- Tích hợp các tính năng nhập và xuất dữ liệu giúp người dùng có thể nhập
dữ liệu từ các nguồn khác nhau và xuất kết quả phân cụm thành các định
dạng khác nhau.
KẾT LUẬN
Với sự phát triển nhanh của CNTT đi cùng với sự ra đời của hàng triệu
CSDL dẫn tới một yêu cầu cấp thiết là cần có những kỹ thuật và công cụ mới để tự
động chuyển đổi lượng dữ liệu khổng lồ kia thành các tri thức có ích. Các kỹ thuật
khai phá dữ liệu đã trở thành một lĩnh vực quan trọng của nền CNTT thế giới hiện
nay nói chung và Việt Nam nói riêng
Các kỹ thuật phân lớp dữ liệu bao gồm những phương pháp như Clustering,
Classification, Regression, Association rule learning, Decision Tree, Neural
networks, Text mining, Time series analysis,. Mỗi phương pháp có ưu điểm và hạn
chế riêng, phù hợp với từng loại dữ liệu và mục đích sử dụng. Trong các kỹ thuật
trên, kỹ thuật phân lớp (Clustering) – quá trình nhóm một tập các đối tượng thực
thể hay trừu tượng thành lớp các đối tượng tương tự - nhìn từ góc độ tự nhiên là
một việc vô cùng quen thuộc mà hằng ngày chúng ta vẫn thực hiện.
Phân lớp dữ liệu là một bước quan trọng trong việc giải quyết nhiều bài toán
trong thực tế như phân loại email, phát hiện gian lận, nhận diện hình ảnh, hay dự
đoán xu hướng thị trường. Các kỹ thuật và công cụ phân lớp dữ liệu hiện nay đang
được sử dụng rộng rãi trong nhiều lĩnh vực và có tiềm năng phát triển trong tương
lai. Trong tương lai, các kỹ thuật và công cụ phân lớp dữ liệu có tiềm năng phát
triển mạnh mẽ hơn, nhờ vào sự phát triển của trí tuệ nhân tạo và công nghệ thông
tin. Nhu cầu phân tích dữ liệu và đưa ra quyết định dựa trên dữ liệu sẽ càng ngày
càng tăng, đặc biệt trong các lĩnh vực như y tế, tài chính, marketing, quản lý dữ
liệu, v.v. Tuy nhiên, việc phân lớp dữ liệu còn gặp phải nhiều thách thức, đặc biệt
là khi có sự khác biệt lớn giữa các nhóm dữ liệu. Trong trường hợp này, có thể cần
sử dụng các kỹ thuật phân lớp dữ liệu đặc biệt hoặc kết hợp các phương pháp để
đạt được độ chính xác cao nhất.
Trong báo cáo, nhóm đã thực hiện xây dựng chương trình cài đặt thuật toán
phân cụm phân hoạch K-means và đã đạt được những kết quả bước đầu phân loại
khách hàng thành các nhóm dựa trên hành vi mua hàng của họ theo tùy chọn thuộc
tính của người dùng dựa trên bộ dữ liệu có sắn. Chương trình có ưu điểm và tồn tại
một số nhược điểm, tuy nhiên chương trình vẫn có khả năng phát triển sau này
theo những định hướng nhóm đã đặt ra. Sự phát triển của chương trình sẽ giúp cho
sự phát triển của đề tài không chỉ dừng lại ở việc nghiên cứu mà còn có thể áp
dụng vào giải quyết các vấn đề trong thực tiễn.
TÀI LIỆU THAM KHẢO

You might also like