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

Nghiên cứu một số phương pháp phân cụm nửa giám sát ứng dụng cho bài toán phân cụm dữ liệu web server logs​

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 (1.59 MB, 60 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN ĐỨC NGỌC

NGHIÊN CỨU MỘT SỐ PHƯƠNG PHÁP PHÂN CỤM NỬA GIÁM
SÁT ỨNG DỤNG CHO BÀI TOÁN PHÂN CỤM DỮ LIỆU WEB
SERVER LOGS

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

THÁI NGUYÊN, 2018


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN ĐỨC NGỌC

NGHIÊN CỨU MỘT SỐ PHƯƠNG PHÁP
PHÂN CỤM NỬA GIÁM SÁT ỨNG DỤNG CHO BÀI
TOÁN PHÂN CỤM DỮ LIỆU WEB SERVER LOGS
Chuyên ngành: Khoa học máy tính
Mã số: 8480101

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: TS. Vũ Việt Vũ

THÁI NGUYÊN, 2018



i

LỜI CẢM ƠN
Lời đầu tiên, tôi xin được gửi lời cảm ơn sâu sắc tới TS. Vũ Việt Vũ,
người đã trực tiếp hướng dẫn tôi thực hiện luận văn. Thầy đã tận tình hướng
dẫn, cung cấp tài liệu và định hướng cho tơi trong suốt q trình nghiên cứu
và thực hiện luận văn.
Tôi xin chân thành cảm ơn các thầy cô đã giảng dạy và quản lý đào tạo
đã tạo điều kiện cho tơi có một mơi trường học tập, nghiên cứu tốt trong suốt
2 năm theo học.
Cuối cùng tôi xin được gửi lời cảm ơn tới gia đình, bạn bè và đồng
nghiệp đã giúp đỡ và động viên tôi trong suốt q trình học tập và hồn thiện
luận văn.
Xin chân thành cảm ơn!


ii

MỤC LỤC
MỞ ĐẦU...........................................................................................................1
Chương 1. TỔNG QUAN................................................................................. 3
1.1. Khái niệm về học máy và bài toán phân cụm dữ liệu................................ 3
1.2. Nội dung nghiên cứu của luận văn.............................................................6
1.3. Một số phương pháp phân cụm dữ liệu cơ bản..........................................9
1.3.1. Phương pháp phân cụm K-Means................................................... 11
1.3.2. Phương pháp phân cụm DBSCAN................................................... 12
1.3.3. Phương pháp phân cụm dựa trên đồ thị (GC)................................... 15
1.3.4. Ứng dụng của phân cụm dữ liệu....................................................... 17
1.4. Kết luận....................................................................................................19

Chương 2. MỘT SỐ THUẬT TOÁN PHÂN CỤM NỬA GIÁM SÁT CƠ
BẢN................................................................................................................20
2.1. Tổng quan về phân cụm nửa giám sát......................................................20
2.2. Thuật toán phân cụm nửa giám sát dựa trên K-Means............................ 22
2.2.1. Thuật toán COP-KMeans..................................................................22
2.2.2. Thuật toán Seed K-Means.................................................................24
2.3. Thuật toán phân cụm nửa giám sát dựa trên mật độ: SSDBSCAN..........27
2.4. Thuật toán phân cụm nửa giám sát dựa trên đồ thị (SSGC).................... 33
2.5. Kết luận....................................................................................................37
Chương 3. KẾT QUẢ THỰC NGHIỆM........................................................ 38
3.1. Giới thiệu về dữ liệu web server logs...................................................... 38
3.1.1. Tiền xử lý dữ liệu.............................................................................. 38
3.1.2. Phương pháp đánh giá chất lượng phân cụm....................................42
3.1.3. Thuật toán phân cụm.........................................................................43
3.2. Kết quả phân cụm trên tập web server logs............................................. 43
3.3. Kết luận....................................................................................................47


iii

KẾT LUẬN.....................................................................................................48




Những kết quả đã đạt được..................................................................48

Hướng phát triển tiếp theo của đề tài.................................................. 48
TÀI LIỆU THAM KHẢO...............................................................................49



iv

DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1. Ví dụ về dữ liệu sau khi chuyển đổi thành vector............................ 9
Bảng 3.1. Ví dụ về dữ liệu sau khi chuyển đổi về dạng vector.....................411


v

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1. Các hướng nghiên cứu của Trí tuệ nhân tạo......................................3
Hình 1.2. Các lĩnh vực liên quan với học máy..................................................5
Hình 1.3. Các bài tốn khai phá dữ liệu trên web (web mining)......................7
Hình 1.4. Ví dụ về dữ liệu log server webs.......................................................8
Hình 1.5 Ví dụ về phân cụm dữ liệu...............................................................10
Hình 1.6. Minh họa thuật tốn K-Means........................................................ 10
Hình 1.7 Thuật tốn K-Means.........................................................................11
Hình 1.8. Thuật tốn DBSCAN...................................................................... 13
Hình 1.9. Thuật tốn DBSCAN: thủ tục Expandcluster................................. 14
Hình 1.10 Ví dụ về phân cụm sử dụng thuật tốn DBSCAN.........................15
Hình 1.11. Ví dụ về phân cụm sử dụng đồ thị................................................ 16
Hình 2.1.Dữ liệu đầu vào cho 3 loại thuật tốn học........................................20
Hình 2.2. Minh họa thuật tốn COP-Kmeans.................................................23
Hình 2.3. Kết quả so sánh của thuật toán COP-KMeans cho tập dữ liệu tic-tac-toe . 23

Hình 2.4. Kết quả so sánh của thuật tốn COP-KMeans cho tập dữ liệu
Soybean...........................................................................................................24
Hình 2.5 Thuật tốn Seed K-Means................................................................25
Hình 2.6. Kết quả phân cụm cho tập dữ liệu Newgroups...............................26

Hình 2.7. Kết quả phân cụm cho tập Yahoo....................................................27
Hình 2.8. Dữ liệu với 3 cluster A, B, và C. Tuy nhiên khơng có giá trị phù
hợp MinPts và  để DBSCAN có thể phát hiện ra đúng cả ba cluster trên.....28
Hình 2.9. Kết quả phân cụm của thuật tốn SSDBSCAN trên tập dữ liệu từ UCI . 32

Hình 2.10. So sánh tốc độ thực hiện giữa thuật toán SSGC và thuật tốn
SSDBSCAN....................................................................................................36
Hình 2.11. Kết quả của thuật tốn SSGC khi so sánh với các thuật tốn cùng
loại...................................................................................................................37
Hình 3.1 Ví dụ về một số dịng dữ liệu log server web.................................. 38
Hình 3.2 Địa chỉ IP truy cập của người dùng..................................................39
Hình 3.3 Ký hiệu chỉ mục trên website...........................................................40
Hình 3.4 Danh sách các seed sử dụng phân cụm............................................43


1
MỞ ĐẦU
Trong vài thập niên gần đây, cùng với sự thay đổi và phát triển không
ngừng của ngành công nghệ thơng tin nói chung và trong các ngành cơng
nghệ phần cứng, phần mềm, truyền thông và hệ thống các dữ liệu phục vụ
trong các lĩnh vực kinh tế - xã hội nói riêng. Việc thu thập thơng tin cũng như
nhu cầu lưu trữ thông tin càng ngày càng lớn. Bên cạnh đó việc tin học hố
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 Cơ sở dữ liệu đã được sử dụng trong các hoạt động
sản xuất, kinh doanh, quản lý..., trong đó có nhiều Cơ sở dữ liệu 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 Công nghệ thông tin thế giới

hiện nay. Một vấn đề được đặt ra là phải làm sao trích chọn được những thơng
tin có ý nghĩa từ tập dữ liệu lớn để từ đó có thể giải quyết được các yêu cầu
của thực tế như trợ giúp ra quyết định, dự đoán,… và Khai phá dữ liệu (Data
mining) đã ra đời nhằm giải quyết các yêu cầu đó.
Khai phá dữ liệu được định nghĩa là: Q trình trích xuất các thơng tin
có giá trị tiềm ẩn bên trong lượng lớn dữ liệu được lưu trữ trong các Cơ sở dữ
liệu, kho dữ liệu… . Hiện nay, ngoài thuật ngữ khai phá dữ liệu, người ta cịn
dùng một số thuật ngữ khác có ý nghĩa tương tự như: Khai phá tri thức từ Cơ
sở dữ liệu (knowlegde mining from databases), trích lọc dữ liệu (knowlegde
extraction), phân tích dữ liệu/mẫu (data/pattern analysis), khảo cổ dữ liệu
(data archaeology), nạo vét dữ liệu (data dredging). Nhiều người coi khai phá
dữ liệu và một thuật ngữ thông dụng khác là khám phá tri thức trong Cơ sở dữ


2
liệu(Knowlegde Discovery in Databases – KDD) là như nhau. Tuy nhiên trên
thực tế, khai phá dữ liệu chỉ là một bước thiết yếu trong quá trình Khám phá
tri thức trong Cơ sở dữ liệu. Ngay từ những ngày đầu khi xuất hiện, Data
mining đã trở thành một trong những xu hướng nghiên cứu phổ biến trong
lĩnh vực học máy tính và công nghệ tri thức. Nhiều thành tựu nghiên cứu của
Data mining đã được áp dụng trong thực tế. Data mining có nhiều hướng quan
trọng và một trong các hướng đó là phân cụm dữ liệu (Data Clustering ). Phân
cụm dữ liệu là quá trình tìm kiếm để phân ra các cụm dữ liệu, các mẫu dữ liệu
từ tập Cơ sở dữ liệu lớn. Phân cụm dữ liệu là một phương pháp học không
giám sát.
Trong những năm trở lại đây, do phương pháp phân cụm dữ liệu khơng
giám sát cịn một số hạn chế vì vậy dựa trên học khơng giám sát và học có
giám sát đã ra đời một phương pháp phân cụm dữ liệu mới đó là phương pháp
phân cụm dữ liệu nửa giám sát. Phương pháp phân cụm nửa giám sát không
phải là một phương pháp phân cụm hồn thiện nhưng nó đã phần nào khắc

phục được những hạn chế và phát huy ưu điểm của phương pháp phân cụm
không giám sát.


3
Chương 1. TỔNG QUAN
1.1. Khái niệm về học máy và bài toán phân cụm dữ liệu
Học máy (Machine Learning) là một nhánh nghiên cứu của Trí tuệ nhân
tạo nhằm xây dựng các thuật toán thực hiện trên hệ thống máy tính có thể học
được qua các dữ liệu mẫu thống kê có sẵn. Trí tuệ nhân tạo (artificial
intelligence) gồm rất nhiều lĩnh vực nghiên cứu [1]. Hình 1.1 minh họa các
hướng nghiên cứu trong lĩnh vực trí tuệ nhân tạo. Chúng ta có thể kể đến học
máy, học sâu, nhận dạng đối tượng, các hệ thống tự động, xử lý ngơn ngữ tự
nhiên, trợ lý ảo,… Trí tuệ nhân tạo là một trong ba trụ cột của cuộc cách mạng
công nghiệp 4.0 cùng với dữ liệu lớn (Big Data) và Internet vận vật. (IoT).

Hình 1.1. Các hướng nghiên cứu của Trí tuệ nhân tạo [1]
Trên thực tế có 4 dạng học cơ bản bao gồm:
Học có giám sát: Máy tính được học một số mẫu gồm đầu vào
(Input)
và đầu ra (Output) tương ứng trước. Sau khi học xong các mẫu này, máy tính


4
quan sát một đầu vào mới và tính tốn, suy diễn ra kết quả tương ứng cho đầu
vào đó. Đối với loại học này sẽ có hai pha là pha huấn luyện (training) và pha
kiểm thử (testing).
-

Học không giám sát: Máy tính chỉ được xem các mẫu thu thập được


khơng có nhãn tương ứng, sau đó máy tính phải tự tìm cách phân loại các mẫu
này (clustering – phân cụm) hoặc tìm ra mối quan hệ giữa các mẫu
(association rule – luật kết hợp), các điểm dị thường của tập mẫu (outlier),
giảm số chiều của tập mẫu (PCA),…
-

Học nửa giám sát: Một dạng lai giữa hai nhóm học trên. Trong trường

hợp này hệ thống sẽ được cung cấp một lượng nhỏ các mẫu và tùy từng mục
tiêu bài toán chúng ta phát triển các phương pháp phân lớp nửa giám sát
(semi-supervised classification) hoặc phân cụm nửa giám sát (semi-supervised
clustering).
-

Học tăng cường: Máy tính đưa ra quyết định hành động (action) và

nhận kết quả phản hồi (response/reward) từ môi trường (environment). Sau đó
máy tính tìm cách chỉnh sửa cách ra quyết định hành động của mình.
Ngồi ra trong khoảng 10 năm trở lại đây nghiên cứu về học sâu hay
học đa lớp (Deep learning) đã được quan tâm rất nhiều. Học sâu bản chất là
dựa trên mạng Nơ ron nhiều lớp. Dựa vào sự phát triển rất mạnh mẽ của công
nghệ và các hệ thống tính tốn đã đáp ứng được với khối lượng phép tính
khổng lồ của các hệ thống học sâu. Tuy nhiên chất lượng của học sâu đã
chứng minh là tốt hơn hẳn các phương pháp học khác cho một số bài toán như
nhận dạng đối tượng trên ảnh, xử lý ngôn ngữ tự nhiên,… Học sâu cũng được
ứng dụng cho bài tốn trích chọn đặc trưng, một dạng bài tốn học khơng
giám sát.



5

Hình 1.2. Các lĩnh vực liên quan với học máy
Hình 1.2 trình bày các lĩnh vực liên quan đến học máy, chúng ta thấy để
nghiên cứu vấn đề học máy cần có có kiến thức về lĩnh vực như xác suất, đại
số tuyến tính, tối ưu hóa, lý thuyết học thống kê,…
Học máy có ứng dụng rộng khắp các ngành khoa học/ sản xuất, đặc biệt
là đối với những ngành cần phân tích khối lượng dữ liệu khổng lồ. Một số ứng
dụng phổ biến của học máy là:
-

Xử lý ngôn ngữ tự nhiên (Natural Language Processing): Xử lý văn

bản, giao tiếp người – máy, …
-

Nhận dạng (Pattern Recognition): Nhận dạng tiếng nói, chữ viết tay,

vân tay, thị giác máy (Computer Vision) …
-

Tìm kiếm (Search Engine)

Chẩn đốn trong y tế: Phân tích ảnh X-quang, các hệ chun gia chẩn

đốn tự động.


6
Tin sinh học: Phân loại chuỗi gene, quá trình hình thành

gene/protein.
-

Vật lý: Phân tích ảnh thiên văn, tác động giữa các hạt …

Phát hiện gian lận tài chính (financial fraud): Gian lận thẻ tín
dụng.
-

Phân tích thị trường chứng khốn (stock market analysis)

...

Chơi trò chơi: Tự động chơi cờ, hành động của các nhân vật ảo,

Robot là tổng hợp của rất nhiều ngành khoa học, trong đó học máy tạo
nên hệ thần kinh/ bộ não của người máy.
1.2. Nội dung nghiên cứu của luận văn
Với các khái niệm như đã trình bày, học máy là một lĩnh vực có nhiều
vấn đề cần nghiên cứu cũng như rất nhiều các ứng dụng thực tế. Trong luận
văn của mình tác giả mong muốn tìm hiểu và nghiên cứu các vấn đề sau đây:
-

Nghiên cứu và tìm hiểu các thuật tốn phân cụm dữ liệu cơ bản.

Nghiên cứu và nắm bắt một số thuật toán phân cụm nửa giám sát bao

gồm thuật toán phân cụm nửa giám sát K-Means, thuật toán SSDBSCAN, và
thuật toán phân cụm nửa giám sát dựa trên đồ thị SSGC.
-


Lập trình ứng dụng cho bài tốn phân cụm dữ liệu web server logs –

dữ liệu ghi các truy xuất của khách hàng đến các website.
Bài toán phân cụm dữ liệu người sử dụng web có ý nghĩa rất quan trọng
trong việc xác định các nhóm người sử dụng có cùng sở thích, có cùng xu
hướng truy cập thơng tin giúp cho các nhà quản lý bố trí các nội dung trên
web cho tối ưu; chẳng hạn như các trang thương mại điện tử hiện nay thì việc
phân tích dữ liệu khách hàng khi truy cập vào website là không thể bỏ qua.


7

Hình 1.3. Các bài tốn khai phá dữ liệu trên web (web mining) [2]
Các bài toán khai phá dữ liệu trên web gồm khai phá nội dung web,
khai phá dữ liệu người dùng web và khai phá dữ liệu cấu trúc web (xem hình
1.3). Với các vấn đề này chúng ta có thể sử dụng các cơng cụ học máy như
phân cụm, phân lớp, phương pháp luật kết hợp.
Bài toán khai phá nội dung web (web content mining) nhằm mục đích
khai phá các dữ liệu từ các trang web. Dữ liệu thường là văn bản, video,…
Hiện nay số lượng website là rất lớn vấn đề đặt ra là phân loại, trích chọn
thơng tin, tìm các thơng tin q là một nhu cầu rất thiết yếu.
Bài toán khai phá dữ liệu cấu trúc website (web structure mining) nhằm
mục đích tìm các mối liên hệ giữa các cấu trúc website. Các loại dữ liệu này
thường biểu diễn dưới dạng đồ thị. Và bài toán khai phá dữ liệu đồ thị là một
trong những lớp bài toán được quan tâm rất nhiều trong nghiên cứu và ứng dụng.

Bài toán khai phá dữ liệu người dùng web (web usage mining) nhằm
mục đích tìm ra các mẫu, các quy luật của người dùng từ các vết truy nhập



8
website của người sử dụng. Quá trình truy nhập website của người dùng sẽ
được ghi lại trên máy chủ và gọi là web server logs. Các thông tin cơ bản
được lưu trữ lại như địa chỉ IP, thời gian truy nhập, tên đường liên kết của
website,… Trong luận văn của mình tơi chọn nghiên cứu tìm hiểu bài tốn
phân cụm cho dữ liệu người dùng website.

Cấu trúc của các dữ liệu web server logs như
TT

Nội dung web server

2006-02-01 00:08:43 1.2.3.4 - GET /class
1

9221 HTTP/1.1 maya.cs.depaul.edu

Mozilla/4.0+(compatible;+MSIE+6.0;+Wind

+CLR+2.0.50727) http://dataminingresource

2006-02-02 19:34:45 3.4.5.6 - GET /classes/c
2

3794 HTTP/1.1 maya.cs.depaul.edu

Mozilla/4.0+(compatible;+MSIE+6.0;+Wind
/>
2006-02-02 19:34:45 3.4.5.6 - GET/classes/c

3

HTTP/1.1 maya.cs.depaul.edu

Mozilla/4.0+(compatible;+MSIE+6.0;+Wind

/>
Hình 1.4. Ví dụ về dữ liệu log se
Sau khi có các dữ liệu như bảng trên chúng ta phải chuyển sang dạng
các vector dạng số dựa trên các trang của website. Giả sử có 5 người sử dụng
(users) và 5 trang kí hiệu là A, B, C, D, E. Dữ liệu sau khi chuyển đổi có dạng
như bảng sau. Các số trong bảng thể hiện thời gian truy cập vào các trang
tương ứng của người sử dụng. Bài toán phân cụm sẽ thực hiện với dữ liệu trên
bảng này.


9
Bảng 1.1. Ví dụ về dữ liệu sau khi chuyển đổi thành vector
User 1
User 2
User 3
User 4
User 5
Kết quả của q trình phân cụm sẽ là các cụm trong đó các phần tử
trong mỗi cụm sẽ cho biết nhóm khách hàng hay vào truy xuất, các nhóm chủ
đề của website hay được xem cùng nhau,... Nếu như thực hiện phân cụm với
dữ liệu này trên các website khác nhau thì các cụm sẽ cho biết nhóm người
truy cập website theo các chủ đề gì, vào các website nào,… Điều này có ý
nghĩa trong việc bố trí cấu trúc của các nội dung website cũng như biết được
mối liên hệ giữa các website mà người dùng hay truy cập.

1.3. Một số phương pháp phân cụm dữ liệu cơ bản
Bài toán phân cụm (clustering) là một dạng của phương pháp học
không giám sát (unsupervised learning) được phát biểu như sau: Cho tập X
gồm n đối tượng, hãy phân rã tập X ra thành k (k ≤ n) cụm (cluster) sao cho
các đối tượng trong cùng một cụm thì tương tự nhau và các đối tượng ở các
cụm khác nhau thì khơng tương tự nhau theo một tiêu chuẩn nào đó. Hình 1.5
minh họa về tập dữ liệu trong không gian hai chiều với các cụm tương ứng.
Chúng ta có thể thấy các cụm có thể có phân bố Gaussian hoặc có hình dạng
bất kỳ (hình 1.6). Mục đích của q trình phân cụm dữ liệu giúp cho chúng ta
hiểu rõ cấu trúc phân bố của dữ liệu cũng như mối quan hệ giữa các đối tượng
trong tập dữ liệu, thậm chí có thể phát hiện các dị thường trong dữ liệu (các
phần từ không thuộc cụm nào sau khi phân cụm).


10

Hình 1.5 Ví dụ về phân cụm dữ liệu

Hình 1.6. Minh họa thuật toán K-Means


11
Các thuật toán phân cụm được nghiên cứu và giới thiệu từ những năm
50 của thế kỷ XX. Một số thuật toán phân cụm dữ liệu cơ bản gồm K-Means,
Fuzzy C-Means, thuật toán phân cụm dựa trên đồ thị, thuật toán phân cụm
dựa trên mật độ (DBCSAN), thuật toán phân cụm kiểu thứ bậc. Mỗi phương
pháp có ưu và nhược điểm riêng và sẽ phù hợp với các loại dữ liệu cho các
ứng dụng khác nhau.
1.3.1. Phương pháp phân cụm K-Means
Thuật toán phân cụm K-Means là một trong những thuật toán được giới

thiệu sớm nhất (vào những năm 50 của thế kỷ XX). Ý tưởng của phương pháp
K-Means như sau: Giả sử ta cần phân tách tập dữ liệu X gồm n phần tử thành
k cụm. Thuật toán sẽ đi tìm ngẫu nhiên k trọng tâm đầu tiên và gán các điểm
dữ liệu vào trọng tâm gần nhất với nó để hình thành các cụm ở bước đầu tiên.
Ở các bước tiếp theo thực hiện lặp lại q trình tính lại các trọng tâm và gán
lại các điểm vào trọng tâm gần nhất. Quá trình sẽ dừng lại khi các trọng tâm là
không thay đổi được nữa.
Algorithm 1: KMeans;
Input: Tập dữ liệu X = {x1, x2,…,xn}, xi Rn, số
lượng cụm k,
Output: k cụm của X
Khởi tạo k trọng tâm ngẫu nhiên từ tập X
Repeat
Gán mỗi điểm x vào cụm h* gần nó nhất;
Tính tốn lại các trọng tâm:
h(t*1)

t
 (t+1)
Until (Thỏa mãn điều kiện hội tụ)

Hình 1.7 Thuật tốn K-Means


12
Thuật tốn K-Means có độ phức tạp tính tốn thấp (O(nk)) tuy nhiên
chất lượng của phân cụm lại phụ thuộc vào việc lựa chọn k trọng tâm đầu tiên
(xem hình 1.6). Một nhược điểm nửa của K-Means là chỉ tìm được các cụm
có dạng hình cầu và kích thước các cụm sẽ gần như tương tự nhau.
1.3.2. Phương pháp phân cụm DBSCAN

Ý

tưởng cơ bản của thuật toán DBSCAN là sử dụng tính chất dựa trên

mật độ dữ liệu – các cụm sẽ gồm các điểm liên kết với nhau thông qua các kết
nối dựa trên mật độ của chúng [3]. Các cụm sẽ được xây dựng từ một điểm dữ
liệu bằng cách thêm vào các nhóm có mật độ vượt qua một ngưỡng nào đó.
Thuật tốn DBSCAN sử dụng hai tham số là MinPts và . Trong quá trình xây
dựng các cụm, các điểm sẽ được xếp liên tiếp vào ngăn xếp nếu nó thỏa mãn
có ít nhất MinPts hàng xóm nằm trong bán kính .
DBSCAN khởi tạo điểm p tuỳ ý và lấy tất cả các điểm đến được mật độ
từ p với  và MinPts. Nếu p là điểm nhân thì thủ tục trên tạo ra một cụm theo
 và MinPts, Nếu p là một điểm biên, không có điểm nào đến được mật độ từ
p và DBSCAN sẽ đi thăm điểm tiếp theo của tập dữ liệu.
Nếu chúng ta chọn sử dụng giá trị toàn cục  và MinPts, DBSCAN có
thể hồ nhập hai cụm thành một cụm nếu mật độ của hai cụm gần bằng nhau.
Giả sử khoảng cách giữa hai tập dữ liệu S1 và S2 được định nghĩa là
dist(S1,S2) = min{dist(p,q)| pS1 và qS2}. Thuật tốn DBSCAN được trình
bày trong hình 1.8 và 1.9.


13

Hình 1.8. Thuật tốn DBSCAN [3]
Trong đó, SetOfPoints hoặc là tập dữ liệu ban đầu hoặc là cụm được
khám phá từ bước trước, CLId (clusterId) là nhãn đánh dấu phần tử dữ liệu
nhiễu có thể thay đổi nếu chúng có thể đến được mật độ từ một điểm khác từ
CSDL, điều này chỉ xảy ra đối với các điểm biên của dữ liệu. Hàm
SetOfPoints.get(i) trả về phần tử thứ i của SetOfPoints. Thủ tục
SetOfPoints.regionQuery(point, Eps) trả về một danh sách các điểm dữ liệu

lân cận với điểm Point trong ngưỡng Eps từ tập dữ liệu SetOfPoints. Trừ một
số trường hợp ngoại lệ, kết quả của DBSCAN độc lập với thứ tự duyệt các đối
tượng dữ liệu.  và MinPts là hai tham số tồn cục được xác định bằng thủ
cơng hoặc theo kinh nghiệm. Tham số  được đưa vào là nhỏ so với kích
thước của khơng gian dữ liệu, thì độ phức tạp tính tốn trung bình của mỗi
truy vấn là O(log n).


14

Hình 1.9. Thuật tốn DBSCAN: thủ tục Expandcluster

Ưu điểm của thuật tốn:
-

Khám phá được các cụm có hình dáng bất kỳ.

-

Có thể thay đổi quy mơ, hiệu quả trong cơ sở dữ liệu lớn.

-

Có khả năng xử lý được nhiễu.


15
Nhược điểm của thuật toán:
-


Phải lựa chọn tham số  và MinPts để tìm ra cụm chính xác. Các thiết

lập tham số như vậy thường khó xác định, đặc biệt trong thực tế, khi sự thiết
lập các tham số đầu vào khác biệt nhỏ có thể dẫn đến sự phân chia cụm rất
khác nhau. Trong nhiều trường hợp không thể lựa chọn được tham số ε và
MinPts phù hợp để tiến hành phân cụm.

Hình 1.10 Ví dụ về phân cụm sử dụng thuật tốn DBSCAN
Thuật tốn DBSCAN có độ phức tạp tính tốn là O(n 2), tuy nhiên nó lại
có khả năng tìm được các cụm có hình dạng bất kỳ và phát hiện được các
điểm dị thường (xem hình 1.10). Chính vì thế DBSCAN là một trong những
thuật tốn có tính ứng dụng và thực tiễn cao, rất nhiều các biến thể của
DBSCAN đã được nghiên cứu và giới thiệu.
1.3.3. Phương pháp phân cụm dựa trên đồ thị (GC)
Lý thuyết đồ thị (graph theory) là một trong những công cụ có nhiều
ứng dụng đối với ngành Cơng nghệ thơng tin. Thuật toán phân cụm dựa trên
đồ thị (GC) được giới thiệu năm 1973. Ý tưởng cơ bản là các điểm sẽ được
kết nối lại thành đồ thị với trọng số có thể là độ tương tự giữa các điểm. Bước
tiếp theo sẽ loại bỏ đi các cạnh có độ tương tự nhỏ hơn một giá trị  nào đó,


16
khi đó đồ thị sẽ phân rã thành các thành phần liên thơng. Mỗi thành phần liên
thơng có thể coi như là một cụm, các thành phần liên thơng có số lượng đỉnh
ít có thể coi như là các điểm dị thường.

Hình 1.11. Ví dụ về phân cụm sử dụng đồ thị
Ưu điểm của thuật tốn này là có thể phát hiện ra các cụm có hình dạng
bất kỳ, tuy nhiên việc lựa chọn tham số  lại là vấn đề khó khăn và sẽ phụ
thuộc vào bản chất của bài toán thực tế.

Mặc dù những thuật toán đầu tiên đưa ra giải quyết vấn đề này như KMeans, Hierarchical Clustering hay Graph-based Clustering đã xuất hiện vào
những năm 60 của thế kỷ trước, tuy nhiên với sự bùng nổ thông tin như vũ
bão, rất nhiều nguồn dữ liệu khổng lồ xuất hiện ở các lĩnh vực khác nhau đòi
hỏi chúng ta phải có các thuật tốn phân cụm dữ liệu hiệu quả để đáp ứng
được các yêu cầu đặt ra cả về tốc độ lẫn chất lượng.
Một trong những hướng nghiên cứu quan trọng trong các năm gần đây
là phát triển các phương pháp phân cụm nửa giám sát (semi-supervised


17
clustering). Các thuật toán phân cụm nửa giám sát sẽ sử dụng các thơng tin có
được từ người sử dụng (side information) nhằm mục đích trợ giúp trong q
trình phân cụm và vì vậy cải tiến đáng kể chất lượng của clustering.
Trên thực tế, có hai loại side information thường được sử dụng là các
dữ liệu đã được gán nhãn (labeled data hay còn gọi là seed) và các ràng buộc
(constraint). Các constraint bao gồm hai loại: must-link(u,v) (u, v  X) biểu
thị u và v sẽ được phân vào cùng một cụm và cannot-link(u,v) biểu thị u và v
sẽ được phân về hai cụm khác nhau. Mặc dù đã có rất nhiều nghiên cứu quan
trọng được đưa ra nhưng các thuật toán semi-supervised clustering mới chỉ
dừng lại ở việc tích hợp từng loại side information riêng lẻ, hơn nữa chất
lượng của các bài tốn loại này cịn phụ thuộc vào việc lựa chọn số lượng và
chất lượng của các side information.
1.3.4. Ứng dụng của phân cụm dữ liệu
Phân cụm dữ liệu có thể được ứng dụng trong nhiều lĩnh vực của cuộc
sống ví dụ như:
-

Thương mại: Tìm kiếm nhóm các khách hàng quan trọng có đặc trưng

tương đồng và những đặc tả từ các bản ghi mua bán trong cơ sở dữ liệu khách hàng.


-

Phân cụm dữ liệu phục vụ cho biểu diễn dữ liệu gene: Phân cụm là

một trong những phân tích được sử dụng thường xuyên nhất trong biểu diễn
dữ liệu gene. Dữ liệu biểu diễn gene là một tập hợp các phép đo được lấy từ
DNA microarray là một tấm thủy tinh hoặc nhựa trên đó có gắn các đoạn
DNA thành các hàng siêu nhỏ. Một tập hợp dữ liệu biểu diễn gene có thể
được biểu diễn thành một ma trận giá trị thực.
Dữ liệu biểu diễn gene sẽ được phân cụm theo 2 cách. Cách thứ nhất là
nhóm các mẫu gene giống nhau ví dụ như gom cụm dòng của ma trận D.


18
Cách thứ 2 là nhóm các mẫu khác nhau trên các hồ sơ tương ứng, ví dụ như
gom các cột của ma trận D.
-

Phân cụm dữ liệu phục vụ trong sức khỏe tâm lý: Phân cụm dữ liệu áp

dụng trong nhiều lĩnh vực sức khỏe, tâm lý, bao gồm cả việc thúc đẩy và duy
trì sức khỏe, cải thiện cho hệ thống chăm sóc sức khỏe và cơng tác phịng
chống bệnh tật và người khuyết tật. Trong sự phát triển của hệ thống chăm sóc
sức khỏe, phân cụm dữ liệu được sử dụng để xác định các nhóm của người
dân mà có thể được hưởng lợi từ các dịch vụ cụ thể. Trong thúc đẩy y tế,
nhóm phân tích được lựa chọn để nhằm mục tiêu vào nhóm sẽ có khả năng
mang lại lợi ích cho sức khỏe cụ thể từ các chiến dịch quảng cáo và tạo điều
kiện thuận lợi cho sự phát triển của quảng cáo. Ngoài ra, phân cụm dữ liệu
còn được sử dụng để xác định các nhóm dân cư bị rủi ro do phát triển y tế và

các điều kiện những người có nguy cơ nghèo.
-

Phân cụm dữ liệu trong hoạt động nghiên cứu thị trường: Trong

nghiên cứu thị trường phân cụm dữ liệu được sử dụng để phân đoạn thị trường
và xác định mục tiêu thị trường. Trong phân đoạn thị trường, phân cụm dữ
liệu được dùng để phân chia thị trường thành những cụm mang ý nghĩa.
Chẳng hạn như chia đối tượng nam giới từ 21 – 30 tuổi và nam giới ngoài 51
tuổi, đối tượng nam giới ngồi 51 tuổi thường khơng có xu hướng mua những
sản phẩm mới.
-

Phân cụm dữ liệu trong hoạt động phân đoạn ảnh: Phân đoạn ảnh là

việc phân tích mức xám hay mầu của ảnh thành lát đồng nhất. Trong phân
đoạn ảnh phân cụm dữ liệu thường được dùng để phát hiện biên của đối tượng
trong ảnh.


×