Nhu cầu về tìm kiếm, xử lý thông tin và những hiệu quả của chúng mang lại đã tác động không nhỏ đến năng suất, chất lượng, hiệu quả trong các lĩnh vực kinh doanh, quản lý, khoa học kỹ th
Trang 1MỤC LỤC
MỤC LỤC i
CÁC CỤM TỪ VIẾT TẮT iii
DANH MỤC CÁC HÌNH VẼ iv
LỜI NÓI ĐẦU 1
CHƯƠNG I TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 3
1.1 Khai phá dữ liệu và phát hiện tri thức 3
1.1.1 Khai phá dữ liệu 3
1.1.2 Quá trình khám phá tri thức 4
1.1.3 Khai phá dữ liệu và các lĩnh vực liên quan 5
1.1.4 Các phương pháp áp dụng trong Khai phá dữ liệu 6
1.1.5 Những chức năng chính của KPDL 7
1.1.6 Các ứng dụng của Khai phá dữ liệu 9
1.2 Phương pháp phân cụm trong Khai phá dữ liệu 10
1.2.1 Khái quát về phân cụm dữ liệu .10
1.2.2 Ứng dụng của phân cụm dữ liệu 13
1.2.3 Các yêu cầu đối với phương pháp phân cụm dữ liệu 14
1.3 Khai phá Web 15
1.3.1 Khai phá Web .15
1.3.2 Khái niệm khai phá Web 16
1.3.3 Đặc trưng của khai phá Web 17
1.3.4 Các đối tượng khai phá Web 18
Tổng kết chương 1 18
CHƯƠNG II MỘT SỐ PHƯƠNG PHÁP PHÂN CỤM DỮ LIỆU 20
2.1 Phân cụm phân hoạch: 21
2.1.1 Thuật toán K-means 21
2.1.2 Thuật toán K-medoids 24
2.2 Phân cụm phân cấp 26
2.2.1 Thuật toán BIRCH 27
2.2.2 Thuật toán CURE 30
2.3 Phương pháp phân cụm dữ liệu dựa vào mật độ 32
2.3.1 Thuật toán DBSCAN 32
2.3.2 Thuật toán OPTICS 36
2.4 Thuật toán phân cụm dữ liệu dựa trên lưới 37
2.4.1 Thuật toán STING 38
2.4.2 Thuật toán CLIQUE 40
2.5 Phân cụm dữ liệu dựa trên mô hình 41
2.5.1 Thuật toán EM 41
2.5.2 Thuật toán COBWEB 42
2.6 Phân cụm dữ liệu mờ 43
Trang 22.6.1 Hàm mục tiêu 45
2.6.2 Thuật toán FCM 48
Tổng kết chương 2 49
.50
CHƯƠNG III KHAI PHÁ DỮ LIỆU WEB 51
3.1 Khai phá nội dung Web 51
3.1.1 Khai phá kết quả tìm kiếm 52
3.1.2 Khai phá văn bản Web 52
3.2 Khai phá theo sử dụng Web 55
3.2.1 Ứng dụng của khai phá theo sử dụng Web 56
3.2.2 Các phương pháp được sử dụng trong khai phá dữ liệu Web 57
3.2.3 Những vấn đề trong khai phá theo sử dụng Web 57
3.2.4 Quá trình khai phá theo sử dụng Web 57
3.3 Khai phá cấu trúc Web 59
3.3.1 Tiêu chuẩn đánh giá độ tương tự 60
3.3.2 Khai phá và quản lý cộng đồng Web 61
3.4 Áp dụng thuật toán phân cụm dữ liệu trong tìm kiếm và phân cụm tài liệu Web 65
3.4.1 Hướng tiếp cận bằng phương pháp phân cụm dữ liệu 66
3.4.2 Quá trình tìm kiếm và phân cụm tài liệu 67
Tổng kết chương 3 74
KẾT LUẬN 74
TÀI LIỆU THAM KHẢO 77
Trang 3CÁC CỤM TỪ VIẾT TẮT STT Viết tắt Cụm từ tiếng Anh Cụm từ tiếng Việt
Database
Khám phá tri thức trong cơ sở dữ liệu
Trang 6LỜI NÓI ĐẦU
Khai phá dữ liệu là lĩnh vực được quan tâm nhiều trong thời gian gần đây, xuất phát từ sự bùng nổ về thông tin, sự phát triển nhanh chóng của khoa học kỹ thuật Kho dữ liệu, nguồn tri thức của nhân loại cũng trở nên khổng lồ
và đồ sộ Vấn đề đặt ra cần có những công cụ, phương pháp để khai thác các nguồn tri thức đó ngày càng trở nên cấp thiết cho nghành khoa học công nghệ thông tin trên toàn thế giới
Từ sự phát triển nhanh chóng của công nghệ thông tin và Internet, nguồn dữ Web đã trở thành kho dữ liệu khổng lồ Nhu cầu về tìm kiếm, xử lý thông tin và những hiệu quả của chúng mang lại đã tác động không nhỏ đến năng suất, chất lượng, hiệu quả trong các lĩnh vực kinh doanh, quản lý, khoa học kỹ thuật…
Việc nghiên cứu và áp dụng các phương pháp phân cụm dữ liệu trong khai phá tài nguyên Web là một xu thế tất yếu mang ý nghĩa khoa học và thực tiễn cao
Từ những lý do trên tác giả chọn đề tài “Một số phương pháp phân cụm dữ liệu Web” để làm luận văn tốt nghiệp.
Bố cục của luận văn gồm 3 chương:
Chương 1 trình bày khái quát các khái niệm về khai phá dữ liệu; khám phá tri thức; phân cụm dữ liệu và khai phá dữ liệu trong môi trường Web
Chương 2 trình bày một số phương pháp phân cụm dữ liệu phổ biến thường được sử dụng trong lĩnh vực khai phá dữ liệu và khám phá tri thức
Chương 3 trình bày một số hướng nghiên cứu trong khai phá dữ liệu Web như khai phá nội dung Web, khai phá sử dụng Web, khai phá cấu trúc Web và tiếp cận theo hướng sử dụng các phương pháp phân cụm dữ liệu để giải quyết bài toán khai phá dữ liệu Web Trong chương này tác giả tập trung
Trang 7nghiên cứu phương pháp phân cụm dữ liệu K-means và xây dựng chương trình áp dụng K-means để tìm kiếm và phân cụm tài liệu Web.
Phần kết luận của luận văn tổng kết lại những vấn đề đã được đề cập đến trong luận văn, đánh giá kết quả thu được của luận văn và hướng phát triển của đề tài
Trang 8CHƯƠNG I TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1 Khai phá dữ liệu và phát hiện tri thức
1.1.1 Khai phá dữ liệu
Trong những thập kỷ gần đây, sự phát triển rộng khắp của các cơ sở dữ liệu đã tạo ra sự bùng nổ thông tin trên toàn cầu, vào thời gian này người ta bắt đầu đề cập đến việc khủng hoảng trong quá trình phân tích dữ liệu tác nghiệp để cung cấp thông tin với yêu cầu chất lượng ngày càng cao trong tổ chức chính phủ, tài chính, thương mại, khoa học…
Đúng như John Naisbett cảnh báo “Chúng ta đang chìm ngập trong dữ
liệu mà vẫn đói trí thức” Lượng dữ liệu khổng lồ thực sự là nguồn tài nguyên
có nhiều giá trị bởi thông tin là yếu tố then chốt phục vụ cho mọi hoạt động quản lý, kinh doanh, phát triển sản xuất và dịch vụ, nó giúp người điều hành
và quản lý có những hiểu biết về môi trường và tiến trình hoạt động trong các lĩnh vực kinh doanh từ đó sẽ quyết định tác động đến quá trình hoạt động như thế nào để đạt được các mục tiêu một cách hiệu quả và bền vững
KPDL là một lĩnh vực được nghiên cứu, nhằm tự động khai thác thông tin, tri thức hữu ích, tiềm ẩn từ những cơ sở dữ liệu lớn từ đó làm thúc đẩy khả năng sản xuất, kinh doanh, cạnh tranh trong xã hội hiện nay Các kết quả nghiên cứu khoa học và những ứng dụng thành công trong KDD cho thấy KPDL là một lĩnh vực phát triển bền vững, mang lại lợi ích và có nhiều triển vọng, đồng thời có ưu thế hơn hẵn so với các công cụ tìm kiếm dữ liệu truyền thống Hiện nay, KPDL đã ứng dụng ngày càng rộng rãi trong các lĩnh vực như thương mại, tài chính, y học, viễn thông, tin – sinh, Các phương pháp được áp dụng trong lĩnh vực KPDL phần lớn được thừa kế từ CSDL, học máy, trí tuệ nhân tạo, lý thuyết thông tin, xác suất thống kê và tính toán nâng cao
Trang 9Như vậy KPDL là một quá trình tìm kiếm, phát hiện tri thức mới, tiềm
ẩn, hữu dụng trong CSDL lớn
KDD là mục tiêu chính của KPDL, do vậy khái niệm KPDL và KDD được các nhà khoa học trên hai lĩnh vực xem là tương đương với nhau Nhưng thực tế KPDL là một bước chính trong quá trình KDD
1.1.2 Quá trình khám phá tri thức
Quá trình KDD có thể phân thành các giai đoạn sau:
Hình 1.1 Quá trình khám phá tri thức
Trích chọn dữ liệu: Đây là bước trích chọn những tập dữ liệu cần được
khai phá từ các tập dữ liệu lớn ban đầu theo một số tiêu chí nhất định
Tiền xử lý dữ liệu: Đây là bước làm sạch dữ liệu (xử lý những dữ liệu
không đầy đủ, nhiễu, không nhất quán ), rút gọn dữ liệu (sử dụng hàm nhóm
và tính tổng, các phương pháp nén dữ liệu, sử dụng hàm histogram, lấy mẫu ), rời rạc hoá dữ liệu (rời rạc dựa và histogram, dựa vào entropy, dựa vào phân khoảng ), Sau bước này dữ liệu sẽ được nhất quán, đầy đủ, được rút gọn và được rời rạc hoá
Dữ liệu
thô
Dữ liệu lựa chọn
Dữ liệu tiền xử lý
Dữ liệu biến đổi
các mẫu
Tri thức
Trang 10Biến đổi dữ liệu: Đây là bước chuẩn hoá và làm mịn dữ liệu về dạng
thuận lợi nhất nhằm phục vụ quá trình khai phá ở bước sau
Khai phá dữ liệu: Đây là bước áp dụng các phương pháp phân tích
(như các phương pháp của học máy) nhằm để khai thác dữ liệu, trích chọn những mẫu thông tin, những mối liên hệ đặc biệt trong dữ liệu Đây được xem
là bước quan trọng và tốn nhiều thời gian nhất của toàn quá trình KDD
Đánh giá và biểu diễn tri thức: Những mẫu thông tin và mối liên hệ
trong dữ liệu đã khám phá ở bước trên được biến đổi và biểu diễn ở một dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu, luật… Đồng thời bước này cũng đánh giá những tri thức khám phá được theo những tiêu chí nhất định
1.1.3 Khai phá dữ liệu và các lĩnh vực liên quan
KPDL là một lĩnh vực liên quan tới thống kê, học máy, CSDL, thuật toán, tính toán song song, thu nhận tri thức từ hệ chuyên gia và dữ liệu trừu tượng Đặc trưng của hệ thống khám phá tri thức là nhờ vào các phương pháp, thuật toán từ những lĩnh vực khác nhau để KPDL
Lĩnh vực học máy và nhận dạng mẫu trong KDD nghiên cứu các lý thuyết và thuật toán của hệ thống để trích ra các mẫu và mô hình từ dữ liệu lớn KDD tập trung vào việc mở rộng các lý thuyết và thuật toán cho các vấn
đề tìm ra các mẫu đặc biệt (hữu ích hoặc có thể rút ra tri thức quan trọng) trong CSDL lớn
Ngoài ra, KDD có nhiều điểm chung với thống kê, đặc biệt là phân tích
dữ liệu thăm dò (Exploratory Data Analysis - EDA) Hệ thống KDD thường gắn những thủ tục thống kê cho mô hình dữ liệu và tiến trình nhiễu trong khám phá tri thức nói chung
Trang 11Một lĩnh vực liên quan khác là phân tích kho dữ liệu Phương pháp phổ biến để phân tích kho dữ liệu là OLAP (On – line Analytical processing) Các công cụ OLAP tập trung vào phân tích dữ liệu đa chiều.
1.1.4 Các phương pháp áp dụng trong Khai phá dữ liệu
KDD là một lĩnh vực liên nghành, bao gồm: Tổ chức dữ liệu, học máy, trí tuệ nhân tạo và các khoa học khác
Đứng trên quan điểm của học máy, thì các phương pháp trong KPDL, bao gồm:
Học có giám sát: là quá trình gán nhãn lớp cho các phần tử trong CSDL
dựa trên một tập các ví dụ huấn luyện và các thông tin về nhãn lớp đã biết
Học không có giám sát: Là quá trình phân chia một tập dữ liệu thành
các lớp hay các cụm dữ liệu tương tự nhau mà chưa biết trước các thông tin
về lớp hay tập các ví dụ huấn luyện
Học nửa giám sát: là quá trình phân chia một tập dữ liệu thành các lớp
dựa trên một tập nhỏ các ví dụ huấn luyện và các thông tin về nhãn lớp đã biết trước
Nếu căn cứ vào lớp các bài toán cần giải quyết, thì KPDL bao gồm các phương pháp áp dụng sau:
Phân lớp và dự báo: Xếp một đối tượng vào một trong những lớp đã
biết trước Ví dụ như phân lớp các dữ liệu bệnh nhân trong hồ sơ bệnh án Hướng tiếp cận này thường sử dụng một số phương pháp của học máy như cây quyết định, mạng nơron nhân tạo Phân lớp và dự báo còn được gọi là học có giám sát
Luật kết hợp: Là luật biểu diễn tri thức ở dạng khá đơn giản Ví dụ:
“60% nam giới vào quán bia thì có tới 90% trong số họ sẽ uống bia” Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin – sinh, tài chính và thị trường chứng khoán.,
Trang 12Phân tích chuỗi theo thời gian: Tương tự như khai phá luật kết hợp
nhưng có thêm tính thứ tự và tính thời gian Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính
dự báo cao
Phân cụm: Xếp các đối tượng theo từng cụm dữ liệu tự nhiên Phân
cụm còn được gọi là học không có giám sát
Mô tả tóm tắt khái niệm: Thiên về mô tả tổng hợp và tóm tắt khái niệm,
1.1.5 Những chức năng chính của KPDL
Hai mục tiêu chính của KPDL là mô tả và dự báo Dự báo là dùng một
số biến hoặc trường trong CSDL để dự đoán ra các giá trị chưa biết hoặc sẽ có các biến quan trọng khác Việc mô tả tập trung vào tìm kiếm các mẫu mà con người có thể hiểu được để mô tả dữ liệu Trong lĩnh vực KDD, mô tả được quan tâm nhiều hơn dự báo, nó ngược với các ứng dụng học máy và nhận dạng mẫu mà trong đó việc dự báo thường là mục tiêu chính Trên cơ sở mục tiêu chính của KPDL, các nhiệm vụ chính của KDD gồm:
Mô tả lớp và khái niệm: Dữ liệu có thể được kết hợp trong lớp và khái
niệm Thí dụ, trong kho dữ liệu bán hàng thiết bị tin học, các lớp mặt hàng bao gồm máy tính, máy in… và khái niệm khách hàng bao gồm khách hàng mua sỉ và mua lẻ Việc mô tả lớp và khái niệm là rất hữu ích cho giai đoạn tổng hợp và chính xác hoá Mô tả lớp và khái niệm được bắt nguồn từ đặc trưng hóa dữ liệu và phân biệt dữ liệu Đặc trưng hóa dữ liệu là quá trình tổng
Trang 13hợp những đặc tính hoặc các thành phần chung của một lớp dữ liệu mục tiêu Phân biệt dữ liệu là so sánh lớp dữ liệu mục tiêu với những lớp dữ liệu tương phản khác Lớp dữ liệu mục tiêu và các lớp dữ liệu tương phản là do người dùng tự đặt ra và tương ứng với các đối tượng dữ liệu nhận được nhờ truy vấn.
Phân tích sự kết hợp: Phân tích sự kết hợp là khám phá các luật kết hợp
thể hiện mối quan hệ giữa các thuộc tính giá trị mà ta nhận biết được nhờ tần suất xuất hiện cùng nhau của chúng Các luật kết hợp có dạng X ⇒ Y, tức là
A1^ ^An ⇒ B1^ ^Bm, trong đó Ai (i=1, ,n) và Bj (j=1, ,m) là các cặp thuộc tính giá trị Luật kết hợp dạng X ⇒ Y có thể được hiểu là dữ liệu thỏa mãn các điều kiện của X thì cũng thỏa mãn các điều kiện của Y
Phân lớp và dữ báo: Phân lớp là quá trình tìm kiếm một tập các mô
hình hoặc chức năng mà nó mô tả và phân biệt nó với các lớp hoặc khái niệm khác Các mô hình này nhằm mục đích dự báo về lớp của một số đối tượng Việc xây dựng mô hình dựa trên sự phân tích một tập các dữ liệu được huấn luyện Có nhiều dạng thể hiện mô hình như luật phân lớp (IF-THEN), cây quyết định, công thức toán học, mạng nowrron, Sự phân lớp được sử dụng
để dự đoán nhãn lớp của các đối tượng trong dữ liệu Tuy nhiên trong nhiều ứng dụng, người ta mong muốn dự đoán những giá trị khuyết thiếu nào đó Thông thường đó là trường hợp dự đoán các giá trị của dữ liệu kiểu số Trước khi phân lớp và dự báo, cần thực hiện phân tích các đối tượng để xác định và loại bỏ các thuộc tính không tham gia vào quá trình phân lớp và dự báo
Phân cụm: Không giống như phân lớp và dữ báo, phân cụm là phân
tích các đối tượng dữ liệu khi chưa biết nhãn của lớp Nhìn chung, nhãn của lớp không tồn tại trong suốt quá trình huấn luyện dữ liệu, phân cụm có thể được sử dụng để đưa ra nhãn của lớp Sự phân cụm được thực hiện để nhóm các đối tượng dữ liệu theo nguyên tắc: Các đối tượng trong cùng một nhóm
Trang 14thì giống nhau hơn các đối tượng trong các nhóm khác nhau Mỗi cụm được tạo thành có thể được xem như một lớp các đối tượng mà các luật được lấy ra
từ đó Dạng của cụm được hình thành theo một cấu trúc phân cấp của các lớp
mà mỗi lớp là một nhóm các sự kiện tương tự nhau
Phân tích các đối tượng ngoài cuộc: Một CSDL có thể chứa các đối
tượng không tuân theo mô hình dữ liệu Các đối tượng như vậy gọi là đối tượng ngoài cuộc Hầu hết các phương pháp KPDL đều coi các đối tượng ngoài cuộc là nhiễu và loại bỏ chúng Sự phân tích dữ liệu ngoài cuộc được coi như là sự khai phá các đối tượng ngoài cuộc Một số phương pháp được
sử dụng để phát hiện đối tượng ngoài cuộc: Sử dụng các test mang tính thống
kê trên cơ sở một phân phối dữ liệu hay một mô hình xác suất cho dữ liệu, dùng các độ đo khoảng cách mà theo đó các đối tượng có một khoảng cách đáng kể đến cụm bất kỳ khác được coi là đối tượng ngoài cuộc, dùng các phương pháp dựa trên độ lệch để kiểm tra sự khác nhau trong những đặc trưng chính của các nhóm đối tượng
Phân tích sự tiến hóa: Phân tích sự tiến hóa thực hiện việc mô tả và mô
hình hóa các quy luật hay khuynh hướng của những đối tượng mà hành vi của chúng thay đổi theo thời gian, phân tích sự tiến hóa có thể bao gồm cả đặc trưng hóa, phân biệt, tìm luật kết hợp, phân lớp hay PCDL liên quan đến thời gian, so sánh mẫu theo chu kỳ và phân tích dữ liệu dựa trên độ tương tự
1.1.6 Các ứng dụng của Khai phá dữ liệu
KPDL được vận dụng trong nhiều lĩnh vực khác nhau nhằm khai thác nguồn dữ liệu phong phú được lưu trữ trong các CSDL khác nhau Tùy theo bản chất của từng lĩnh vực, việc vận dụng KPDL có những cách tiếp cận khác nhau KPDL cũng được vận dụng hiệu quả để giải quyết các bài toán phức tạp trong các ngành đòi hỏi kỹ thuật cao như tìm kiếm mỏ dầu từ ảnh viễn thám, xác định các vùng gãy trong ảnh địa chất để dự đoán thiên tai, cảnh
Trang 15báo hỏng hóc trong các hệ thống sản xuất,… Các bài toán này đã được giải quyết từ khá lâu bằng các kỹ thuật nhận dạng hay xác suất thống kê nhưng được giải quyết với yêu cầu cao hơn bởi các phương pháp của KPDL Phân nhóm và dự đoán là những công cụ rất cần thiết cho việc qui hoạch, phát triển các hệ thống quản lý và sản xuất trong thực tế Các phương pháp KPDL đã được áp dụng thành công trong việc dự đoán tái sử dụng điện năng cho các công ty cung cấp điện, lưu lượng viễn thông cho các công ty điện thoại, mức
độ tiêu thụ sản phẩm cho các nhà sản xuất, giá trị của sản phẩm trên thị trường cho các công ty tài chính hay phân nhóm các khách hàng tiềm năng,…
Ngoài ra, KPDL còn được áp dụng cho các vấn đề xã hội như phát hiện tội phạm hay tăng cường an ninh xã hội Vận dụng thành công KPDL đã mang lại những hiệu quả thiết thực cho các hoạt động diễn ra hàng ngày trong đời sống
1.2 Phương pháp phân cụm trong Khai phá dữ liệu
1.2.1 Khái quát về phân cụm dữ liệu
Phân cụm (Clustering) là quá trình nhóm một tập các đối tượng thành các nhóm hay các lớp đối tượng tương tự nhau Một cụm (cluster) là một tập các đối tượng giống nhau hay tương tự nhau, chúng khác hoặc ít tương tự
so với các đối tượng thuộc cụm khác Không giống như quá trình phân loại,
ta thường biết trước tính chất hay đặc điểm của các đối tượng trong cùng một cụm và dựa vào đó để ấn định một đối tượng vào cụm của nó, trong quá trình phân cụm ta không hề biết trước tính chất của các cụm và thường dựa vào mối quan hệ của các đối tượng để tìm ra sự giống nhau giữa các đối tượng dựa vào một độ đo nào đó đặc trưng cho mỗi cụm
Việc phân cụm không thực hiện độc lập mà thường sử dụng kết hợp với các phương pháp khác Một cách phân cụm được đưa ra cũng phải có một phương pháp áp dụng trên các lớp đó để đưa ra được ý nghĩa của cụm đó
Trang 16Ta có thể khái quát hóa khái niệm PCDL như sau [6][10]:
"PCDL là một phương pháp trong DATA MINING, nhằm tìm kiếm, phát hiện các cụm, các mẫu dữ liệu tự nhiên tiềm ẩn, quan tâm trong tập dữ liệu lớn, từ đó cung cấp thông tin, tri thức hữu ích cho người sử dụng"
Hiện nay có rất nhiều vấn đề nghiên cứu về phân cụm trong các lĩnh vực khác nhau như: KPDL, thống kê, học máy, công nghệ dữ liệu không gian, sinh học Do kích thước của các cơ sở dữ liệu tăng lên rất nhanh nên phân cụm là vấn đề đã và đang thu hút nhiều sự quan tâm của các nhà khoa học trên thế giới
Trong lĩnh vực thống kê, phân cụm đã được nghiên cứu và phát triển trong nhiều năm, các vấn đề tập trung chủ yếu vào phân tích các lớp dựa vào khoảng cách Các công cụ phân tích lớp dựa trên một số các phương pháp như k-means, k-medoids đã được ứng dụng trong nhiều hệ thống phần mềm phân tích thống kê như: S-Plus, SPSS, SAS
Trong học máy, PCDL được xem là vấn đề học không có giám sát, vì
nó phải đi giải quyết vấn đề tìm một cấu trúc trong tập hợp các dữ liệu chưa biết trước các thông tin về cụm hay các thông tin về tập ví dụ huấn luyện Trong nhiều trường hợp, khi phân lớp (Classification) được xem vấn đề học có giám sát thì PCDL là một bước trong phân lớp dữ liệu, trong đó PCDL sẽ khởi tạo các lớp cho phân lớp bằng cách xác định các nhãn cho các nhóm dữ liệu
Trong lĩnh vực khai thác dữ liệu, các vấn đề nghiên cứu trong phân cụm chủ yếu tập trung vào tìm kiếm các phương pháp phân cụm hiệu quả và tin cậy trong cơ sở dữ liệu lớn
Trong lĩnh vực KPDL Web, phân cụm có thể khám phá ra các nhóm tài liệu quan trọng, có nhiều ý nghĩa trong môi trường Web Các lớp tài liệu này trợ giúp cho việc khám phá tri thức từ các CSDL
Một vấn đề thường gặp trong PCDL là hầu hết các dữ liệu cần cho phân
Trang 17cụm đều có chứa dữ liệu “nhiễu” do quá trình thu thập thiếu chính xác hoặc thiếu đầy đủ, vì vậy cần phải xây dựng chiến lược cho bước tiền xử lý dữ liệu nhằm loại bỏ “nhiễu” trước khi bước vào giai đoạn phân tích PCDL “Nhiễu” ở đây có thể là đối tượng dữ liệu không chính xác hoặc các đối tượng dữ liệu khuyết thiếu thông tin về một số thuộc tính Một trong các phương pháp xử lý “nhiễu” phổ biến là việc thay thế giá trị của các thuộc tính của đối tượng “nhiễu” bằng giá trị thuộc tính tương ứng của đối tượng dữ liệu gần nhất.
Ngoài ra, dò tìm phần tử ngoại lai là một trong những hướng nghiên cứu quan trọng trong PCDL, chức năng của nó là xác định một nhóm nhỏ các đối
tượng dữ liệu “khác thường” so với các dữ liệu khác trong CSDL (tức là các đối
tượng dữ liệu không tuân theo các hành vi hoặc mô hình dữ liệu) nhằm tránh sự ảnh hưởng của chúng tới quá trình và kết quả của PCDL Khám phá các phần tử ngoại lai đã được phát triển và ứng dụng trong viễn thông, dò tìm gian lận thương mại…
Tóm lại, PCDL là một vấn đề khó vì người ta phải đi giải quyết các vấn
đề cơ bản như sau:
- Biểu diễn dữ liệu
- Xây dựng hàm tính độ tương tự
- Xây dựng các tiêu chuẩn phân cụm
- Xây dựng mô hình cho cấu trúc cụm dữ liệu
- Xây dựng thuật toán phân cụm và xác lập các điều kiện khởi tạo
- Xây dựng các thủ tục biểu diễn và đánh giá kết quả phân cụm
Theo các nghiên cứu thì đến nay chưa có một phương pháp phân cụm tổng quát nào có thể giải quyết trọn vẹn cho tất cả các dạng cấu trúc cụm dữ liệu Hơn nữa, các phương pháp phân cụm cần có cách thức biểu diễn cấu trúc các cụm dữ liệu khác nhau, với mỗi cách thức biểu diễn khác nhau sẽ có một thuật toán phân cụm phù hợp PCDL đang là một vấn đề mở và khó vì người ta phải đi
Trang 18giải quyết nhiều vấn đề cơ bản như đã đề cập ở trên một cách trọn vẹn và phù hợp với nhiều dạng dữ liệu khác nhau Đặc biệt đối với dự liệu hỗn hợp, đang ngày càng phát triển không ngừng trong hệ quản trị dữ liệu, đây cũng thách thức lớn của lĩnh vực KPDL trong những thập kỷ tiếp theo và đặc biệt là trong lĩnh vực KPDL Web.
1.2.2 Ứng dụng của phân cụm dữ liệu
PCDL là một trong những công cụ chính của KPDL, các phương pháp PCDL đã được áp dụng cho một số ứng dụng điển hình trong các lĩnh vực như sau [6][10]:
Thương mại: PCDL có thể giúp các thương nhân khám phá ra các
nhóm khách hàng quan trọng có đặc trưng tương đồng nhau và đặc tả họ từ các mẫu mua bán trong CSDL khách hàng
Sinh học: PCDL được sử dụng để xác định các loại sinh vật, phân loại các
gen với chức năng tương đồng và thu được cấu trúc trong các mẫu
Phân tích dữ liệu không gian: Do sự đồ sộ của dữ liệu không gian như dữ
liệu thu được từ các hình ảnh chụp từ vệ tinh, các thiết bị y học hoặc hệ thống thông tin địa lý (GIS),… làm cho người dùng rất khó để kiểm ta dữ liệu không gian một cách chi tiết PCDL có thể trợ giúp người dùng tự động phân tích và xử
lý các dữ liệu không gian như nhận dạng và chiết xuất các đặc tính hoặc các mẫu
dữ liệu quan tâm có thể tồn tại trong CSDL không gian
Lập quy hoạch đô thị: Nhận dạng các nhóm theo kiểu và vị trí địa lý,…
Nhằm cung cấp thông tin cho quy hoạch đô thị
Nghiên cứu trái đất: Phân cụm để theo dõi các tâm động đất nhằm cung
cấp thông tin cho nhận dạng các vùng nghuy hiểm
Địa lý: Phân lớp các động vật, thực vật và đưa ra đặc trưng của chúng Khai phá Web: PCDL có thể khám phá các nhóm tài liệu quan trọng, có
nhiều ý nghĩa trong môi trường Web Các lớp tài liệu này trợ giúp cho việc khám
Trang 19phá tri thức từ dữ liệu Web, khám phá ra các mẫu truy cập của khách hàng đặc biệt hay khám phá ra cộng đồng Web,…
1.2.3 Các yêu cầu đối với phương pháp phân cụm dữ liệu
Lựa chọn một thuật toán phân cụm dữ liệu là vấn đề then chốt để giải quyết bài toán phân cụm dữ liệu, lựa chọn này phụ thuộc vào đặc tính dữ liệu cần phân cụm, mục đích của các bài toán thực tế là xác định độ ưu tiên giữa chất lượng phân cụm và tốc độ thực hiện của thuật toán
Hầu hết các nghiên cứu để xây dựng và phát triển thuật toán phân cụm dữ liệu đều nhằm đáp ứng các yêu cầu sau [6],[10]:
Có khả năng mở rộng: Một số thuật toán có thể áp dụng cho tập dữ liệu
nhỏ (khoảng 200 bản ghi) nhưng không hiệu quả khi áp dụng cho một tập dữ liệu lớn (khoảng 1 triệu bản ghi)
Thích nghi với các kiểu dữ liệu khác nhau: Thuật toán có thể áp dụng phân cụm đối với nhiều kiểu dữ liệu khác nhau như dữ liệu kiểu số, kiểu nhị phân, kiểu hạng mục, kiểu định danh,… và thích nghi với kiểu dữ liệu hỗn hợp
Khám phá ra các cụm với hình thù bất kỳ: Hầu hết các CSDL có chứa nhiều cụm dữ liệu với hình thù khác nhau như: hình lõm, hình cầu, hình que,…
Vì vậy, để các cụm dữ liệu được khám phá ra có tính tự nhiên thì các thuật toán phân cụm dữ liệu phải có khả năng khám phá ra những cụm dữ liệu có các hình thù khác nhau
Tối thiểu lượng tri thức cần cho tham số đầu vào: Do các giá trị đầu vào của các thuật toán có ảnh hưởng rất lớn đến độ phức tạp, tốc độ của thuật toán
Do đó cần xác định các giá trị đầu vào của các thuật toán một cách tối ưu đặc biệt là đối với những CSDL lớn
Ít nhạy cảm đối với thứ tự của dữ liệu vào: Cùng một tập dữ liệu khi đưa vào xử lý bằng các thuật toán PCDL, thứ tự vào của các đối tượng dữ liệu ở các lần thực hiện khác nhau không ảnh hưởng đến kết quả phân cụm dữ liệu
Trang 20Khả năng thích nghi với dữ liệu nhiễu cao: Hầu hết các dữ liệu phân cụm trong KPDL đều có chứa các dữ liệu lỗi, dữ liệu không đầy đủ, dữ liệu rác được gọi chung là dữ liệu nhiễu Bởi vậy các thuật toán phân cụm dữ liệu không những có hiệu quả với các dữ liệu nhiễu mà còn tránh dẫn đến chất lượng phân cụm thấp do nhạy cảm với dữ liệu nhiễu.
Thích nghi với dữ liệu đa chiều: Thuật toán có khả năng áp dụng có hiệu quả đối với các dữ liệu đa chiều
Dễ hiểu, dễ cài đặt và khả thi: Đây là yêu cầu đồng thời là tiêu chí để đánh giá hiệu quả của các thuật toán PCDL
Khai phá và phân tích những thông tin hữu ích trên Internet bằng cách
sử dụng phương pháp KPDL đã trở thành một hướng nghiên cứu trong lĩnh vực khám phá tri thức Khai phá Web bao gồm khai phá cấu trúc Web, khai phá nội dung Web và khai phá các mẫu truy cập Web
Sự phức tạp trong nội dung của các trang Web khác với các tài liệu văn bản truyền thống [10] Chúng không đồng nhất về cấu trúc, hơn nữa nguồn thông tin Web thay đổi một cách nhanh chóng, không những về nội dung mà
cả về cấu trúc trang Chẳng hạn như tin tức, thị trường chứng khoán, thông tin quảng cáo, trung tâm dịch vụ mạng,… Tất cả thông tin được thay đổi trên Web theo từng giai đoạn Các liên kết trang và đường dẫn truy cập cũng thay
Trang 21đổi Khả năng gia tăng liên tục về số lượng người dùng, sự quan tâm đến Web cũng khác nhau, động cơ người dùng rất đa dạng và phong phú Vậy làm thế nào để tìm kiếm được các thông tin mà người dùng cần, làm thế nào để có được những trang Web có chất lượng tốt ?
Những vấn đề này sẽ được thực hiện hiệu quả hơn bằng cách nghiên cứu các phương pháp KPDL áp dụng trong môi trường Web để giải quyết các vấn đề như quản lý tốt các Web site, khai phá những nội dung mà người dùng quan tâm, phân tích các mẫu sử dụng Web
Dựa vào những vấn đề cơ bản trên, ta có thể có những phương pháp hiệu quả cao để cung cấp thông tin hữu ích đối với người dùng Web và giúp người dùng sử dụng nguồn tài nguyên Web một cách hiệu quả
1.3.2 Khái niệm khai phá Web
Có nhiều khái niệm khác nhau về khai phá Web nhưng có thể tổng quát hoá như sau [4][14]:
Khai phá Web là việc sử dụng các phương pháp KPDL để tự động hoá quá trình khám phá và trích rút những thông tin hữu ích từ các tài liệu, các dịch vụ và cấu trúc Web Hay nói cách khác khai phá Web là việc trích chọn
ra các thành phần được quan tâm hay được đánh giá là có ích cùng các thông tin tiềm năng từ các tài nguyên hoặc các hoặt động liên quan tới World Wide Web, nó có thể giúp con người rút ra những tri thức mới, cải tiến việc thiết kế các Web site và phát triển thương mại điện tử tốt hơn Quá trình khai phá Web có thể chia thành các giai đoạn như sau:
1 Tìm kiếm nguồn tài nguyên: Thực hiện việc tìm kiếm và lấy các tài
liệu Web phục vụ cho việc KPDL
2 Lựa chọn và tiền xử lý dữ liệu: Lựa chọn và tiền xử lý tự động các
loại thông tin từ nguồn tài nguyên Web đã lấy về
Trang 223 Tổng hợp: Tự động khám phá các mẫu chung từ các Web site riêng
lẻ cũng như nhiều Web site liên kết với nhau
4 Phân tích: Đánh giá, giải thích, biểu diễn các mẫu khai phá được.
1.3.3 Đặc trưng của khai phá Web
Từ những năm 2000 trở lại đây tốc độ phát triển nhanh chóng của mạng Internet đã sinh ra một khối lượng khổng lồ các dữ liệu Web (dữ liệu dạng siêu văn bản) Một số đặc trưng sau đây cho thấy những thách thức và thuận lợi của quá trình khai phá Web
* Web quá lớn để tổ chức thành kho dữ liệu:
Các CSDL truyền thống có kích thước không lớn lắm, thường được lưu trữ tập trung, trong khi đó kích thước của Web là rất lớn, tới hàng terabytes và thay đổi liên tục, không những thế dữ liệu Web còn được phân tán ở rất nhiều máy tính khắp nơi trên thế giới Theo tài liệu thống kê năm 2009 cho thấy có gần 236 triệu Website trên Internet [4]
* Độ phức tạp của các trang Web là rất lớn
Dữ liệu trong CSDL truyền thống thường đồng nhất về ngôn ngữ còn dữ liệu Web thì hoàn toàn không đồng nhất Dữ liệu Web bao gồm rất nhiều loại ngôn ngữ khác nhau, nhiều loại định dạng khác nhau, nhiều loại từ vựng khác
nhau, nó như “một thư viện kỹ thuật số rộng lớn” Điều này là một thử thách
cho việc tìm kiếm thông tin cần thiết trong một thư viện rộng lớn như thế
* Web là nguồn tài nguyên thông tin có độ thay đổi cao:
Web không chỉ thay đổi về độ lớn mà thông tin trong chính các trang Web cũng được cập nhật liên tục theo kết quả nghiên cứu hơn 500.000 trang Web trong hơn bốn tháng thì có tới 23% các trang thay đổi hàng ngày Thêm vào đó sự kết nối thông tin và sự truy cập bản ghi cũng được cập nhật thường xuyên
* Đối tượng phục vụ của Web là rộng lớn và đa dạng:
Trang 23Đối tượng phục vụ của Web rất phong phú và đa dạng, mỗi đối tượng người dùng có kiến thức, mối quan tâm, sở thích khác nhau Nhưng phần lớn đối tượng sử dụng Web không có kiến thức tốt về cấu trúc mạng thông tin và nhàm chán khi tìm kiếm mà chỉ nhận được những mảng thông tin không mấy hữu ích.
* Chỉ một phần nhỏ thông tin trên Web là thực sự hữu ích:
Đối với người sử dụng số lượng trang Web vô ích là rất nhiều, vì vậy rất nhiều trang Web không đáng quan tâm lại có trong kết quả nhận được khi tìm kiếm Cần có giải pháp khai phá Web để thu được những trang Web chất lượng cao theo tiêu chuẩn quan tâm của người dùng
1.3.4 Các đối tượng khai phá Web
Các đối tượng khai phá Web bao gồm [10]: Web logs, Web pages, Web hyperlink structures, dữ liệu thị trường trực tuyến và các thông tin khác
Web logs: Khi người dùng duyệt Web, dữ liệu sẽ phân ra 3 loại dữ liệu đăng nhập: Server logs, error logss và cookie logs Thông qua việc phân tích các tài liệu đăng nhập này có thể khám phá ra các thông tin truy cập
Web pages: Hầu hết các phương pháp KPDL Web được sử dụng trong Web pages là theo chuẩn HTML
Web hyperlink structures: Các trang Web được liên kết với nhau bằng các siêu liên kết, điều này rất quan trọng để khai phá thông tin Do các siêu liên kết Web là nguồn tài nguyên xác thực
Dữ liệu thị trường trực tuyến: Như lưu trữ thông tin thương mại điện tử trong các site thương mại điện tử
Các thông tin khác: Chủ yếu bao gồm các đăng ký người dùng, nó có thể giúp cho việc khai phá tốt hơn
Tổng kết chương 1
Trong chương này trình bày những kiến thức cơ bản về khai phá dữ liệu,
Trang 24khám phá tri thức, phân cụm trong khai phá dữ liệu và các khái niệm liên quan đến phân cụm dữ liệu, ứng dụng của phân cụm dữ liệu và các yêu cầu đối với phương pháp phân cụm dữ liệu
Ngoài ra trong chương này còn đề cập đến một lĩnh vực cụ thể của KPDL
đó là khai phá Web Trong phạm vi chương 1 chỉ đề cập đến khái niệm, các đặc trưng và một số kiểu dữ liệu Web
Trang 25CHƯƠNG II MỘT SỐ PHƯƠNG PHÁP PHÂN CỤM DỮ LIỆU
Các phương pháp áp dụng để giải quyết vấn đề PCDL đều hướng tới hai mục tiêu chung: Chất lượng của các cụm khám phá được và tốc độ thực hiện của thuật toán Hiện nay, các kỹ phân cụm dữ liệu có thể phân loại theo các cách tiếp cận chính như sau [5]:
Hình 2.1 Sơ đồ phân loại của một số thuật toán phân cụm dữ liệu.
Các thuật toán phân cụm
dữ liệu
Các thuật toán phân cụm phân cấp
Thuật toán BIRCH
Thuật toán CURE
Các thuật toán phân cụm dựa trên mật độ
Thuật toán DBSCAN
Thuật toán OPTICS
Các thuật toán phân cụm dựa trên lưới
Thuật toán STING
Thuật toán CLIQUE
Các thuật toán phân cụm dựa trên
mô hình
Thuật toán EM
Thuật toán COBWEB
Các thuật toán phân cụm dữ liệu mờ
Thuật toán FCM
Trang 262.1 Phân cụm phân hoạch:
Ý tưởng của phương pháp phân cụm phân hoạch nhằm phân chia một tập
dữ liệu có n phần tử cho trước thành k nhóm dữ liệu sao cho mỗi phần tử
dữ liệu chỉ thuộc về một nhóm dữ liệu và mỗi nhóm dữ liệu có ít nhất một phần tử dữ liệu Các thuật toán phân hoạch dữ liệu có độ phức tạp rất lớn khi xác định nghiệm tối ưu toàn cục cho vấn đề phân cụm dữ liệu, do nó phải tìm kiếm tất cả các cách phân hoạch có thể được Chính vì vậy, người ta thường đi tìm giải pháp tối ưu cục bộ cho vấn đề này bằng cách sử dụng một hàm tiêu chuẩn để đánh giá chất lượng của các cụm cũng như để hướng dẫn cho quá trình tìm kiếm phân hoạch dữ liệu Với chiến lược này, thông thường người ta bắt đầu khởi tạo một phân hoạch ban đầu cho tập dữ liệu theo phép ngẫu nhiên hoặc theo heuristic, và liên tục tinh chỉnh nó cho đến khi thu được một phân hoạch mong muốn, thoả mãn ràng buộc cho trước Các thuật toán phân cụm phân hoạch cố gắng cải tiến tiêu chuẩn phân cụm, bằng cách tính các giá trị đo độ tương tự giữa các đối tượng dữ liệu và sắp xếp các giá trị này, sau đó thuật toán lựa chọn một giá trị trong dãy sắp xếp sao cho hàm tiêu chuẩn đạt giá trị tối thiểu Như vậy, ý tưởng chính của thuật toán phân cụm phân hoạch tối ưu cục bộ là sử dụng chiến lược ăn tham (Greedy) để tìm kiếm nghiệm
Lớp các bài toán phân cụm phân hoạch bao gồm các thuật toán được
áp dụng đầu tiên trong lĩnh vực KPDL cũng như các thuật toán được áp dụng nhiều trong thực tế hiện nay như K-means, K-medoids, CLARA, CLARANS… Sau đây là một số thuật toán phân cụm phân hoạch được nghiên cứu và đề xuất trong khuôn khổ luận văn:
2.1.1 Thuật toán K-means
Thuật toán K-means do MacQueen đề xuất trong lĩnh vực thống kê năm 1967
Trang 27Tư tưởng thuật toán
K-means là một trong số những phương pháp học không có giám sát cơ bản nhất thường được áp dụng trong việc giải các bài toán về phân cụm dữ liệu Mục đích của thuật toán k-means là sinh ra k cụm dữ liệu {C1, C2,
…,Ck} từ một tập dữ liệu chứa n đối tượng trong không gian d chiều Xi
=(xi1, xi2,… xid) (i= 1 ,n), sao cho hàm tiêu chuẩn
và tham số đầu ra của thuật toán là các trọng tâm của các cụm dữ liệu Độ đo khoảng cách D giữa các đối tượng dữ liệu thường được sử dụng là khoảng cách Euclide, đây là mô hình khoảng cách dễ lấy đạo hàm và xác định các cực trị tối thiểu Hàm tiêu chuẩn E và độ đo khoảng cách D có thể được xác định cụ thể hơn tuỳ vào từng ứng dụng cụ thể
Các bước cơ bản của thuật toán K-Means:
Input: Một CSDL gồm n đối tượng và số cụm k
Output: Một tập gồm k cụm sao cho cực tiểu về tổng sai-số vuông
Các bước thuật toán:
Bước 1: Chọn ngẫu nhiên k mẫu vào k cụm Coi tâm của cụm
chính là mẫu có trong cụm
Bước 2: Tìm tâm mới của cụm
Bước 3: Gán các mẫu vào từng cụm sao cho khoảng cách từ mẫu
đó đến tâm của cụm là nhỏ nhất
Bước 4: Nếu các cụm không có sự thay đổi nào sau khi thực hiện
Trang 28bước 3 thì chuyển sang bước 5, ngược lại sang bước 2
Bước 5: Dừng thuật toán.
Thuật toán K-means được chứng minh là hội tụ và có độ phức tạp
tính toán là: O((n.k.d).τ.T flop ) Trong đó: n là số đối tượng dữ liệu, k là số
cụm dữ liệu, d là số chiều, τ là số vòng lặp, T flop là thời gian để thực hiện
một phép tính cơ sở như phép nhân, chia,… Như vậy do K-means phân tích phân cụm đơn giản nên có thể áp dụng với các tập dữ liệu lớn Tuy nhiên nhược điểm của K-means là chỉ áp dụng với dữ liệu có thuộc tính
số và khám phá ra các cụm có dạng hình cầu, K-means còn rất nhảy cảm với các phần tử ngoại lai và nhiễu
Hình sau đây mô phỏng các bước của thuật toán K-means
Hình 2.2 Mô phỏng thuật toán K-means
Hơn nữa chất lượng PCDL của thuật toán K-means phụ thuộc nhiều vào các tham số đầu vào như số cụm k và k trọng tâm khởi tạo ban đầu Trong trường hợp các trọng tâm khởi tạo ban đầu mà quá lệch so với các trọng tâm cụm tự nhiên thì kết quả phân cụm k-means là thấp, nghĩa là các cụm dữ liệu được khám phá lệch nhiều so với các cụm trong thực tế
Cập nhật lại trọng tâm
Trang 29Trên thực tế người ta chưa có giải pháp tối ưu để chọn các tham số ban đầu, giải pháp thường được sử dụng là thử nghiệm với các giá trị đầu vào
k khác nhau rồi lựa chọn giải pháp tốt nhất
Đến nay, đã có rất nhiều thuật toán kế thừa tư tưởng của thuật toán K-means áp dụng trong KPDL để giải quyết tập dữ liệu có kích thước lớn đang được áp dụng rất hiệu quả như thuật toán K-medoids, ClARA…
2.1.2 Thuật toán K-medoids
Thuật toán K-medoids là thuật toán mở rộng của K-means, nhằm có khả năng xử lý hiệu quả đối với dữ liệu nhiễu hoặc các phần tử ngoại lai Thay vì sử dụng các trọng tâm như K-means, K-medoids 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 của 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 ở xa trung tâm
Tư tưởng thuật toán
Để tìm ra k cụm với n đối tượng thì k-medoids chọn ngẫu nhiên k đối tượng vào k cụm, coi mỗi đối tượng này là tâm của cụm Phân bổ các đối tượng còn lại vào cụm mà sự khác nhau của nó với đối tượng tâm của cụm là gần nhất Sau đó lặp lại quá trình: Thay đổi đối tượng tâm của mỗi cụm sao cho chất lượng của cụm được cải thiện Chất lượng của cụm được đánh bởi một hàm đo sự khác nhau giữa một đối tượng và đối tượng tâm của cụm chứa
nó Quá trình lặp cho đến khi không còn sự thay đổi nào về lực lượng cũng như hình dạng của các cụm
Để chọn một đối tượng không là đối tượng tâm Orandom thay thế tốt cho một đối tượng tâm Oj thì mỗi đối tượng p xét theo 4 trường hợp sau đây:
Trường hợp 1: p đang thuộc vào cụm có tâm là Oj (gọi là cụm Oj) Nếu Oj được thay thế bởi Orandom và p gần nhất với Oi (i#j) thì p được gán lại vào
Oi
Trang 30Trường hợp 2: p đang thuộc vào cụm Oj Nếu Oj được thay thế bởi
Orandom và p gần nhất với Orandom thì p được gán lại vào Orandom
Trường hợp 3: p đang thuộc vào Oi (i#j) Nếu Oj được thay thế bởi
Orandom và p vẫn gần nhất với Oi thì không thay đổi gì cả Tức là p vẫn thuộc
Oi
Trường hợp 4: p đang thuộc vào Oi (i#j) Nếu Oj được thay thế bởi
Orandom và p gần nhất với Orandom thì p được gán lại vào Orandom
Hình 2.3 Các trường hợp đối với điểm P
Mô tả thuật toán
Input: Số nguyên k và CSDL gồm n đối tượng cần phân cụm
Output: Một tập gồm k cụm mà tổng giá trị của tất cả các đối tượng đến
đối tượng tâm của nhóm chứa nó là nhỏ nhất
Bước 1: Chọn k đối tượng bất kỳ vào k cụm Coi mỗi đối tượng này là tâm của nhóm
Bước 5: Tính lại giá trị S đối với việc đổi Oj với Orandom
Bước 6: Nếu S<0 thì đổi Oj với Orandom để tạo ra một tập
với đối tượng tâm mới
Trang 31Bước 7: Đến khi không có sự thay đổi nào nữa thì dừng
2.2 Phân cụm phân cấp
Phân cụm phân cấp là sắp xếp một tập dữ liệu đã cho thành một cấu trúc dạng hình cây, cây phân cấp này được xây dựng theo phương pháp đệ quy Cây phân cấp có thể được xây dựng theo hai phương pháp tổng quát: Phương pháp
“trên xuống” (Top down) và phương pháp “dưới lên” (Bottom up)
Phương pháp Bottom up: Phương pháp này bắt đầu với mỗi đối tượng
được khởi tạo tương ứng với các cụm riêng biệt, sau đó tiến hành nhóm các đối tượng theo một độ đo tương tự (như khoảng cách giữa hai trung tâm của hai nhóm), quá trình này được thực hiện cho đến khi tất cả các nhóm được hoà nhập vào một nhóm (mức cao nhất của cây phân cấp) hoặc cho đến khi các điều kiện kết thúc thoả mãn Như vậy cách tiếp cận này sử dụng chiến lược ăn tham trong quá trình phân cụm
Phương pháp Top Down: Bắt đầu với trạng thái là tất cả các đối tượng
được xếp trong cùng một cụm Mỗi vòng lặp thành công, một cụm được tách thành các cụm nhỏ hơn theo giá trị của một phép đo độ tương tự nào đó cho đến khi mỗi đối tượng là một cụm hoặc điều kiện dừng thoả mãn Cách tiếp cận này sử dụng chiến lược chia để trị trong quá trình phân cụm
Sau đây là minh hoạ của chiến lược phân cụm phân cấp Bottom up và Top
Trang 32Hình 2.4 Sơ đồ minh họa chiến lược phân cụm phân cấp
Trong thực tế áp dụng có nhiều trường hợp người ta kết hợp cả hai phương pháp phân cụm phân hoạch và phân cụm phân cấp, nghĩa là kết quả thu được của phương pháp phân cấp có thể cải tiến thông qua bước phân cụm phân hoạch Phân cụm phân hoạch và phân cụm phân cấp là hai phương pháp PCDL cổ điển, hiện nay đã có nhiều thuật toán cải tiến dựa trên hai phương pháp này đã được áp dụng phổ biến trong KPDL Một số thuật toán phân cụm phân cấp điển hình như CURE, BIRCH, CHEMELEON,…
2.2.1 Thuật toán BIRCH
Thuật toán phân cụm khác cho tập dữ liệu lớn, được gọi là BIRCH Ý 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 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 2.5 biểu thị một ví dụ về cây CF Tất cả các nút trong cây lưu tổng các đặc trưng cụm CF của nút con, các nút lá lưu trữ các đặc trưng của các cụm
dữ liệu
Trang 33Hình 2.5 Sơ đồ mô phỏng cây CF
Cây CF là cây cân bằng, nhằm để lưu trữ các đặc trưng của cụm Cây
CF chứa các nút trong và nút là, nút trong là nút chứa các nút con và nút lá thì không có con Nút trong lưu trữ các tổng đặc trưng cụm CF của các nút con của
nó Một cây CF được đặc trưng bởi hai tham số:
- Yếu tố nhánh (Braching Factor - B): Nhằm xác định tối đa các nút con của một nút lá trong của cây
- Ngưỡng (Threshold - T): khoảng cách tối đa giữa bất kỳ một cặp đối tượng trong nút lá của cây, khoảng cách này còn gọi là đường kính của các cụm con được lưu tại các nút lá
Hai tham số này có ảnh hưởng đến kích thước của cây CF Thuật toán
Trang 34BIRCH thực hiện gồm hai giai đoạn:
Giai đoạn 1: BIRCH quét tất cả các đối tượng trong CSDL để xây dựng cây CF khởi tạo Trong giai đoạn này, các đối tượng lần lượt được chèn vào nút lá gần nhất của cây CF (nút lá của cây đóng vai trò là cụm con), sau khi chèn xong thì tất cả các nút trong cây CF được cập nhật thông tin Nếu đường kính của cụm con sau khi chèn lớn hơn ngưỡng T, thì nút lá được tách Quá trình lặp lại cho đến khi tất cả các đối tượng trong cây chỉ được đọc một lần, để lưu toàn bộ cây CF trong bộ nhớ thì cần phải điều chỉnh kích thước của cây CF thông qua điều chỉnh ngưỡng T
Giai đoạn 2 : BIRCH lựa chọn một thuật toán phân cụm (chẳng hạn như thuật toán phân cụm phân hoạch) để thực hiện phân cụm cho các nút lá của cây CF
Thuật toán BIRCH thực hiện qua các bước cơ bản sau:
1 Các đối tượng dữ liệu lần lượt được chèn vào cây C, sau khi chèn hết các đối tượng thì thu được cây CF khởi tạo Một đối tượng được chèn vào nút
là gần nhất tạo thành cụm con Nếu đường kính của cụm con này lớn hơn T thì nút lá được tách ra Khi một đối tượng thích hợp được chèn vào nút lá, tất cả các nút trỏ tới gốc của cây được cập nhật với thông tin cần thiết
2 Nếu cây CF hiện thời không có đủ bộ nhớ thì tiến hành xây dựng một cây CF nhỏ hơn: Kích thước của cây CF được điều khiển bởi tham số F và
vì vậy việc chọn một giá trị lớn hơn cho nó sẽ hòa nhập một số cụm con thành một cụm, điều này làm cho cây CF nhỏ hơn Bước này không cần yêu cầu đọc dữ liệu lại từ đầu nhưng vẫn đảm bảo hiệu chỉnh cây dữ liệu nhỏ hơn
3 Thực hiện phân cụm: Các nút lá cây CF lưu trữ các đại lượng thống
kê của các cụm con Trong bước này, BIRCH sử dụng các đại lượng thống kê này để áp dụng một số phương pháp phân cụm, ví dụ K-means và tạo ra một khởi tạo cho phân cụm
Trang 354 Phân phối lại các đối tượng dữ liệu bằng cách dùng các đối tượng trọng tâm cho các cụm được khám phá từ bước 3: Đây là một bước tùy chọn
để duyệt lại tập dữ liệu và gán lại nhãn cho các đối tượng dữ liệu tới các trọng tâm gần nhất Bước này nhằm để gán nhãn cho các dữ liệu khởi tạo và loại bỏ các đối tượng ngoại lai
Với cấu trúc cây CF được sử dụng, BIRCH có tốc độ thực hiện PCDL nhanh và có thể áp dụng đối với tập CDSL lớn, BIRCH cũng có hiệu quả khi
áp dụng với tập dữ liệu tăng trưởng theo thời gian Độ phức tạp tính toán của BIRCH là tuyến tính tỷ lệ với số các đối tượng, do BIRCH chỉ duyệt toàn bộ
dữ liệu một lần với một lần quét thêm tùy chọn (thực hiện phân cụm lại các nút lá cây của CF), có thể được đo trong thời gian O(n) với n là số đối tượng
dữ liệu Thuật toán này kết hợp các cụm gần nhau và xây dựng lại cây CF, tuy nhiên mỗi nút trong cây CF có thể chỉ lưu trữ một số hữu hạn bởi kích thước của nó BIRCH vẫn có một hạn chế: Thuật toán này có thể không xử lý tốt nếu các cụm không có dạng hình cầu, bởi vì nó sử dụng khái niệm bán kính hoặc đường kính để kiểm soát ranh giới các cụm và chất lượng của các cụm được khám phá không được tốt Nếu BIRCH sử dụng khoảng cách Eucle, nó thực hiện tốt chỉ với các dữ liệu số, mặt khác tham số vào T có ảnh hưởng rất lớn tới kích thước tự nhiên của cụm Việc ép các đối tượng dữ liệu làm cho các đối tượng của cụm có thể là đối tượng kết thúc của cụm khác, trong khi các đối tượng gần nhau có thể bị hút bởi các cụm khác nếu chúng được biểu diễn cho thuật toán theo một thứ tự khác BIRCH không thích hợp với dữ liệu đa chiều
2.2.2 Thuật toán CURE
Trong khi hầu hết các thuật toán thực hiện phân cụm với các cụm hình cầu và kích thước tương tự, như vậy là không hiệu quả khi xuất hiện các phần tử ngoại lai Thuật toán CURE (Glustering Using REpresetatives) do Sudipto
Trang 36Guha, Rajeev Rastogi và Kyuseok Shim xây dựng năm 1998 là thuật toán sử dụng chiến lược Bottom up của kỹ thuật phân cụm phân cấp để định nghĩa một
số cố định các điểm đại diện nằm rải rác trong toàn bộ không gian dữ liệu và được chọn để mô tả các cụm được hình thành Các điểm này được tạo ra bởi các đối tượng nằm rải rác trong cụm và sau đó “co lại” hoặc di chuyển chúng về trung tâm cụm bằng nhân tố co cụm Quá trình này được lặp lại và như vậy trong quá trình này có thể đo tỷ lệ gia tăng của cụm Tại mỗi bước của thuật toán, hai cụm có cặp các điểm đại diện gần nhau (mỗi điểm trong cặp thuộc về mỗi cụm khác nhau) được hòa nhập
Như vậy, có nhiều hơn một điểm đại diện mỗi cụm cho phép CURE khám phá được các cụm có hình dạng không phải là hình cầu Việc co lại các cụm có tác dụng làm giảm tác động của các phần tử ngoại lai Thuật toán này
có khả năng xử lý tốt trong trường hợp có các phần tử ngoại lai và làm cho hiệu quả với những hình dạng không phải là hình cầu và có kích thước độ rộng biến đổi Hơn nữa, nó tỷ lệ tốt với CSDL lớn mà không làm giảm chất lượng phân cụm Hình 2.6 là ví dụ về quá trình xử lý của CURE
Hình 2.6 : Cụm dữ liệu khai phá bởi thuật toán CURE
Để xử lý được các CSDL lớn, CURE sử dụng ngẫu nhiên và
Trang 37phân hoạch, một mẫu được xác định ngẫu nhiên trước khi phân hoạch và sau
đó tiến hành phân cụm trên mỗi phân hoạch đó, như vậy mỗi phân hoạch
là từng phần đã được phân cụm, các cụm thu hoạch được lại phân cụm lần thứ hai để thu được các cụm con mong muốn, nhưng mẫu ngẫu nhiên không nhất thiết đưa ra một mô tả tốt cho toàn bộ tập dữ liệu
Thuật toán CURE được thực hiện qua các bước cơ bản sau:
1 Chọn một mẫu ngẫu nhiên từ tập dữ liệu ban đầu
2 Phân hoạch mẫu này thành nhiều nhóm dữ liệu có kích thước bằng nhau: ý tưởng ở đây là phân hoạch mẫu thành p nhóm dữ liệu bằng nhau, kích thước của mỗi phân hoạch là n’/p (n’ là kích thước mẫu)
3 Phân cụm các điểm của mỗi nhóm: Thực hiện PCDL cho các nhóm cho đến khi mỗi nhóm được phân thành n’/pq (với q>1)
4 Loại bỏ các phần tử ngoại lai: Trước hết, khi các cụm được hình thành cho đến khi số các cụm giảm xuống một phần so với số các cụm ban đầu Sau đó, trong trường hợp các phần tử ngoại lai được lấy mẫu cùng với quá trình khởi tạo mẫu dữ liệu, thuật toán sẽ tự động loại bỏ các nhóm nhỏ
5 Phân cụm các cụm không gian: các đối tượng đại diện cho các cụm di chuyển về hướng trung tâm cụm, nghĩa là chúng được thay thế bởi các đối tượng gần trung tâm hơn
6 Đánh dấu dữ liệu với các nhãn tương ứng
2.3 Phương pháp phân cụm dữ liệu dựa vào mật độ
2.3.1 Thuật toán DBSCAN
Thuật toán DBSCAN (Density – Based Spatial Clustering of
Applications with noise) là thuật toán phân cụm dựa trên mật độ thông dụng
nhất do Ester, P.Kriegel và J.Sander đề xuất năm 1996 Thuật toán đi tìm các đối tượng mà có số đối tượng láng giềng lớn hơn một ngưỡng tối thiểu
Thuật toán DBSCAN thích nghi với mật độ dầy để phân cụm và khám
Trang 38phá ra các cụm có hình dạng bất kỳ trong không gian CSDL có nhiễu Nó có định nghĩa cụm là tập tối đa các điểm liên thông mật độ
DBSCAN có thể tìm ra các cụm với hình thù bất kỳ, trong khi đó tại cùng một thời điểm ít bị ảnh hưởng bởi thứ tự của các đối tượng dữ liệu nhập vào Khi có một đối tượng được chèn vào chỉ tác động đến một láng giếng xác định Mặt khác, DBSCAN sử dụng tham số Eps và MinPts trong thuật toán để kiểm soát mật độ của các cụm DBSCAN bắt đầu với một điểm tùy ý và xây dựng mật độ láng giềng có thể được đối với Eps và MinPts Vì vậy, DBSCAN yêu cầu người dùng xác định bán kính Eps của láng giềng và số các láng giềng tối thiểu MinPts, các tham số này khó mà xác định được tối ưu, thông thường nó được xác định bằng phép chọn ngẫu nhiên hoặc theo kinh nghiệm Độ 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) Thuật toán DBSCAN có thể áp dụng cho các tập dữ liệu không gian lớn đa chiều, khoảng cách Eclide được
sử dụng để đo sự tương tự giữa các đối tượng nhưng không hiệu quả đối với
dữ liệu đa chiều
Định nghĩa 1: Lân cận với ngưỡng Eps của một điểm p ký hiệu
NEps(p) được xác định như sau: khoảng
N Eps( )p ={q∈D kho ¶ n g cách Dist( )p, q ≤Esp}
D là tập dữ liệu cho trước
Một điểm p muốn nằm trong một cụm C nào đó thì NEps(p) phải có tối thiểu MinPts điểm Số điểm tối thiểu được chọn là bao nhiêu cũng là bài toán khó vì nếu số điểm tối thiểu lớn thì chỉ những điểm nằm thực sự trong cụm C mới đạt đủ tiêu chuẩn, trong khi đó những điểm nằm ngoài biên của cụm không thể đạt được điều đó Ngược lại, nếu số điểm tối thiểu là nhỏ thì mọi điểm sẽ rơi vào một cụm
Trang 39Theo định nghĩa trên, chỉ những điểm nằm trong cụm mới thỏa mãn điều kiện là điểm thuộc vào cụm Những điểm nằm ở biên của cụm thì không thỏa mãn điều kiện đó, bởi vì thông thường thì lân cận với ngưỡng Eps của điểm biên thì bé hơn lân cận với ngưỡng Eps của điểm nhân
Để tránh được điều này, có thể đưa ra một tiêu chuẩn khác để định nghĩa một điểm thuộc vào một cụm như sau: Nếu một điểm p muốn thuộc một cụm C phải tồn tại một điểm q mà p∈NEps (q) và số điểm p trong NEps (q) phải lớn hơn điểm tối thiểu Điều này dẫn đến ba phép đo được sử dụng để mô tả thuộc tính của các điểm dữ liệu, là mật độ liên lạc trực tiếp Mật độ liên lạc trực tiếp, mật độ liên lạc và mật độ liên thông được định nghĩa như sau :
- Định nghĩa 2: Mật độ liên lạc trực tiếp
Một điểm p được gọi là liên lạc trực tiếp từ điểm q với ngưỡng Eps nếu :
1 p∈NEps (q) Với NEps(q) là tập con của D
2 N Eps( )q ≥MinPts(điều kiện đối tượng nhân), điểm q gọi là điểm nhân
Ta thấy rằng nó là một hàm phản xạ và đối xứng với hai điểm nhân và bất đối xứng nếu một trong hai điểm đó không phải là điểm nhân
- Định nghĩa 3: Mật độ liên lạc
Một điểm p được gọi là liên lạc từ một điểm q theo tham số Eps và MinPts nếu tồn tại một dãy p = p1, p2,…, pn = q thỏa mãn pi+1 là có thêm liên lạc trực tiếp từ pi với i= 1 n- 1
Hai điểm biên của một cụm C có thể không liên lạc được với nhau bởi
vì cả hai đều không thỏa mãn điều kiện nhân
- Định nghĩa 4: Mật độ liên thông
Một điểm p được gọi là liên thông với điểm q theo tham số Eps và MinPts nếu tồn tại một điểm O mà cả hai điểm p, q đều có thể liên lạc được theo tham số Eps và MinPts Mật độ liên thông có tính chất đối xứng và phản xạ
Trang 40- Định nghĩa 5: Cụm
Giả sử D là một tập các đối tượng dữ liệu Một tập con C khác rỗng của
D được gọi là một cụm theo Eps và MinPts nếu thỏa mãn hai điều kiện :
1 Với p,q∈D, nếup∈C và q có thể liên lạc được từ p theo Eps và
MinPts thì q∈C
2 Với p,q∈C, p là mật độ liên thông với q theo Eps và MinPts
- Định nghĩa 6: Nhiễu
Giả sử C1, C2, … , Ck là các cụm trong tập dữ liệu D theo tham số Eps
và MinPts, điểm dữ liệu nhiễu là điểm dữ liệu không thuộc vào cụm nào trong các cụm C1, C2, … , Ck, tức là N ={p/ với mọi I = 1,…,k ∉ Ci}
Với hai tham số Eps và MinPts cho trước, có thể khám phá các cụm theo hai bước :
- Bước 1 : Chọn một điểm bất kỳ từ tập dữ liệu ban đầu thỏa mãn điều kiện nhân
- Bước 2 : Lấy tất cả các điểm liên lạc với điểm nhân đã chọn để tạo thành cụm
Bổ đề 1: Giả sử p là một điểm trong D, trong đó N Eps( )p ≥MinPts, tập
O= {o/o ∈ D và o là mật độ-đến được từ p theo Eps và MinPts} là một cụm theo Eps và MinPts
Như vậy, cụm C không hoàn toàn là duy nhất, tuy nhiên, mỗi điểm trong C đến được từ bất cứ một điểm nhân nào của C, vì vậy C chứa đúng một
số điểm liên thông với điểm nhân tùy ý
Bổ đề 2: Giả sử C là một cụm theo Eps và MinPts, p là một điểm bất
kỳ trong C với N Eps(p) ≥MinPts Khi đó, C trùng với tập O ={o/o ∈ D và o có
thể liên lạc từ p theo Eps và MinPts}
Thuật toán DBSCAN