Khai phá dữ liệu là một bước trong quá trình khám phá tri thức, gồm các thuật toán khai thác dữ liệu chuyên dụng dưới một số quy định về hiệu quả tính toán chấp nhận được để tìm ra các m
Trang 1MỤC LỤC
LỜI NÓI ĐẦU 3
CHƯƠNG 1 GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU 5
1.1 Khái niệm khai phá dữ liệu 5
1.2 Kiến trúc của một hệ thống khai phá dữ liệu 6
1.3 Các giai đoạn của quá trình khai phá 7
1.4 Các phương pháp khai phá dữ liệu 9
1.5 Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu 10
1.6 Các ứng dụng của khai phá dữ liệu 11
1.7 Các thách thức và khó khăn trong khai phá dữ liệu 12
CHƯƠNG 2 TỔNG QUAN VỀ PHÂN CỤM DỮ LIỆU 13
2.1 Khái niệm và mục tiêu của phân cụm dữ liệu 13
2.1.1 Khái niệm về phân cụm dữ liệu 13
2.1.1.1 Mục tiêu của phân cụm dữ liệu 13
2.1.1.2 Các yêu cầu đối với kỹ thuật phân cụm dữ liệu 14
2.1.1.3 Các kiểu dữ liệu và các thuộc tính trong phân cụm 14
2.1.2 Các kỹ thuật tiếp cận trong phân cụm dữ liệu 16
2.1.2.1 Phương pháp phân cụm phân hoạch 16
2.1.2.3 Phương pháp phân cụm phân cấp 16
2.1.2.3 Phương pháp phân cụm dựa trên mật độ 17
2.1.2.4 Phân cụm dựa trên lưới 18
2.1.2.5 Phân cụm dựa trên mô hình 19
2.1.2.6 Phân cụm có dữ liệu ràng buộc 19
2.1.3.Một số phương pháp trong phân cụm dữ liệu 21
2.1.3.1 Các thuật toán trong phân cụm phân hoạch 21
2.1.3.2 Các thuật toán trong phân cụm phân cấp 27
2.1.3.3.Các thuật toán phân cụm dựa trên mật độ 28
2.1.3.4.Phân cụm dựa trên lưới 29
2.1.3.5.Phân cụm dựa trên mô hình 30
2.2 Phân cụm cụm mờ 31
2.2.1 Tổng quan về phân cụm mờ 31
2.2.2 Các thuật toán phân cụm mờ 32
2.2.2.1 Thuật toán FCM (Fuzzy C-Means) 32
2.2.2.2 Thuật toán εFCM 34
2.2.2.3 Thuật toán FCM cải tiến 36
CHƯƠNG 3 CHƯƠNG TRÌNH CÀI ĐẶT 44
3.1 Giới thiệu ngôn ngữ Visual Basic 6.0 44
3.1.1 Biểu mẫu và một số điều khiển thông dụng 44
3.1.2 Biểu mẫu (Form) 45
3.1.3 Nhãn (Label) 46
3.1.5 Nút lệnh (Command Button) 47
3.1.6 Ô nhập dữ liệu (TextBox) 48
3.1.7 Các cấu trúc điều khiển trong VB 49
3.2 Cài đặt thuật toán 51
3.2.1.Một số giao diện chính 51
Trang 23.2.2 Nhận xét 54
3.3 Ứng dụng C-Means trong việc phân cụm bệnh án cho bệnh xơ gan 55
3.3.2 Một số bảng thao tác 59
3.3.3 Giao diện chương trình ứng dụng 62
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 70
Trang 3LỜI NÓI ĐẦU
Trong vài năm gần đây, với sự bùng nổ của công nghệ thông tin đã mang lại nhiều hiệu quả và thành công lớn đối với khoa học cũng như các hoạt động thực
tế khác, trong đó có lĩnh vực khai phá dữ liệu là một lĩnh vực mang lại hiệu quả thiết thực cho con người Khai phá dữ liệu đã giúp chúng ta thu được những tri thức hữu ích từ cơ sở dữ liệu hay từ các kho dữ liệu khổng lồ khác Cơ sở dữ liệu được sử dụng trong các đơn vị, tổ chức kinh doanh, quản lý khoa học chứa đựng nhiều thông tin tiềm ẩn, phong phú và đa dạng đòi hỏi phải có những phương pháp nhanh, phù hợp, chính xác, hiệu quả để lấy được những thông tin có ích để làm tư liệu đối với từng trường hợp cụ thể của con người Những tri thức thu được từ cơ sở dữ liệu trên sẽ là nguồn thông tin hỗ trợ cho chúng ta trong từng công việc chi tiết, cụ thể Việc tiến hành công việc như vậy chính là thực hiện quá trình phát hiện tri thức trong cơ sở tri thức ( Knowledge Discovery in Database) mà trong đó là kỹ thuật khai phá dữ liệu (Data Mining) cho phép phát hiện những tri thức tiềm ẩn Ngay từ 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 công nghệ tri thức như 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 nghiên cứu quan trọng và một trong các hướng cơ bản trong khai phá dữ liệu là quá trình phân cụm dữ liệu (Data Clustering) Phân cụm dữ liệu có thể hiểu là quá trình tìm kiếm tri thức, phân tách (hay chuẩn hóa dữ liệu) thành các cụm hay các tập dữ liệu từ một tập cơ sở
dữ liệu lớn để thu được nguồn thông tin có ích phục vụ cho từng nhu cầu thực tế
của mỗi người, mỗi tổ chức
Qua thực tế cho thấy, việc thu thập những thông tin quan trọng còn tiềm ẩn trong cơ sở dữ liệu lớn là rất cần thiết Vì vậy, việc phân cụm dữ liệu, trích lọc những thông tin quan trọng phục vụ cho từng nhu cầu của mỗi người đã mang lại nhiều lợi ích quan trọng góp phần giảm bớt lượng dữ liệu dư thừa hoặc không
cần thiết trong từng ứng dụng thực tế
Trang 4Bắt nguồn từ ý tưởng này, cùng với sự gợi ý của thầy giáo Trần Mạnh
Tuấn, em đã thực hiện đồ án “CÁI ĐẶT MỘT SỐ THUẬT TOÁN PHÂN CỤM DỮ LIỆU, ÁP DỤNG VÀO BÀI TOÁN PHÂN NHÓM BỆNH ÁN CỦA BỆNH XƠ GAN ĐỂ HỖ TRỢ VIỆC ĐIỀU TRỊ ”
Để có kết quả như ngày hôm nay, em cũng đã cố gắng nhiều, song phần lớn
là nhờ sự giúp đỡ và chỉ bảo tận tình của thầy giáo Th.s Trần Mạnh Tuấn Nhưng
vì điều kiện và thời gian có hạn nên việc tìm hiểu về lĩnh vực này cũng còn nhiều hạn chế và không tránh khỏi những thiếu sót Vì vậy em mong được sự góp ý, chỉ
bảo của quý thầy cô và bạn bè để báo cáo của em được hoàn thiện hơn
Trang 5
CHƯƠNG 1 GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU
Trong những năm gần đây, Khai phá dữ liệu đã và đang trở thành một trong những hướng nghiên cứu và tiếp cận mới thu hút được sự quan tâm của nhiều chuyên gia Công nghệ thông tin ở Việt Nam nói riêng và chuyên gia trên thế giới nói chung Điều này cho chúng ta thấy được những ưu thế và lợi ích, khả năng ứng dụng thực tế của Khai phá dữ liệu là rất lớn Vì vậy sau đây em xin đưa ra một số khái niệm và những kiến thức cơ bản nhất về Khai phá dữ liệu
1.1 Khái niệm khai phá dữ liệu
Khai phá dữ liệu là một lĩnh vực nghiên cứu nhằm tự động khai thác thông tin tri thức, tri thức hữu ích, tiềm ẩn từ những CSDL lớn cho các đơn vị tổ chức, doanh nghiệp,…Vậy khai phá dữ liệu là khám phá tri thức tiềm ẩn trong các cơ
sở dữ liệu lớn Cụ thể hơn, đó là quá trình trích lọc, sản sinh ra những thông tin hoặc các mẫu không hiển nhiên, tiểm ẩn nhưng hữu ích từ các cơ sở dữ liệu lớn Các kết quả nghiên cứu khoa học cùng những ứng dụng thành công trong phát hiện tri thức cho thấy Khai phá tri thức là một lĩnh vực phát triển bền vững, mang lại nhiều 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ông các công cụ tìm kiếm phân tích dữ liệu truyền thống
Khai phá dữ liệu là một bước trong quá trình khám phá tri thức, gồm các thuật toán khai thác dữ liệu chuyên dụng dưới một số quy định về hiệu quả tính
toán chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu
Hình 1: Quá trình khai phá dữ liệu
Trang 6Vậy ta có thể khái quát hóa khái niệm Khai phá dữ liệu là một quá trình tìm kiếm, phát hiện các tri thức mới, hữu ích, tiềm ẩn trong CSDL lớn Cụ thể hơn đó
là tiến trình lọc, sản sinh những tri thức hoặc các mẫu tiềm ẩn, chưa biết thông tin hữu ích từ các cơ sở dữ liệu lớn
1.2 Kiến trúc của một hệ thống khai phá dữ liệu
Khai phá dữ liệu là quá trình rút trích thông tin bổ ích từ những kho dữ liệu lớn Khai phá dữ liệu là quá trình chính trong khai phá tri thức từ cơ sở dữ liệu Kiến trúc của một hệ thống khai phá dữ liệu có các thành phần như sau:
Hình 2: Kiến trúc một hệ thống khai phá dữ liệu
CSDL, kho dữ liệu hoặc lưu trữ thông tin khác: đây là một hay các tập CSDL, các kiểu dữ liệu hay các dạng khác nhau của thông tin được lưu trữ Các kỹ thuật làm sạch dữ liệu và tích hợp dữ liệu có thể được thực
Trang 7thể bao gồm một sự phân cấp khái niệm dùng để tổ chức các thuộc tính hay các giá trị thuộc tính ở các mức trừu tượng khác nhau
Máy khai phá dữ liệu (Data mining enginne): là một hệ thống khai phá dữ liệu cần phải có một tập các Modul chức năng để thực hiện công việc như kết hợp, phân lớp,phân cụm
Modul đánh giá mẫu (Parttern evaluation): Bộ phận tương tác với các Modul khai phá dữ liệu để tập trung vào việc duyệt tìm các mẫu đang được quan tâm Nó có thể dùng các ngưỡng về độ quan tâm để lọc các mẫu đã khám phá được Cũng có thể Modul đáng giá mẫu được tích hợp vào Modul khai phá dữ liệu, tùy theo cách cài đặt của phương pháp khai phá dữ liệu được dùng
Giao diện đồ họa cho người dùng (Graphical user interface): bộ phận này cho phép người dùng giao tiếp với hệ thống khai phá dữ liệu Thông qua giao diện này người dùng có thể tương tác với hệ thống bằng cách đặc tả một yêu cầu khai phá hay một nhiệm vụ, cung cấp thông tin trợ giúp cho việc tìm kiếm và thực hiện việc khai phá thăm dò trên các kết quả khai phá trung gian Ngoài ra, bộ phận này còn cho phép người dùng xem các lược đồ CSDL, lược đồ kho dữ liệu, các đánh giá mẫu và hiển thị các mẫu trong các khuôn dạng khác nhau
1.3 Các giai đoạn của quá trình khai phá
Khai phá dữ liệu là một giai đoạn quan trọng trong quá trình khám phá tri thức Về bản chất, nó là giai đoạn duy nhất tìm ra được thông tin mới, thông tin tiềm ẩn có trong CSDL chủ yếu phục vụ cho mô tả và dự đoán
Mô tả dữ liệu là tổng kết hoặc diễn tả những đặc điểm chung của những thuộc tính dữ liệu trong kho dữ liệu mà con người có thể hiểu được
Dự đoán là dựa trên những dữ liệu hiện thời để dự đoán những quy luật được phát hiện từ các mối liên hệ giữa các thuộc tính của dữ liệu trên cơ sở đó chiết xuất ra các mẫu, dự đoán được những giá trị chưa biết hoặc những giá trị tương lai của các biến quan tâm
Trang 8Quá trình khai phá dữ liệu được thể hiện như hình sau:
Hình 3: Quá trình khai phá dữ liệu
Trong đó :
Xác định nhiệm vụ: xác định chính xác các vấn đề cần giải quyết
Xác định các dữ liệu liên quan: Dùng để xây dựng giải pháp
Thu thập và tiền xử lý dữ liệu: Thu thập dữ liệu liên quan và tiền xử lý chúng sao cho thuật toán khai phá dữ liệu có thể hiểu được Đây là quá trình khó khăn, có thể gặp phải rất nhiều vướng mắc như: dữ liệu phải được sao ra nhiều bản, quản lí tập các dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình…
Quá trình khai phá dữ liệu trải qua ba bước:
Bước 1: Lọc dữ liệu được thực hiện trong quá trình tiền xử lý Đầu tiên là
tích hợp và chỉnh sửa Dữ liệu được thu thập từ nhiều nguồn khác nhau nên có thể có những sai sót, dư thừa và trùng lặp Lọc dữ liệu là cắt bỏ dư thừa để dữ liệu được định dạng thống nhất Dữ liệu sau khi lọc và chỉnh sửa sẽ nhỏ hơn, xử
lý nhanh hơn
Bước 2: Khai phá dữ liệu là công việc chính, sử dụng các thuật toán khác
nhau để khai phá các kiến thức tiềm ẩn trong dữ liệu
Bước 3: quá trình ước lượng kết quả khai phá theo yêu cầu của người dùng
Các kết quả được ước lượng bởi những quy tắc nào đó, nếu kết quả cuối cùng không thỏa mãn yêu cầu thì phải làm lại với kỹ thuật khác cho đến khi có kết quả
Trang 91.4 Các phương pháp khai phá dữ liệu
Mục đích của khai phá dữ liệu là chiết xuất ra các tri thức có lợi cho kinh doanh hay cho nghiên cứu khoa học… Do đó, ta có thể xem mục đích của khai phá dữ liệu sẽ là mô tả các sự kiện và dự đoán Dự đoán liên quan đến việc sử dụng các biến hoặc các đối tượng (bản ghi) trong cơ sở dữ liệu để chiết xuất ra các mẫu, dự đoán được những giá trị chưa biết hoặc những giá trị tương lai của các biến đáng quan tâm Còn mô tả tập trung vào việc tìm kiếm các mẫu mô tả dữ liệu mà con người có thể hiểu được Với hai mục đích của khai phá dữ liệu đó, người ta thường sử dụng các phương pháp cho Khai phá dữ liệu như sau:
Luật kết hợp (Association rules)
Phân lớp (Classfication)
Hồi quy (Regression)
Trực quan hóa (Visualiztion)
Phân cụm (Clustering)
Tổng hợp (Summarization)
Mô hình ràng buộc (Dependency modeling)
Biểu diễn mô hình (Model Evaluation)
Phân tích sự phát triển và độ lệch (Evolution and deviation analyst)
Phương pháp tìm kiếm (Search method)
Trong số các phương pháp khai phá dữ liệu trên, có 3 phương pháp được sử dụng nhiều đó là: Luật kết hợp, Phân lớp dữ liệu và Phân cụm dữ liệu
Phân lớp dữ liệu: Khái niệm phân lớp dữ liệu được Han và Kamber đưa ra
năm 2000 Phân lớp dữ liệu là xây dựng một mô hình mà có thể phân các đối tượng thành những lớp để dự đoán giá trị bị mất tại một số thuộc tính của dữ liệu hay tiên đoán giá trị của dữ liệu sẽ xuất hiện trong tương lai
Quá trình phân lớp dữ liệu được thực hiện qua 2 bước:
Dựa vào tập hợp dữ liệu huấn luyện, xây dựng một mô hình mô tả những đặc trưng của những lớp dữ liệu hoặc những khái niệm, đây là quá trình học có giám sát, học theo mẫu được cung cấp trước
Trang 10Từ những lớp dữ liệu hoặc những khái niệm được xác định trước, dự đoán giá trị của những đối tượng quan tâm
Một kỹ thuật phân lớp dữ liệu được Han và Kamber đưa ra là cây quyết định Mỗi nút của cây đại diện một quyết định dựa vào giá trị thuộc tính tương ứng
Phân nhóm dữ liệu: Phân nhóm là kỹ thuật khai phá dữ liệu tương tự như
phân lớp dữ liệu tuy nhiên, sự phân nhóm là quá trình học không giám sát, là quá trình nhóm những đối tượng vào trong những lớp tương đương, những đối tượng trong cùng nhóm phải tương đương nhau và khác với những đối tượng khác trong các nhóm khác Trong phân nhóm đối tượng, những đối tượng được nhóm lại cùng nhau dựa vào sự giống nhau của chúng Sự giống nhau giữa những đối tượng được xác định bởi những chức năng giống nhau Thông thường sự giống nhau về định lượng như khoảng cách hoặc độ đo khác được xác định bởi những chuyên gia trong lĩnh vực
1.5 Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu
Dựa vào những kiểu dữ liệu mà kỹ thuật khai phá áp dụng, có thể chia dữ liệu thành các loại khác nhau:
Cơ sở dữ liệu quan hệ: Đến nay hầu như dữ liệu được lưu trữ dưới dạng cơ
sở dữ liệu quan hệ Cơ sở dữ liệu quan hệ có cấu trúc cao, dữ liệu được
mô tả bởi một tập các thuộc tính và lưu trong bảng Khai phá dữ liệu trên
cơ sở dữ liệu quan hệ chủ yếu tập trung khai phá mẫu
Cơ sở dữ liệu giao tác: là tập hợp những bản ghi giao dịch , trong đa số các
trường hợp chúng là những bản ghi các dữ liệu hoạt động của doanh nghiệp, tổ chức Khai phá dữ liệu trên cơ sở dữ liệu giao tác tập trung vào khai phá luật kết hợp tìm mối tương quan giữa những mục dữ liệu của bản ghi giao dịch
Cơ sở dữ liệu không gian: bao gồm hai phần: dữ liệu quan hệ (hay giao tác)
và thông tin định vị (hoặc thông tin địa lý) Những luật kết hợp trên cơ sở
dữ liệu không gian mô tả mối quan hệ giữa các đặc trưng trong cơ sở dữ liệu không gian Dạng của luật kết hợp không gian có dạng X -> Y với
Trang 11X,Y là tập hợp những vị từ không gian Những thuật toán khai phá luật kết hợp không gian tương tự như khai phá luật kết hợp nhưng thêm những vị
từ không gian
Cơ sở dữ liệu có yếu tố thời gian: Giống như cơ sở dữ liệu có yếu tố không
gian, cơ sở dữ liệu này bao gồm hai phần: Dữ liệu quan hệ (hay giao tác)
và Thông tin về thời gian xuất hiện dữ liệu ở phần 1 Những luật kết hợp thời gian có nhiều thông tin hơn những luật kết hợp cơ bản
Cơ sở dữ liệu đa phương tiện: số lượng trang Web đang bùng nổ trên thế
giới, thông tin trên Web đang phát triển với tốc độ cao vì vậy việc khai phá thông tin trên Web (Web mining) đã trở thành một lĩnh vực nghiên cứu chính của khai phá dữ liệu và đang được quan tâm Khai phá dữ liệu trên Web được chia thành 3 phạm trù chính: Khai phá cách sử dụng Web (Web usage mining), khai phá cấu trúc Web (Web structure mining) và khai phá nội dung Web (Web content mining) Khai phá cách dùng Web tập trung vào việc khai phá thông tin của người truy cập Web
1.6 Các ứng dụng của khai phá dữ liệu
Khai phá dữ liệu tuy là một lĩnh vực mới nhưng đang thu hút được sự quan tâm của rất nhiều nhà nghiên cứu, nhờ đó nó có nhiều những ứng dụng trong thực tiễn, điển hình như:
Phân tích dữ liệu và hỗ trợ ra quyết định
Phân lớp văn bản, tóm tắt văn bản, phân lớp các trang Web và phân cụm ảnh màu
Chuẩn đoán triệu chứng, phương pháp trong điều trị y học
Tìm kiếm, đối sánh các hệ Gene và thông tin di truyền trong sinh học
Phân tích tình hình tài chính, thị trường, dự báo giá cổ phiếu trong tài chính, thị trường và chứng khoán
Phân tích dữ liệu marketing, khách hang
Điều khiển và lập lịch trình
Bảo hiểm, Giáo dục, Y tế……
Trang 121.7 Các thách thức và khó khăn trong khai phá dữ liệu
Khai phá dữ liệu liên quan đến nhiều ngành, nhiều lĩnh vực trong thực tế, vì vậy các thách thức và khó khăn ngày càng nhiều, càng lớn hơn Dưới đây là một
số khó khăn cần được quan tâm và giải quyết:
Các cơ sở dữ liệu lớn, các tập dữ liệu cần xử lý có kích thước lớn Thực tế, kích thước của các tập dữ liệu thường ở mức tera- byte
Mức độ nhiễu cao hoặc dữ liệu bị thiếu
Số chiều các thuộc tính lớn
Thay đổi dữ liệu và tri thức có thể làm cho các mẫu đã phát hiện không còn phù hợp
Quan hệ giữa các trường phức tạp
Việc giao tiếp với người sử dụng và kết hợp các tri thức
Tích hợp với các hệ thống khác
Cơ sở dữ liệu có thể lớn về số lượng các bản ghi, về số lượng các thuộc tính trong CSDL Để giải quyết vấn đề này, người ta đưa ra một ngưỡng nào đó cho CSDL bằng các cách như chiết xuất mẫu, xấp xỉ hoặc xử lý song song
Để khắc phục việc dữ liệu thay đổi phụ thuộc theo thời gian ta cần phải chuẩn hóa,cải tiến, nâng cấp các mẫu, các mô hình và có thể xem các thay đổi này là mục đích của khai phá và tìm kiếm các mẫu bị thay đổi
Với thuộc tính không phù hợp, các bộ giá trị không đầy đủ, bị thiếu giá trị trong các miền thuộc tính… người ta sẽ coi sự thiếu vắng của các dữ liệu này là giá trị ẩn, chưa biết và có thể được tiên đoán bằng một số phương pháp nào đó Với những Quan hệ phức tạp giữa các thuộc tính trong CSDL đòi hỏi phải
có các giải pháp, các kỹ thuật để có thể áp dụng được, nhận ra được các mối quan
hệ này trong quá trình khai phá dữ liệu
Trang 13CHƯƠNG 2 TỔNG QUAN VỀ PHÂN CỤM DỮ LIỆU 2.1 Khái niệm và mục tiêu của phân cụm dữ liệu
2.1.1 Khái niệm về phân cụm dữ liệu
Phân cụm dữ liệu là quá trình nhóm một tập các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một cụm là tương đồng, còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng Phân cụm dữ liệu là một kỹ thuật trong Khai phá dữ liệu 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 trọng trong tập dữ liệu lớn từ đó cung cấp thông tin tri thức hữu ích cho việc ra quyết định
Không giống như phân lớp dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện Vì thế, có thể coi phân cụm dữ liệu
là một cách học bằng quan sát trong khi phân lớp dữ liệu là học bằng ví dụ … Ngoài ra, phân cụm dữ liệu còn có thể được sử dụng như một bước tiền xử
lý cho các thuật toán khai phá dữ liệu khác như là phân loại và mô tả đặc điểm,
có tác dụng trong việc phát hiện ra các cụm.Phân cụm dữ liệu đang là vấn đề mở
và khó vì người ta cần phải đi giải quyết nhiều vấn đề cơ bản về dữ liệu để nó phù hợp với nhiều dạng dữ liệu khác nhau như dữ liệu chứa nhiễu do quá trình thu thập thiếu chính xác, không tường minh hoặc là các đối tượng dữ liệu khuyết thiếu thông tin về môt số thuộc tính… hoặc dữ liệu hỗn hợp đang ngày càng tăng trong các hệ quản trị dữ liệu
2.1.1.1 Mục tiêu của phân cụm dữ liệu
Mục tiêu của phân cụm dữ liệu là xác định được bản chất nhóm trong tập
dữ liệu chưa có nhãn Nó có thể là không có tiêu chuẩn tuyệt đối “tốt” mà có thể không phụ thuộc vào kết quả phân cụm Vì vậy, nó đòi hỏi người sử dụng phải cung cấp tiêu chuẩn phân cụm một cách rõ ràng theo cách mà kết quả phân cụm
sẽ đáp ứng yêu cầu
Hiệ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 chọn vẹn cho tất cả các dạng cấu trúc dữ liệu Hơn nữa, các phương pháp phân cụm cần có một cách thức biểu diễn cấu trúc của dữ liệu, và với mỗi cách thức biểu khác nhau sẽ có tương ứng một thuật toán phân cụm phù hợp
Trang 142.1.1.2 Các yêu cầu đối với kỹ thuật phân cụm dữ liệu
Việc phân cụm dữ liệu đều nhằm thỏa mãn các yêu cầu cơ bản sau:
Có khả năng mở rộng
Thích nghi với các kiểu dữ liệu khác nhau
Khám phá ra các cụm với hình thù bất kỳ
Tối thiểu lượng tri thức cần cho xác định các tham số đầu vào
Ít nhạy cảm với thứ tự của dữ liệu vào
Thích nghi với dữ liệu nhiễu cao
Ít nhạy cảm với các tham số đầu vào
Thích nghi với dữ liệu đa chiều
Dễ hiểu, dễ cài đặt và khả thi
2.1.1.3 Các kiểu dữ liệu và các thuộc tính trong phân cụm
Bao gồm 2 kiểu dữ liệu:
Dữ liệu dựa trên kích thước miền:
Thuộc tính liên tục (Continuous Attribute) : nếu miền giá trị của nó là vô hạn không đếm được
Thuộc tính rời rạc (DiscretteAttribute) : Nếu miền giá trị của nó là tập hữu hạn, đếm được
Lớp các thuộc tính nhị phân: là trường hợp đặc biệt của thuộc tính rời rạc
mà miền giá trị của nó chỉ có 2 phần tử được diễn tả như : Yes / No hoặc
Nam/Nữ, False/true,…
Dữ liệu dựa trên hệ đo:
Giả sử rằng chúng ta có hai đối tượng x, y và các thuộc tính xi, yi tương ứng với thuộc tính thứ i của chúng Chúng ta có các lớp kiểu dữ liệu như sau :
Thuộc tính định danh (nominal Scale): đây là dạng thuộc tính khái quát hoá của thuộc tính nhị phân, trong đó miền giá trị là rời rạc không phân biệt thứ
tự và có nhiều hơn hai phần tử - nghĩa là nếu x và y là hai đối tượng thuộc tính thì chỉ có thể xác định là x y hoặc x = y
Trang 15 Thuộc tính có thứ tự (Ordinal Scale) : là thuộc tính định danh có thêm tính thứ tự, nhưng chúng không được định lượng Nếu x và y là hai thuộc tính thứ tự thì ta có thể xác định là x y hoặc x = y hoặc x > y hoặc x <y
Thuộc tính khoảng (Interval Scale) : Với thuộc tính khoảng, chúng ta có thể xác định một thuộc tính là đứng trước hoặc sau thuộc tính khác với một khoảng là bao nhiêu Nếu xi > yi thì ta nói x cách y một khoảng xi – yi tương ứng với thuộc tính thứ i.Sau khi chuẩn hoá, độ đo phi tương tự của hai đối tượng dữ liệu x, y được xác định bằng các metric khoảng cách như sau :
1
|
| (
/ 1 )
x d
2 )
, ( , đây là trường hợp đặc biệt của khoảng cách Minskowski trong trường hợp q=2
),( , đây là trường hợp đặc biệt của khoảng cách Minskowski trong trường hợp q=1
1)
,(x y Max i n xi yi
tự giữa các thuộc tính tỷ lệ Có thể sử dụng công thức tính logarit cho mỗi thuộc tính xi
Trong các thuộc tính dữ liệu trình bày ở trên, thuộc tính định danh và thuộc tính có thứ tự gọi chung là thuộc tính hạng mục (Categorical), thuộc tính khoảng
và thuộc tính tỉ lệ được gọi là thuộc tính số (Numeric)
Trang 162.1.2 Các kỹ thuật tiếp cận trong phân cụm dữ liệu
Có nhiều cách tiếp cận và các ứng dụng trong thực tế nhưng tất cả đều hướng tới hai mục tiêu chung đó là chất lượng của các cụm khám phá được và tốc độ thực hiện các thuật toán Các kỹ thuật đó có thể phân loại theo các cách tiếp cận chính sau:
2.1.2.1 Phương pháp phân cụm phân hoạch
Kỹ thuật này phân hoạch một tập hợp dữ liệu có n phần tử thành k nhóm cho đến khi xác định số các cụm được thiết lập Phương pháp này tốt với việc tìm các cụm hình cầu trong không gian Euclidean
Phương pháp này cũng phụ thuộc vào khoảng cách cơ bản giữa các điểm để lựa chọn các điểm dữ liệu có quan hệ là gần nhau với mỗi điểm khác và các điểm
dữ liệu nào không có quan hệ hoặc có quan hệ là xa nhau so với điểm khác Nhược điểm:
Phương pháp này không thể xử lí các cụm có hình dạng kỳ quặc hoặc các cụm có mật độ các điểm dầy đặc
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
Trên thực tế 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ụm cũng như để hướng dẫn cho quá trình tìm kiếm phân hoạch dữ liệu Ý tưởng chính của thuật toán 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
2.1.2.3 Phương pháp phân cụm phân cấp
Ý tưởng của phương pháp này là xây dựng một phân cấp trên cơ sở các đối tượng dữ liệu đang xem xét, nghĩa là sắp xếp một tập dữ liệu đã cho thành một cấu trúc có dạng hình cây, cây phân cấp này được xây dựng theo kỹ thuật đệ quy
Có 2 cách phổ biến đó là:
Bottom –up (hòa nhập nhóm)
Top- down (phân chia nhóm)
Trang 17Hình 4: Các chiến lược phân cụm phân cấp
Có nhiều trường hợp 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
2.1.2.3 Phương pháp phân cụm dựa trên mật độ
Kỹ thuật này nhóm các đối tượng dữ liệu dựa trên hàm mật độ xác định, mật
độ là số các đối tượng lân cận của một đối tượng dữ liệu theo một nghĩa nào đó.Với cách tiếp cận này, khi dữ liệu đã được xác định thì nó tiếp tục phát triển them các đối tượng dữ liệu mới miễn là số các đối tượng lân cận này phải lớn hơn một ngưỡng đã được xác định trước
Ưu điểm:
Phát hiện ra được các cụm dữ liệu với hình thù bất kỳ
Khắc phục được phần tử ngoại lai hoặc trị nhiễu tốt
Nhược điểm:
Việc xác định các tham số mật độ của thuật toán là khó khăn trong khi các tham số này lại có tác động rất lớn đến kết quả phân cụm
Trang 182.1.2.4 Phân cụm dựa trên lưới
Phương pháp này thích hợp với dữ liệu nhiều chiều, dựa trên cấu trúc dữ liệu để phân cụm, nó chủ yếu tập trung áp dụng cho lớp dữ liệu không gian Mục tiêu của phương pháp:
Lượng hóa các dữ liệu thành các ô tạo thành cấu trúc dữ liệu lưới
Các thao tác phân cụm chỉ cần làm việc với các đối tượng trong từng ô trên lưới chứ không phải các đối tượng dữ liệu
Cách tiếp cận này không di chuyển các đối tượng trong các ô mà xây dựng nhiều mức phân cấp của nhóm các đối tượng trong một ô
Phương pháp này gần giống với phương pháp phân cụm phân cấp nhưng chúng không trộn các ô
Trang 192.1.2.5 Phân cụm dựa trên mô hình
Ý tưởng của phương pháp:
Khám phá các phép xấp xỉ tốt của các tham số mô hình sao cho khớp với
dữ liệu một cách tốt nhất
Có thể sử dụng chiến lược phân cụm phân hoạch hoặc phân cụm phân cấp, dựa trên cấu trúc hoặc mô hình mà chúng giả định về tập dữ liệu và cách chúng hiệu chỉnh các mô hình này để nhận dạng ra các phân hoạch
Cố gắng khớp giữa các dữ liệu với mô hình toán học, nó dựa trên giả định rằng dữ liệu được tạo ra bằng hỗn hợp phân phối xác suất cơ bản
Phương pháp có hai cách tiếp cận chính:
Mô hình thống kê
Mạng nơron
Phương pháp này gần giống với phương pháp phân cụm dựa trên mật độ vì chúng phát triển các cụm riêng biệt nhằm cải tiến các mô hình đã được xác định trước đó, có khi nó không băt đầu với một số cụm cố định và không sử dụng cùng một khái niệm mật độ cho các cụm
2.1.2.6 Phân cụm có dữ liệu ràng buộc
Các thuật toán trên hầu hết cung cấp ít cách thức cho người dung để xác định các ràng buộc trong thế giới thực cần phải thỏa mãn quá trình phân cụm Vì vậy, để phân cụm dữ liệu không gian hiệu quả hơn, các nghiên cứu bổ sung cần được thực hiện để cung cấp cho người dùng khả năng kết hợp các ràng buộc trong thuật toán phân cụm
Trang 20Hình 6: Các cách mà cụm có thể đưa ra
Một số nhánh nghiên cứu được phát triển trên cơ sở của phương pháp này: Phân cụm thống kê: dựa trên các khái niệm phân tích hệ thống, người ta sử dụng các độ đo tương tự để phân hoạch các đối tượng nhưng chúng chỉ áp dụng cho các dữ liệu có thuộc tính số
Phân cụm khái niệm: áp dụng cho dữ liệu hạng mục, chúng phân cụm các đối tượng theo các khái niệm mà chúng xử lý
Phân cụm mờ: sử dụng kỹ thuật phân cụm mờ để phân cụm dữ liệu, các thuật toán này chỉ ra lược đồ phân cụm thích hợp với tất cả các hoạt động đời sống hàng ngày, chúng xử lý dữ liệu thực không chắc chắn
Phân cụm mạng Kohonen: loại phân cụm này dựa trên khái niệm của mạng nơron Mạng Kohonen có:
Tầng nơron vào: Mỗi nơron vào tương ứng với mỗi thuộc tính của bản ghi, mỗi nơron vào kết nối với tất cả các nơron của tầng ra
Tầng nơron ra
Mỗi liên kết được gắn liền với một trọng số nhằm xác định vị trí của nơron
ra tương ứng
Trang 212.1.3.Một số phương pháp trong phân cụm dữ liệu
2.1.3.1 Các thuật toán trong phân cụm phân hoạch
Ý tưởng chung của thuật toán trong phân cụm phân cụm phân hoạch: phân
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ối thiểu một phần
tử dữ liệu 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 để tìm kiếm nghiệm
Dưới đây là một số thuật toán được sử dụng rộng rãi:
Thuật toán K-Means:
Ý tưởng : dựa trên độ đo khoảng cách của các đối tượng dữ liệu trong cụm Thực tế, nó đo khoảng cách tới giá trị trung bình của các đối tượng dữ liệu trong cụm Nó được xem như là trung tâm của cụm Như vậy, nó khởi tạo một tập trung tâm các cụm trung tâm ban đầu và thông qua đó nó lặp lại các bước gồm gán mỗi đối tượng tới cụm mà trung tâm gần nhất và tính toán tại trung tâm của mỗi cụm trên cơ sở gán mới cho các đối tượng Quá trình lặp này dừng khi các trung tâm hội tụ
Hình 7: Thiết lập để xác định danh giới các cụm ban đầu
Trang 22Mục đích: sinh ra k cụm dữ liệu {C1,C2…, Ck} từ một tập dữ liệu ban đầu gồm 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:
2 đạt giá trị tối thiểu
Với mi là trọng tâm của cụm Ci, D là khoảng cách giữa hai đối tượng
Hình 8: Tính toán trọng tâm các cụm mới
Thuật toán phân hoạch K-means do MacQeen đề xuất trong lĩnh vực thống
kê năm 1967, 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 :
Trang 23Begin
Bước 1: Khởi tạo :Chọn k trọng tâm {mj}kj=1 ban đầu trong không gian Rd (d là số chiều của dữ liệu, việc chọn có thể ngẫu nhiên hoặc theo kinh nghiệm)
Bước 2 : Tính toán khoảng cách :
Đối với mỗi điểm Xi (1<=i<=n), tính toán khoảng cách của nó tới mỗi trọng tâm mj j=1,k
Tìm trọng tâm gần nhất đối với mỗi điểm
Bước 3 : Cập nhật lại trọng tâm :
Đối với mỗi j=1,k , cập nhật trọng tâm cụm mj bằng các xác định trung bình cộng của các vectơ đối tượng dữ liệu
Bước 4 : Điều kiện dừng:
Lặp các bước 2 và 3 cho đến khi các trọng tâm của cụm không thay đối
Nhận xét: Độ phức tạp của thuật toán là OTkn với T là số lần lặp, n số đối tượng của tập dữ liệu đưa vào
Ưu điểm:
Độ phức tạp nhỏ: O(nkd.t), với :d là số chiều, t số vòng lặp
K-means phân tích phân cụm đơn giản nên có thể áp dụng đối với tập dữ liệu lớn
Nhược điểm:
K-means không có khả năng tìm ra các cụm không lồi hoặc các cụm có
hình dạng phức tạp, chỉ áp dụng với dữ liệu số
Nó không khắc phục được nhiễu và các phần tử ngoại lai
Chất lượng phân cụm phụ thuộc vào nhiều tham số đầu vào như: số cụm k
và k trọng tâm khởi tạo ban đầu
Số lượng và các tham số là do người dùng nhập, nên nếu đầu vào khác nhau thì kết quả các cụm sẽ khác nhau
Trang 24Thuật toán K-tâm:
Ý tưởng :Thuật toán K-tâm phân cụm dữ liệu hỗn hợp là mở rộng của thuật toán K-means cho dữ liệu hỗn hợp trong đó có sử dụng khái niệm Mode của dữ liệu hỗn hợp, khi đã mở rộng các miền giá trị của thuộc tính có thứ tự và xác định khoảng cách giữa các đối tượng
Thuật toán này hội tụ sau một số hữu hạn bước lặp tới điểm cực tiểu địa phương của hàm P như sau: j
z x k
m x
i m x i x i
1,, ,
Định nghĩa Giả sử C là tập con của tập dữ liệu hỗn hợp D
i) Với mọi j n, j-mode của C ( kí kiệu là j-mode(C)) là giá trị có tần xuất nhiều nhất trong thuộc tính Aj của C nếu A là thuộc tính định danh và là trung bình cộng của các giá trị thuộc tính Aj của C khi Aj là thuộc tính số Nếu Aj là thuộc tính định danh và có nhiều giá trị có tần xuất như nhau trong C thì j-mode(C) có thể không duy nhất và ta chọn giá trị nào cũng được
ii) Mode của tập hợp C ký hiệu là mode(C) là phần tử z = (z1, , zn) trong
đó : zj = j-mode(C), j n
b) Metric trên dữ liệu hỗn hợp
Trong lược đồ quan hệ R, miền giá trị của các thuộc tính Aj có thể là tập số thực, định danh hay là tập có thứ tự
Định nghĩa 1: Giả sử DOM(Aj) là miền giá trị của thuộc tính Aj Ta có các khái niệm sau:
i) Thuộc tính định danh: Aj đượcgọi là thuộc tính định danh nếu DOM(Aj)
là tập không có thứ tự, tức là a,b DOM(Aj), hoặc a = b hay ab
ii) Thuộc tính số: A thuộctính số nếu DOM(A) là tập số thực
Trang 25ii) Thuộc tính thứ tự: Nếu DOM(Aj) là tập hữu hạn và có thứ tự hoàn toàn thì Aj được gọi là thuộc tính có thứ tự (chẳng hạn: DOM(Aj) = { không đau, hơi
đau, đau và rất đau}
Trên miền giá trị DOM(Aj) của một thuộc tính Aj ta xác định các khoảng cách như sau
Định nghĩa 2: x,y DOM(Aj) hàm dj(x,y) xác định bởi :
Nếu Aj là thuộc tính số thì dj(x,y)= x y (2.3) Nếu Aj là thuộc tính thứ tự và DOM(Aj) = k
j
j j
a1 2 , ta lấy một hàm đơn điệu fj: DOM(Aj)→ [0,1] sao cho ( 1 ) 0 ; ( k) 1
j j j
f ) Khi đó dj(x,y)= │fj(x) - fj(y) │ (2.4)
Nếu Aj là dữ liệu định danh thì dj(x,y)=
y x khi
: 1
: 0
(2.5)
Định nghĩa khoảng cách giữa hai đối tượng dữ liệu hỗn hợp:
Định nghĩa 3: Giả sử x = (x1, , xn) và y = (y1, , yn) là hai đối tượng dữ liệu hỗn hợp trên D, khoảng cách d(x, y) được tính bởi công thức:
j j d j x j y j y
x
d
2 2 )
Định lý Thuật toán trên hội tụ sau một số hữu hạn bước lặp tới điểm cực
tiểu địa phương của hàm E:
j x c j
j z x d E
Trang 26Chọn k phần tử ban đầu k
j
j
z 1 của D làm tâm các cụm Xếp mỗi x D vào cụm Cj mà nó gần tâm nhất;
For j=1, ,k do z j mode(C j);
Repeat
Phân bố lại cụm theo tâm mới// như k-mean;
Cập nhật lại tâm cho các cụm // nhờ tính mode
Until các cụm không đổi;
Xác định các cụm
End
Nhận xét: Khi thuật toán kết thúc, các đối tượng tâm có thể không thuộc tập
D Để tìm phần tử đại diện cho mỗi cụm, ta lấy phần tử thuộc cụm gần với tâm của nó nhất Như đã nói ở định lý trên, thuật toán chỉ hội tụ tới điểm cực tiểu địa phương của E Để tăng hiệu quả của thuật toán ta có thể kết hợp với thuật toán di truyền hoặc khởi tạo tâm ban đầu bằng phương pháp chuyên gia (theo cách nửa giám sát)
Thuật toán PAM:
Thuật toán này là sự mở rộng của K-means, để khắc phục được dữ liệu nhiễu hoặc các phần tử ngoại lai PAM sử dụng các đối tượng medoid để biểu diễn cho các cụm dữ liệu, một đối tượng medoid là đối tượng đặt tại
vị trí trung tâm nhất bên trong của mỗi cụm
Xác định medoid :Chọn k đối tượng medoid bất kỳ Sau mỗi bước thực hiện, PAM cố gắng hoán chuyển giữa đối tượng medoid Om và một đối tượng Op không phải là medoid, miễn là sự hoán chuyển này nhằm cải tiến chất lượng của phân cụm, quá trình này kết thúc khi chất lượng phân cụm không thay đổi
Ngoài ra, phân cụm phân hoạch còn có thêm một số thuật toán CLARA, thuật toán CLARANS
Trang 272.1.3.2 Các thuật toán trong phân cụm phân cấp
Thuật toán Cure
Phân cụm phân cấp sắp xếp một tập dữ liệu đã cho thành một cấu trúc có dạng hình cây, cây phân cấp này được xây dựng theo kỹ thuật đệ quy Cây phân cụm có thể được xây dựng theo hai phương pháp tổng quát: Phương pháp Top-down và phương pháp Bottom-up
Hình 9: Khái quát thuật toán Cure
Thuật toán CURE được thực hiện như sau:
Chọn một mẫu ngẫu nhiên từ tập dữ liệu ban đầu
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 chính ở đây là: phân hoạch tập 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 của mẫu)
Phân cụm các điểm của mỗi nhóm: Thực hiện phân cụm dữ liệu cho các nhóm cho đến khi mỗi nhóm được phân thành n’/pq cụm (với q>1)
Loại bỏ các phần tử ngoại lai: 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ụ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 pha khởi tạo mẫu dữ liệu, thuật toán sẽ tự động loại bỏ các nhóm nhỏ
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
Đánh dấu dữ liệu với các nhãn tương ứng
Trang 28Hình 10: Các cụm dữ liệu được khám phá bởi thuật toán Cure
Ngoài ra còn một số thuật toán phân cấp điển hình khác như: BRICH, Chemeleon, Agnes, Rock…
2.1.3.3.Các thuật toán phân cụm dựa trên mật độ
Phương pháp của các thuật toán này là nhóm các đối tượng theo hàm mật độ xác định Mật độ được định nghĩa như là số các đối tượng lân cận của một đối tượng dữ liệu theo một ngưỡng nào đó Trong cách tiếp cận này, khi một cụm dữ liệu đã xác định thì nó tiếp tục được phát triển thêm các đối tượng dữ liệu mới miễn là số các đối tượng lân cận của các đối tượng này phải lớn hơn một ngưỡng
đã được xác định trước
Ý tưởng: dựa vào mật độ của các đối tượng để xác định các cụm dữ liệu và
có thể phát hiện ra các cụm dữ liệu với hình thù bất kỳ.Các cụm có thể được xem như các vùng có mật độ cao, được tách ra bởi các vùng không có hoặc ít mật độ Mật độ được xem như là số các đối tượng láng giềng
Thuật toán DBSCAN:
Tư tưởng:
Tìm các đối tượng có số đối tượng láng giêng lớn hơn một ngưỡng tối
thiểu
Một ngưỡng được xác định bằng tập tất cả các đối tượng liên thông mật độ
với các láng giêng của nó
Thuật toán:
Chọn một đối tượng p tùy ý
Lấy tất cả các đối tượng mật độ đến được từ p với Eps và MinPts
Trang 29 Nếu p là điểm nhân tạo thì tạo ra một cụm theo Eps và MinPts
Nếu p là một điểm biên, không có điểm nào là mật độ đến được mật độ từ
p và DBSCAN sẽ đi thăm điểm tiếp theo của tập dữ liệu
Quá trình tiếp tục cho đến khi tất cả các đối tượng được xử lý
Nếu ta chọn sử dụng giá trị toàn cục Eps và MinPts, DBSCAN có thể hòa 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 Độ phức tạp của tính toán trung bình của mỗi truy vấn là O(nlogn)
Hình 11: Hình dạng các cụm được tạo bởi thuật toán DBSCAN
Ngoài thuật toán DBSCAN ra còn có thuật toán OPTICS, thuật toán DENCLUE
2.1.3.4.Phân cụm dựa trên lưới
Ý tưởng: cách tiếp cận dựa trên lưới này không di chuyển các đối tượng trong các ô mà xây dựng nhiều mức phân cấp của nhóm các đối tượng trong một
ô Các cụm không dựa trên độ đo khoảng cách mà nó được quyết định bởi một tham số xác định trước, phương pháp này chủ yếu tập trung áp dụng cho lớp dữ liệu không gian
Ưu điểm: Thời gian xử lý nhanh và độc lập với số đối tượng dữ liệu trong tập dữ liệu ban đầu Thay vào đó là chúng phụ thuộc vào số ô trong mỗi chiều của không gian lưới
Thuật toán STING:
B1: xác định tầng để bắt đầu
B2: với mỗi ô của tầng, tính toán khoảng tin cậy (hoặc ước lượng khoảng) của xác suất mà ô này liên quan tới truy vấn
Trang 30B3: từ khoảng tin cậy của tính toán trên, gán nhãn cho là có liên quan hoặc không liên quan
B4: nếu lớp này là lớp dưới cùng, chuyển sang bước 6; nếu khác thì chuyển sang bước 5
B5: duyệt xuống dưới của cấu trúc cây phân cấp một mức Chuyển sang B2 cho các ô mà hình thành các ô liên quan của lớp có mức cao hơn
B6: Nếu đặc tả câu truy vấn, chuyển B8; Nếu không chuyển sang B7 B7: Truy lục dữ liệu vào trong các ô liên quan và thực hiện xử lý Trả lại kết quả phù hợp yêu cầu truy vấn Chuyển sang B9
B8: Tìm thấy các miền có các ô liên quan Trả lại miền mà phù hợp với yêu cầu của truy vấn chuyển sang B9
B9: Dừng
Ngoài thuật toán STING ra còn có thêm thuật toán phân cụm dựa trên lưới
là CLIQUE có khả năng áp dụng tốt với dữ liệu đa chiều, nhưng lại nhạy cảm với thứ tự của dữ liệu vào Độ phức tạp của nó là O(n)
2.1.3.5.Phân cụm dựa trên mô hình
Phương pháp này cố gắng khám phá các phép xấp xỉ tốt của các tham số mô hình sao cho khớp với dữ liệu một cách tốt nhất.Chúng có thể sử dụng chiến lược phân cụm phân hoạch hoặc chiến lược phân cụm phân cấp, dựa trên cấu trúc hoặc
mô hình mà chúng giả định về tập dữ liệu và cách mà chúng tinh chỉnh các mô hình này để nhận dạng ra các phân hoạch.Các thuật toán áp dụng theo phương pháp này:
Thuật toán EM: là sự mở rộng của K-means, nó gán các đối tượng cho các
cụm đã cho theo xác suất phân phối thành phần của đối tượng đó Phân phối xác suất được sử dụng là phân phối xác suất Gaussian với mục đích là khám phá lặp các giá trị tốt cho các tham số của nó bằng hàm tiêu chuẩn là hàm logarit khả năng của đối tượng dữ liệu, đây là hàm tốt để mô hình xác suất cho các đối tượng
dữ liệu EM có thể khám phá ra nhiều hình dạng cụm khác nhau, tuy nhiên do thời gian lặp của thuật toán khá nhiều nhằm xác định các tham số tốt nên chi phí tính toán của thuật toán khá cao
Trang 312.2 Phân cụm cụm mờ
2.2.1 Tổng quan về phân cụm mờ
Phân cụm dữ liệu hiện nay đã được áp dụng rất nhiều trong cuộc sống của chúng ta Chẳng hạn, trong ngành bưu điện thường hay phân loại thư theo mã nước, trong nước lại phân theo mã tỉnh/thành phố, sau đó lại được phân theo quận /huyện tiếp theo là phân theo xã/phường để gửi thư Đó chính là một ứng dụng của bài toán phân cụm rõ (phân cụm cứng) Vậy phân cụm rõ là gì?
Phân cụm rõ là quá trình phân cụm mà trong đó mỗi điểm dữ liệu thuộc chính xác vào một cụm (hay nói cách khác: Một đối tượng khi đã thuộc cụm này thì thì không thuộc vào cụm khác)
Nhưng trong thực tế không phải lúc nào bài toán phân cụm rõ cũng áp dụng được Chẳng hạn bài toán: Cho chiều cao của người có 3 nhóm như sau: Cao (từ
mờ và chứng minh độ hội tụ của các thuật toán là cực tiểu cục bộ, tối thiểu hóa hàm mục tiêu
Trang 322.2.2 Các thuật toán phân cụm mờ
2.2.2.1 Thuật toán FCM (Fuzzy C-Means)
Thuật toán phân cụm dữ liệu mờ FCM giống như k-means đều sử dụng chung một chiến lược phân cụm dữ liệu FCM chia phân tập dữ liệu ban đầu thành c cụm mờ, trong đó mỗi đối tượng dữ liệu thuộc về các cụm được xác định bởi một hệ số là độ phụ thuộc Uik Є [0, 1] (k là chỉ số của cụm và i biểu thị số thứ tự của đối tượng dữ liệu trong tập dữ liệu ban đầu), hệ số uik này để chỉ quan
hệ giữa các đối tượng với cụm dữ liệu trong quá trình tính toán, hay còn gọi là mức độ phụ thuộc của đối tượng dữ liệu xk vào trung tâm của cụm thứ i
Xác định hàm tiêu chuẩn:
Trong phân cụm mờ, tổng tất cả các phân hoạch mờ có c cụm dữ liệu của
tập dữ liệu có N đối tượng trong không gian D chiều được xác định như sau
N uik uik
uik N k c i RcN
U
E fc
0 , 1 ],
1 , 0 [ 1
U
J m
1 1
2)()
,
( (2.9) Trong đó : U Efc, V=[v1, v2, …, vc] Rpc là ma trận mẫu biểu diễn các giá trị đối tượng tâm của cụm, m là trọng số mũ trong [1,) Hơn nữa, dik được xác định như sau: 2 | |
v x
dik k i A (2.10) Với A là ma trận hữu hạn dương
Trong đó :
Họ các hàm tiêu chuẩn xác định trong công thức (2.9) với tham số mũ
m[ 1, )được đề xuất bởi Bezdek (1982) Sau đây là các điều kiện cần thiết nhằm tối thiểu hàm tiêu chuẩn Jm(U,V).Ta có định lý đã được các nhà khoa học chứng minh:
Trang 33Định lý 1: Nếu m và c là các tham số cố định, và Ik là một tập được định nghĩa như sau :
i
k I c
j
m
jk d ik d
k I i
k I k
I
I i ik
,0
,,
1( )
1( )1
(2.13)
Để có một phân hoạch tối ưu, thì hàm tiêu chuẩn đạt giá trị tối thiểu hay (2.12) và (2.13) phải thoả mãn Từ đó, thuật toán phân cụm mờ FCM được xây dựng như sau:
Input : Số cụm c và tham số mũ m cho hàm tiêu chuẩn J
OutPut : c cụm dữ liệu sao cho hàm tiêu chuẩn (2.9) đạt giá trị tối thiểu Begin
1 Nhập giá trị cho hai tham số c (1<c<N), m ( 1, ) và khởi tạo ma trận mẫu V(0)Rpc, j 0
2 Repeat
2.1 j = j + 1;
2.2 Tính ma trận phân hoạch mờ Uj theo công thức (2.12) 2.3 Cập nhật các trọng tâm V(j) = [v1(j), v2(j), …, vc(j) ] dựa vào (2.13) và ma trận Uj;
3 Untill (|| U(j+1) – U(j) ||F );
Trang 34|| và tham số được cho trước.
Việc chọn các tham số cụm rất ảnh hưởng đến kết quả phân cụm, tham số này thường được chọn theo phép ngẫu nhiên hoặc theo kinh nghiệm Chưa có quy tắc nào nhằm lựa chọn tham số m đảm bảo việc phân cụm hiệu quả, thông thường người ta chọn m = 2
Ưu điểm: áp dụng thành công trong giải quyết một số lớn các bài toán Phân cụm dữ liệu như trong nhận dạng mẫu, xử lý ảnh, y học,…
Nhược điểm lớn nhất của thuật toán FCM là nhạy cảm với các nhiễu và phần tử ngoại lai trong dữ liệu, nghĩa là các trung tâm cụm có thể nằm xa so với trung tâm thực của cụm Do đó các cụm dữ liệu được khám phá có thể rất lệch
so với các cụm trong thực tế.Việc khử nhiễu và phần tử ngoại lai là một vấn đề cần phải được giải quyết
Đã có nhiều các phương pháp đề xuất để cải tiến cho nhược điểm trên của thuật toán FCM bao gồm : Phân cụm dựa trên xác suất (keller, 1993), phân cụm nhiễu mờ (Dave, 1991), Phân cụm dựa trên toán tử LP Norm (Kersten, 1999)
t 0, , , ε là tham số phi nhạy cảm với nhiễu
Khi đó hàm mục tiêu εFCM được định nghĩa như sau:
m n
k
c
i u ik V
U m
1 1( ))
v k
x
1,
Trang 35Định lý: Nếu m, c và ε là các tham số cố định, hàm mục tiêu (2.14) đạt giá
trị tối thiểu khi và chỉ khi:
11
11
0,,
c j
m i
v k
x m
i v k x
k I k
I i
k I
I i ik u
ik
u n k
kl x
i A k k kl
x il
v p l c
Trong đó:
(0,( )m )
ik u i
k và n
n
) ( , 0 ,
1 1
x i
A i
x i
A i A Card p
(
11
Thuật toán εFCM là cải tiến của thuật toán FCM ở trên trong việc khắc phục
dữ liệu chứa nhiễu và dữ liệu có chứa các phần tử ngoại lai Thuật toán được trình bày như sau:
Input: số cụm c và các tham số m, ε cho hàm mục tiêu J
Output: các cụm dữ liệu sao cho hàm mục tiêu (2.14) đạt giá trị cực tiểu Begin
B1: nhập tham số c(1<c<n), m[1,+∞], ε>=0
Khởi tạo ma trận V=[vij], V(0)ЄRsxc thiết lập j=0;
B2: Repeat
J=j+1;