NGUYỄN ĐỨC NGỌCNGHIÊ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... NGUYỄN Đ
Trang 1NGUYỄ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
Trang 2NGUYỄ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
Trang 3LỜ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ướngdẫn, cung cấp tài liệu và định hướng cho tôi trong suốt quá trình nghiêncứ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 trongsuố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à đồngnghiệp đã giúp đỡ và động viên tôi trong suốt quá trình học tập và hoànthiện luận văn
Xin chân thành cảm ơn!
Trang 4MỤ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
Trang 53.3 Kết luận 47
Trang 6KẾT LUẬN 48
Những kết quả đã đạt được 48
Hướng phát triển tếp theo của đề tài 48
TÀI LIỆU THAM KHẢO 49
Trang 7DANH 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 9Bảng 3.1 Ví dụ về dữ liệu sau khi chuyển đổi về dạng vector 411
Trang 8DANH 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 toá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 toán K-Means 10
Hình 1.7 Thuật toán K-Means 11
Hình 1.8 Thuật toán DBSCAN 13
Hình 1.9 Thuật toán DBSCAN: thủ tục Expandcluster 14
Hình 1.10 Ví dụ về phân cụm sử dụng thuật toá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 toán học 20
Hình 2.2 Minh họa thuật toá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 toán COP-KMeans cho tập dữ liệu Soybean 24
Hình 2.5 Thuật toá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 toá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 toán SSDBSCAN 36
Hình 2.11 Kết quả của thuật toán SSGC khi so sánh với các thuật toá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
Trang 10MỞ ĐẦU
Trong vài thập niên gần đây, cùng với sự thay đổi và phát triển khôngngừng của ngành công nghệ thông tin nói chung và trong các ngànhcô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ũngnhư nhu cầu lưu trữ thông tin càng ngày càng lớn Bên cạnh đó việc tnhọc hoá một cách ồ ạt và nhanh chóng các hoạt động sản xuất, kinh doanhcũ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áchoạt động sản xuất, kinh doanh, quản lý , trong đó có nhiều Cơ sở dữ liệucực lớn cỡ Gigabyte, thậm chí là Terabyte Sự bùng nổ này đã dẫn tới mộtyê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ậtKhai phá dữ liệu đã trở thành một lĩnh vực thời sự của nền Công nghệ thôngtin thế giới hiện nay Một vấn đề được đặt ra là phải làm sao trích chọn đượcnhữ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à Khaiphá 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à: Quá trình trích xuất các thông tn
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 tacò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ềungười coi khai phá dữ liệu và một thuật ngữ thông dụng khác là khám phá trithức trong Cơ sở dữ
Trang 11liệu(Knowlegde Discovery in Databases – KDD) là như nhau Tuy nhiên trênthực tế, khai phá dữ liệu chỉ là một bước thiết yếu trong quá trình Khámphá tri thức trong Cơ sở dữ liệu Ngay từ những ngày đầu khi xuất hiện, Datamining đã trở thành một trong những xu hướng nghiên cứu phổ biếntrong lĩnh vực học máy tnh và công nghệ tri thức Nhiều thành tựu nghiêncứu của Data mining đã được áp dụng trong thực tế Data mining có nhiềuhướng quan trọng và một trong các hướng đó là phân cụm dữ liệu (DataClustering ) 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ộtphươ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ệukhô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ửagiám sát không phải là một phương pháp phân cụm hoà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ươngpháp phân cụm không giám sát
Trang 12Chươ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ântạo nhằm xây dựng các thuật toán thực hiện trên hệ thống máy tnh 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 (artficialintelligence) gồm rất nhiều lĩnh vực nghiên cứu [1] Hình 1.1 minh họa cáchướng nghiên cứu trong lĩnh vực trí tuệ nhân tạo Chúng ta có thể kể đến họcmá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áchmạ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 tnh đượ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 tnh
Trang 13quan sát một đầu vào mới và tính toá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ử (testng).
- Học không giám sát: Máy tnh chỉ được xem các mẫu thu thập đượckhông có nhãn tương ứng, sau đó máy tính phải tự tìm cách phân loại cácmẫu này (clustering – phân cụm) hoặc tìm ra mối quan hệ giữa cácmẫ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ườnghợ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ụctê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ámsá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 tnh đư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 tm cách chỉnh sửa cách ra quyết định hành động của mình
Ngoài ra trong khoảng 10 năm trở lại đây nghiên cứu về học sâu hayhọ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ủacông nghệ và các hệ thống tính toán đã đáp ứng được với khối lượng phéptnh khổng lồ của các hệ thống học sâu Tuy nhiên chất lượng của họcsâ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àitoán như nhận dạng đối tượng trên ảnh, xử lý ngôn ngữ tự nhiên,… Học sâucũng được ứng dụng cho bài toán trích chọn đặc trưng, một dạng bàitoán học không giám sát
Trang 14Hì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 tnh, 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, đặcbiệt là đối với những ngành cần phân tch 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ănbản, giao tiếp người – máy, …
- Nhận dạng (Pattern Recogniton): 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 đoán trong y tế: Phân tích ảnh X-quang, các hệ chuyên gia chẩnđoán tự động
Trang 15- 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 khoá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ạonê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ềuvấn đề cần nghiên cứu cũng như rất nhiều các ứng dụng thực tế Trong luậnvăn của mình tác giả mong muốn tm 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 toá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átbao 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 toá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 quantrọ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 dungtrên web cho tối ưu; chẳng hạn như các trang thương mại điện tử hiện naythì việc phân tch dữ liệu khách hàng khi truy cập vào website là không thể bỏqua
Trang 16Hình 1.3 Các bài toá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ình1.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 đíchkhai 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íchchọn thông tin, tìm các thông tin quý 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ằmmụ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àythường biểu diễn dưới dạng đồ thị Và bài toán khai phá dữ liệu đồ thị là mộttrong những lớp bài toán được quan tâm rất nhiều trong nghiên cứu và ứngdụng
Bài toán khai phá dữ liệu người dùng web (web usage mining) nhằmmụ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 truynhập
Trang 17website 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 tn 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ủawebsite,… Trong luận văn của mình tôi chọn nghiên cứu tm hiểu bài toánphâ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ư sau:
1
2006-02-01 00:08:43 1.2.3.4 - GET /classes/cs589/papers.html - 200
9221 HTTP/1.1 maya.cs.depaul.edu
Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+2.0.50727) h t p : / / d a t a m in i n g re so u r ce s b l o gs p o t c o m /
+MSIE+6.0;+Windows+NT+5.1;+SV1)
h t t p: // m a y a.cs d e p a ul .edu/~ c l a s s e s / c s4 8 0 / a n no u n ce h t m l
Hình 1.4 Ví dụ về dữ liệu log server webs
Sau khi có các dữ liệu như bảng trên chúng ta phải chuyển sangdạ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áctrang 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
Trang 18Bảng 1.1 Ví dụ về dữ liệu sau khi chuyển đổi thành vector
Kết quả của quá 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ómchủ đề của website hay được xem cùng nhau, Nếu như thực hiện phâncụ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ómngườ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ụmtươ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 quá trình phân cụm dữ liệu giúpcho 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ữacác đối tượng trong tập dữ liệu, thậm chí có thể phát hiện các dị thườngtrong dữ liệu (các phần từ không thuộc cụm nào sau khi phân cụm)
Trang 19Hì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
Trang 20Cá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âncụm dựa trên mật độ (DBCSAN), thuật toán phân cụm kiểu thứ bậc Mỗiphươ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 đượcgiới thiệu sớm nhất (vào những năm 50 của thế kỷ XX) Ý tưởng của phươngphá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áncá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 tếp theo thực hiện lặp lại quá trình tính lại cáctrọ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ạikhi các trọng tâm là không thay đổi được nữa
Gán mỗi điểm x vào cụm h * gần nó nhất;
Tính toán lại các trọng tâm:
(t 1) 1
t h* t 1 xX ( t 1) x
S h* h*
(t+1)
Until (Thỏa mãn điều kiện hội tụ)
Hình 1.7 Thuật toán K-Means
Trang 21Thuật toán K-Means có độ phức tạp tính toán thấp (O(nk)) tuy nhiênchấ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 đầutiên (xem hình 1.6) Một nhược điểm nửa của K-Means là chỉ tm đượ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ênmậ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áckế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ưỡngnào đó Thuật toá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ụmtheo
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ể hoà nhập hai cụm thành một cụm nếu mật độ của hai cụm gần bằngnhau Giả sử khoảng cách giữa hai tập dữ liệu S1 và S2 được địnhnghĩa là dist(S1,S2) = min{dist(p,q)| pS1 và qS2} Thuật toán DBSCAN đượctrình bày trong hình 1.8 và 1.9
Trang 22Hình 1.8 Thuật toá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 đốitượng dữ liệu và MinPts là hai tham số toà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íchthước của không gian dữ liệu, thì độ phức tạp tnh toán trung bình củamỗi truy vấn là O(log n)
Trang 23Hình 1.9 Thuật toán DBSCAN: thủ tục Expandcluster
Ưu điểm của thuật toá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
Trang 24Nhược điểm của thuật toán:
- Phải lựa chọn tham số và MinPts để tm ra cụm chính xác Các thiếtlập tham số như vậy thường khó xác định, đặc biệt trong thực tế, khi sự thiếtlậ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ấtkhá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 toán DBSCAN
Thuật toán DBSCAN có độ phức tạp tnh toán là O(n2), 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 đượccác điểm dị thường (xem hình 1.10) Chính vì thế DBSCAN là một trongnhững thuật toá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 tn Thuật toán phân cụmdự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 tếp theo sẽ loại bỏ đi các cạnh có độ tương tự nhỏ hơn mộtgiá trị nào đó,
Trang 25khi đó đồ thị sẽ phân rã thành các thành phần liên thông Mỗi thành phầnliê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 toán này là có thể phát hiện ra các cụm có hìnhdạ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 tên đưa ra giải quyết vấn đề này như Means, Hierarchical Clustering hay Graph-based Clustering đã xuất hiện vào
K-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 đòihỏi chúng ta phải có các thuật toá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 supervised
Trang 26(semi-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 tn
có được từ người sử dụng (side informaton) nhằm mục đích trợ giúp trong quá 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 tch 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 toá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ộcsố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ưngtương đồng và những đặc tả từ các bản ghi mua bán trong cơ sở dữ liệukhá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ểudiễ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 đượclấy từ DNA microarray là một tấm thủy tnh hoặc nhựa trên đó có gắncá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ễngene 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ậnD
Trang 27Cá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 ápdụ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à duytrì 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òngchống bệnh tật và người khuyết tật Trong sự phát triển của hệ thốngchăm sóc sức khỏe, phân cụm dữ liệu được sử dụng để xác định cácnhó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 têu vàonhó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ịchquả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 tê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ữngcụ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 ngoà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 tch mức xám hay mầu của ảnh thành lát đồng nhất Trongphâ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
Trang 281.4 Kết luận
Trong chương này, tác giả trình bày các khái niệm tổng quan về họcmáy, trí tuệ nhân tạo cũng như các ứng dụng của chúng Ba thuật toán phâncụm cơ bản là K-Means, DBSCAN và GC cũng được giới thiệu chi tết kèmtheo phân tch các ưu nhược điểm của chúng Thuật toán K-Means tốc độnhanh nhưng chỉ phát hiện ra các cụm có kích thước hình cầu, trong khithuật toán DBSCAN và GC có tốc độ tính toán cao hơn nhưng lại phát hiện racác cụm có hình dạng bất kỳ Trong các chương tếp theo các phương phápphân cụm nửa giám sát và ứng dụng cho bài toán phân loại dữ liệu web log
sẽ được giới thiệu
Trang 29Chương 2.
MỘT SỐ THUẬT TOÁN PHÂN CỤM NỬA GIÁM SÁT CƠ BẢN
2.1 Tổng quan về phân cụm nửa giám sát
Từ những năm 2000 trở lại đây, phương pháp phân cụm nửa giám sát
bắt đầu được phát triển mạnh mẽ Thuật toán semi-supervised clustering tích
hợp các thông tin có được từ ban đầu như một lượng nhỏ dữ liệu được gán
nhãn (seed) hoặc một số lượng nhỏ các thông tin về các cặp dữ liệu link, cannot-link: must-link(u,v) thể hiện u và v sẽ thuộc cùng một cụm trong khi cannot-link(u,v) cho biết u và v sẽ thuộc về hai cụm khác nhau.
must-Hình 2.1.Dữ liệu đầu vào cho 3 loại thuật toán học [4]
(a) học có giám sát, (b,c) học nửa giám sát, và (d) học không giám sát
Phân cụm nửa giám sát là phương pháp sử dụng các thông tin bổ trợ
để hướng dẫn cho quá trình phân cụm Các thông tin bổ trợ có thể được chodưới dạng tập các cặp ràng buộc hoặc một tập nhỏ một số dữ liệu được dánnhãn Công việc xác định những tập ràng buộc hay những tập dữ liệu đượcdán nhãn được thực hiện bởi người phân cụm Việc xác định này tuỳ thuộcvào kinh nghiệm của người phân cụm hoặc có thể dựa vào các tiêu chuẩnkhác nhau tuỳ theo mục đích của việc phân cụm
Trang 30Một số thuật toán phân cụm nửa giám sát cơ bản trong thời gian gần đây:
- Thuật toán Seed K-Means, đây là thuật toán K-Means tích hợp với các
dữ liệu đã gán nhãn nhằm trợ giúp trong pha khởi tạo các trọng tâm cho cáccụm
- Thuật toán Constraint K-Means, thuật toán này sử dụng các ràngbuộc giữa các điểm vào trong quá trình phân cụm, trợ giúp quá trình tìm kiếmcác cụm
- Thuật toán MPC K-Means, thuật toán này sử dụng các ràng buộc
để huấn luyện hàm mục têu và trợ giúp quá trình tìm kiếm các cụm
- Thuật toán SSDBSCAN, thuật toán này sử dụng một số điểm đã gánnhãn sẵn cung cấp để giúp cho thuật toán tm kiếm được các cụm có mật
độ bất kỳ
- Thuật toán SSGC, đây là thuật toán phân cụm nửa giám sát dựatrên đồ thị, với việc sử dụng một số điểm đã gán nhãn để trợ giúp quá trìnhphân tách đồ thị thành các thành phần liên thông lớn nhất
- Thuật toán MCSSDBS, thuật toán này cải tến thuật toán SSDBSCANbằng cách tích hợp các ràng buộc và các điểm đã gán nhãn sẵn vào trongcùng một quá trình phân cụm làm tăng chất lượng của phân cụm khi so sánhvới thuật toán SSDBSCAN
- Thuật toán MCSSGC, một cải tiến của thuật toán SSGC, tương tự nhưMCSSDBS, thuật toán này tch hợp cả hai loại ràng buộc và các điểm đã gánnhãn vào trong cùng một thuật toán để cải tiến chất lượng phân cụm khi sosánh với thuật toán gốc SSGC
Hiện nay có hai hướng tếp cận phương pháp phân cụm nửa giám sát đólà:
- Huấn luyện khoảng cách giữa các điểm (metric learning): Các thông
Trang 31cho hai điểm mà thuộc ràng buộc must-link nghĩa là sau khi huấn luyện haiđiểm