Trang 6 một số thuật toán của phương pháp phân cụm dữ liệu nửa giám sát.. Một trong các hướng đó là phân cụm dữ liệu, với các phương pháp phân cụm khác nhau.. Ở khóa luận này, em xin trì
Trang 1Trang 1
KHOA CÔNG NGHỆ THÔNG TIN
-o0o -
ĐỖ THỊ PHƯƠNG
THUẬT TOÁN PHÂN CỤM DỮ LIỆU
NỬA GIÁM SÁT
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học:
TS TRỊNH ĐÌNH THẮNG
Hà Nội - 2012
Trang 2Trang 2
Mục Lục
LỜI CẢM ƠN
LỜI CAM ĐOAN
MỞ ĐẦU 4
Chương 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 10
1.1 Tổng quan về khám phá tri thức trong cơ sở dữ liệu 10
1.2 Khái niệm khai phá dữ liệu (Data mining) 12
1.3 Các phương pháp khai phá dữ liệu 12
1.3.1 Các nhiệm vụ của khai phá dữ liệu 12
1.3.2.Phân loại 13
1.4 Ứng dụng của khai phá dữ liệu 14
Chương 2: PHÂN CỤM DỮ LIỆU VÀ CÁC THUẬT TOÁN ĐIỂN HÌNH 15
2.1 Khái niệm phân cụm dữ liệu 15
2.2 Các kiểu dữ liệu và độ đo tương tự 15
2.2.1. Phân loại kiểu dự liệu dựa trên kích thước miền 15
2.2.2. Phân loại kiểu dữ liệu dựa trên hệ đo 15
2.2.3. Phép đo độ tương tự, phi tương tự 16
2.3 Các ứng dụng của phân cụm dữ liệu 20
2.4 Các phương pháp và thuật toán điển hình liên quan đến phân cụm dữ liệu không giám sát 20
2.4.1. Phân cụm phân hoạch 20
2.4.2 Phân cụm phân cấp 26
Trang 3Trang 3
2.4.3 Thuật toán K-Tâm 32
2.5 Các phương pháp và thuật toán điển hình liên quan đến PCDL nửa giám sát 34
2.5.1 K-Means bán giám sát với một phần dữ liệu đã gán nhãn: Seeded-KMeans và Constrained-Seeded-KMeans 35
2.5.2 K-Means bán giám sát trên cơ sở các ràng buộc: COP-Kmeans 38
Chương 3: XÂY DỰNG ỨNG DỤNG 40
3.1 Giới thiệu ngôn ngữ Visual Basic 6.0 40
3.1.1 Cấu trúc một đề án (Project) 40
3.1.2 Một số điều khiển 41
3.1.3 Thuộc tính, phương thức và sự kiện 41
3.1.4 Mô hình truy cập cơ sở dữ liệu bằng ADO 42
3.1.5 Hệ quản trị Cơ sở dữ liệu ACCESS 43
3.2 Xây dựng ứng dụng 44
3.2.1.Giới thiệu 44
3.2.2 Bài toán 45
3.2.3.Cài đặt thuật toán phân cụm nửa giám sát với dữ liệu hỗn hợp 49
3.2.4 Giao diện chương trình 51
KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 54
1 Kết luận 54
2. Định hướng phát triển 55
TÀI LIỆU THAM KHẢO 56
Trang 4ồ ạt và nhanh chóng các hoạt động sản xuất, kinh doanh cũng như nhiều lĩnh vực hoạt động khác đã tạo ra cho chúng ta một lượng dữ liệu lưu trữ khổng lồ Hàng triệu CSDL đã được sử dụng trong các hoạt động sản xuất, kinh doanh, quản lí; trong đó, có nhiều CSDL cực lớn cỡ Gigabyte, thậm chí là Terabyte Trong tình hình đó, các kĩ thuật khai phá dữ liệu đã trở thành một lĩnh vực thời sự của nền Công nghệ thông tin
Một vấn đề được đặt ra là phải làm sao trích chọn được những thông tin
có ý nghĩa từ tập dữ liệu lớn, để từ đó có thể giải quyết được các yêu cầu của thực tế như trợ giúp ra quyết định, dự đoán,… Khai phá dữ liệu (Data mining)
đã ra đời nhằm giải quyết các yêu cầu đó Quá trình khai phá dữ liệu được
định nghĩa là: Quá trình trích xuất các thông tin có giá trị tiềm ẩn bên trong
lượng lớn dữ liệu được lưu trữ trong các CSDL, kho dữ liệu… Hiện nay,
ngoài thuật ngữ khai phá dữ liệu, người ta còn dùng một số thuật ngữ khác có
ý nghĩa tương tự như: khai phá tri thức từ cơ sở dữ liệu (knowlegde mining from databases), trích lọc dữ liệu (knowlegde extraction), khảo cổ dữ liệu (data archaeology), nạo vét dữ liệu (data dredging) Nhiều người coi khai phá
dữ liệu và một thuật ngữ thông dụng khác là khám phá tri thức trong cơ sở dữ liệu (Knowlegde Discovery in Databases – KDD) là như nhau Tuy nhiên trên
Trang 5là quá trình tìm kiếm để phân ra các cụm dữ liệu, các mẫu dữ liệu từ tập cơ sở
dữ liệu lớn Phân cụm dữ liệu là một phương pháp học không giám sát
Trong những năm trở lại đây, do phương pháp phân cụm dữ liệu không giám sát còn nhiều nhược điểm chưa đáp ứng được nhu cầu sử dụng thông tin
Để giải quyết vấn đề đó, một hướng đi mới đó là phương pháp phân cụm dữ liệu nửa giám sát, ra đời dựa trên cơ sở học không giám sát và học có giám sát Dù là một phương pháp phân cụm chưa hoàn thiện nhưng nó đã phần nào khắc phục được những hạn chế và phát huy ưu điểm của phương pháp phân cụm không giám sát
Do đó, em chọn đề tài: “Thuật toán phân cụm dữ liệu nửa giám sát” để
trình bày trong bài khóa luận tốt nghiệp của mình
2 Mục đích nghiên cứu
Trong bài khóa luận này em xin trình bày theo các mục đích sau:
Tìm hiểu qua về các quá trình khám phá tri thức, khai phá dữ liệu
Tìm hiểu về phân cụm dữ liệu và một số thuật toán phân cụm dữ liệu không giám sát
Trên nền tảng lý thuyết về khai phá dữ liệu và một số thuật toán phân cụm không giám sát tiến tới đi sâu vào tìm hiểu, phân tích, đánh giá
Trang 6Trang 6
một số thuật toán của phương pháp phân cụm dữ liệu nửa giám sát
(Thuật toán Seeded-KMeans và Constrained-KMeans)
Xây dựng một chương trình demo, mô phỏng hoạt động của phương pháp phân cụm dữ liệu nửa giám sát
3 Phạm vi nghiên cứu
Data mining là một lĩnh vực thu hút được rất nhiều sự quan tâm của các nhà nghiên cứu, với nhiều ngành ứng dụng Một trong các hướng đó là phân cụm dữ liệu, với các phương pháp phân cụm khác nhau Ở khóa luận này, em xin trình bày về một số phương pháp phân cụm dữ liệu nửa giám sát với các
thuật toán tiêu biểu như thuật toán Seeded-Kmeans và Constrained-Kmeans
4 Ý nghĩa khoa học và thực tiễn
Nếu đề tài “Thuật toán phân cụm dữ liệu nửa giám sát” được nghiên
cứu thì sẽ đạt hiệu quả phân cụm tối ưu hơn phân cụm dữ liệu không giám sát
và sẽ giúp xử lý dữ liệu nhanh hơn, giảm thời gian, công sức để tìm kiếm, phát hiện các cụm, các mẫu dữ liệu trong tập dữ liệu lớn để cung cấp thông tin trợ giúp việc ra quyết định, dự đoán
5 Phương pháp nghiên cứu
a Phương pháp nghiên cứu lý luận
Nghiên cứu qua việc đọc sách, báo và các tài liệu liên quan nhằm xây dựng cơ sở lý thuyết của đề tài và các biện pháp cần thiết để giải quyết các vấn đề của đề tài
b Phương pháp chuyên gia
Tham khảo ý kiến của các chuyên gia để có thể thiết kế chương trình phù hợp với yêu cầu thực tiễn Nội dung xử lý nhanh đáp ứng được yêu cầu ngày càng cao của người sử dụng
Trang 7Trang 7
c Phương pháp thực nghiệm
Thông qua quan sát thực tế, yêu cầu của cơ sở, những lý luận được nghiên cứu và kết quả đạt được qua những phương pháp trên
6 Cấu trúc khóa luận
Ngoài phần mở đầu, kết luận và định hướng phát triển thì luận văn của
em bao gồm ba chương:
Chương 1: Tổng quan về khai phá dữ liệu
Chương 2: Phân cụm dữ liệu và các thuật toán điển hình
Chương 3: Xây dựng ứng dụng
Trang 8Trang 8
DANH SÁCH CÁC HÌNH
Hình 1: Quá trình khám phá tri thức trong CSDL
Hình 2: Các thiết lập để xác định danh giới các cụm ban đầu Hình 3:Tính toán trọng tâm của các cụm mới
Hình 4: Phân cụm phân cấp Top-down và Bottom-up
Hình 5: Các cụm dữ liệu đƣợc khám phá bởi CURE
Hình 6: Cấu trúc cây CF
Trang 9Trang 9
DANH SÁCH CÁC CỤM TỪ VIẾT TẮT
1 CNTT Information Technology Công nghệ thông tin
3 KDD Knowledge Discovery in
Database
Khám phá tri thức trong cơ sở dữ liệu
6 MTĐT Electronic Computer Máy tính điện tử
Trang 10Trang 10
Chương 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1 Tổng quan về khám phá tri thức trong cơ sở dữ liệu
Các yêu cầu về thông tin trong các loại hoạt động như công tác quản lý, hoạt động kinh doanh, phát triển sản xuất và dịch vụ, đặc biệt là trong việc ra quyết định giải quyết một vấn đề ngày càng đòi hỏi chất lượng cao hơn Người làm quyết định không những cần dữ liệu mà còn cần có thêm nhiều hiểu biết, nhiều tri thức để hỗ trợ cho việc ra quyết định của mình Để giải
quyết vấn đề đó thì kỹ thuật khám phá tri thức trong cơ sở dữ liệu (Knowledge
Discovery in Databases- KDD) đã ra đời Khám phá tri thức trong cơ sở dữ
liệu là lĩnh vực liên quan đến các ngành như: xác suất thống kê, học máy, trực quan hóa dữ liệu, tính toán song song,… Quá trình KDD có thể chia thành 5 bước thực hiện như sau:
dựa trên quan điểm của người dùng, thu thập và chuẩn bị dữ liệu để khai phá
những thông tin có thể gây nhiễu, tập hợp những thông tin cần thiết cho
mô hình hoá, chọn các phương pháp xử lý những thông tin bị khiếm khuyết
những đặc trưng phù hợp để mô tả và khai phá dữ liệu
cụm, hồi qui, kết hợp… Từ nhiệm vụ đã chọn, sử dụng các thuật toán
Trang 11Trang 11
và các phương pháp đã biết để tìm kiếm các mẫu trong dữ liệu, chọn ra các mẫu hữu ích
hoặc phiên dịch thành những tri thức hiểu được
Chuyển đổi
Khai phá
DL
đã chọn
DL qua tiền xử
lý
DL đã chuyển đổi
Các mẫu
Tri thức
Hình 1: Quá trình khám phá tri thức trong CSDL
Trang 12Trang 12
1.2 Khái niệm khai phá dữ liệu (Data mining)
Data mining là một công đoạn, cũng là một khâu quan trọng nhất trong quá trình KDD Do sự phát triển mạnh mẽ của Data mining về phạm vi các lĩnh vực ứng dụng trong thực tế và các phương pháp tìm kiếm nên có rất nhiều khái niệm khác nhau về Data mining Ở đây em xin nêu ra một định nghĩa gắn gọn và dễ hiểu về Data mining như sau:
Data mining là một quá trình tìm kiếm, chắt lọc các tri thức mới, tiềm ẩn, hữu dụng trong tập dữ liệu lớn
1.3 Các phương pháp khai phá dữ liệu
1.3.1 Các nhiệm vụ của khai phá dữ liệu
Một số nhiệm vụ của khai phá dữ liệu:
dự báo giá trị có thể đúng của những dữ liệu bị thiếu hoặc sự phân bố của thuộc tính nào đó trong dữ liệu Phân lớp còn được gọi là học có giám sát
trong cơ sở dữ liệu
Giả sử có hai tập thuộc tính {A1, A2,…An} và {B1, B2,…Bm} thì luật kết hợp có dạng (A1 A2…An) (B1 B2…Bm )
thêm tính thứ tự và tính thời gian Một luật mô tả mẫu tuần tự có dạng tiêu biểu X → Y phản ánh sự xuất hiện của biến cố X sẽ dẫn đến việc xuất hiện kế tiếp biến cố Y Hướng tiếp cận này có tính dự báo cao
Trang 13Trang 13
cụm chưa được biết trước) Các đối tượng được gom cụm sao cho mức
độ tương tự giữa các đối tượng trong cùng một cụm là lớn nhất và mức
độ tương tự giữa các đối tượng nằm trong các cụm khác nhau là nhỏ nhất Phân cụm còn được gọi là học không có giám sát
1.3.2 Phân loại
Data mining được phân loại theo hai quan điểm sau:
a Theo quan điểm của học máy
dữ liệu dựa trên một bộ các đối tượng huấn luyện và các thông tin về nhãn lớp đã biết
lớp hay cụm dữ liệu tương tự nhau mà chưa biết trước các thông tin về nhãn lớp
dựa trên một số thông tin bổ trợ cho trước
b Theo các lớp bài toán cần giải quyết
trước Phân lớp và dự đoán còn được gọi là học có giám sát
luật kết hợp được mô tả như sau:
Nếu a thì b với xác suất p
có thêm tính thứ tự và thời gian
Trang 14Trang 14
Đây là phương pháp học không giám sát
tắt văn bản
1.4 Ứng dụng của khai phá dữ liệu
chính và dự báo giá của các loại cổ phiếu trong thị trường chứng khoán Danh mục vốn và giá, lãi suất, dữ liệu thẻ tín dụng, phát hiện gian lận
bệnh, chẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc)
văn bản
tìm kiếm, so sánh các hệ gene và thông tin di truyền, mối liên hệ gene và một số bệnh di truyền
ngành viễn thông được chia thành 3 nhóm ứng dụng khác nhau là phát hiện gian lận, các ứng dụng hỗ trợ tiếp thị và quản lý khách hàng, cuối cùng là các ứng dụng về phát hiện và xử lý lỗi hệ thống mạng
Trang 15Trang 15
Chương 2 PHÂN CỤM DỮ LIỆU VÀ CÁC THUẬT TOÁN ĐIỂN HÌNH
2.1 Khái niệm phân cụm dữ liệu
Phân cụm dữ liệu là một kỹ thuật phát triển mạnh mẽ trong nhiều năm trở lại đây do các ứng dụng và lợi ích to lớn của nó đối với các lĩnh vực trong thực tế Ở một mức cơ bản nhất, người ta định nghĩa phân cụm dữ liệu như sau:
Phân cụm dữ liệu là một kỹ thuật 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 và quan trọng trong tập
dữ liệu lớn để từ đó cung cấp thông tin, tri thức cho việc ra quyết định
Do đó, PCDL là quá trình phân chia một tập dữ liệu ban đầu thành các
cụm dữ liệu, sao cho các đối tượng trong một cụm thì “tương tự” nhau và các đối tượng trong các cụm khác nhau thì “phi tương tự” với nhau Số cụm dữ
liệu được xác định bằng kinh nghiệm hoặc bằng một số phương pháp phân cụm
2.2 Các kiểu dữ liệu và độ đo tương tự
2.2.1 Phân loại kiểu dữ liệu dựa trên kích thước miền
2.2.2 Phân loại kiểu dữ liệu dựa trên hệ đo
Giả sử có hai đối tượng x, y và các thuộc tính x i , y i 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:
nhị phân, trong đó miền giá trị là rời rạc không phân biệt thứ tự, có nhiều
Trang 16Trang 16
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
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, ta có thể xác định một thuộc tính là đứng trước hay
đứng sau thuộc tính khác với một khoảng là bao nhiêu Nếu x i > y i thì ta
nói x cách y một khoảng x i y i tương ứng với thuộc tính thứ i
cách tương đối so với điểm mốc Thí dụ như thuộc tính chiều cao hoặc cân nặng lấy giá trị 0 làm mốc
Người ta còn đặc biệt quan tâm đến dữ liệu không gian Dữ liệu không gian có thể là dữ liệu liên tục hoặc rời rạc
chiều và cho phép ta xác định được khoảng cách giữa các đối tượng dữ liệu trong không gian
2.2.3 Phép đo độ tương tự, phi tương tự
Khi các đặc tính của dữ liệu được xác định, người ta tìm cách thích hợp
để xác định “khoảng cách” giữa các đối tượng Đây là các hàm để đo sự
giống nhau giữa các cặp đối tượng dữ liệu, thông thường các hàm này hoặc là
để tính độ “tương tự” hoặc tính độ “phi tương tự” giữa các đối tượng dữ liệu
Giá trị của hàm tính độ đo tương tự càng lớn thì sự giống nhau giữa các đối tượng càng lớn và ngược lại Ứng với mỗi kiểu dữ liệu thì có một hàm tính độ
Trang 17Trang 17
đo tương tự để xác định khoảng cách giữa 2 phân tử của cùng một kiểu dữ liệu Tất cả các độ đo đều được xác định trong không gian metric Bất kỳ một metric nào cũng là một độ đo nhưng ngược lại thì không đúng Độ đo ở đây
có thể là tương tự hoặc phi tương tự
Một tập dữ liệu X là không gian metric nếu:
Với mỗi cặp x, y thuộc X đều xác định được một số thực d(x, y) theo một quy tắc nào đó và được gọi là khoảng cách của x, y
Quy tắc đó phải thoả mãn các tính chất sau:
Thuộc tính nhị phân chỉ có hai giá trị là 0 và 1 Trong đó 0 có nghĩa là sai và
1 có nghĩa là đúng
y:1 y:0 x: 1 +
x: 0 +
+ +
Trang 18Trang 18
Nếu ta đặt = +++ Với x, y là đối tượng có tất cả thuộc tính đều
ở dạng nhị phân.Trong đó , , , được hiểu như sau:
là tổng số các thuộc tính có giá trị là 1 trong cả hai đối tượng x, y
là tổng số các thuộc tính có giá trị 1 trong x và 0 trong y
là tổng số các thuộc tính có giá trị 0 trong x và 1 trong y
là tổng số các thuộc tính có giá trị là 0 trong cả hai đối tượng x, y Khi đó độ tương tự được cho như sau:
1 Hệ số đối sánh đơn giản: d x y( , )
có giá trị 1 lớn hơn rất nhiều các thuộc tính có giá trị 0, tức là các thuộc tính nhị phân ở đây không đối xứng
Sau khi chuẩn hóa, độ đo phi tương tự của x và y được tính bằng các metric khoảng cách sau:
Trang 19Nó là trường hợp của khoảng cách Minkowski với q = 1
Độ đo phi tương tự giữa hai đối tượng x và y được xác định qua công thức:
p là tổng số các thuộc tính
Độ đo phi tương tự được tính thông qua các bước sau:
1 Gọi f là một thuộc tính thứ tự, giá trị của f ứng với đối tượng thứ i là
xif Giả sử f có Mf trạng thái có thứ tự: 1, 2, …, Mf Ta thay thế mỗi xifbởi giá trị tương ứng rif [1,Mf]
2 Vì mỗi thuộc tính f có thứ tự có số lượng các trạng thái khác nhau nên
ta cần làm cho rif thuộc khoảng [0,1] để mỗi thuộc tính đều có cùng trọng
số Do đó rif được thay thế bởi if if
1z
1
f
r M
Có nhiều cách để tính độ tương tự giữa các thuộc tính tỉ lệ Một trong
Trang 20Trang 20
số đó là việc sử dụng công thức tính logarit để chuyển mỗi thuộc tính tỉ lệ xi
về dạng thuộc tính khoảng i = log(xi)
2.3 Các ứng dụng của phân cụm dữ liệu
khách hàng quan trọng có cá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
các gene với chức năng tương đồng và thu được các cấu trúc trong các mẫu
động phân tích và xử lý các dữ liệu không gian trong kho dữ liệu không gian đồ sộ
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
2.4 Các phương pháp và thuật toán điển hình liên quan đến phân cụm
dữ liệu không giám sát
2.4.1 Phân cụm phân hoạch
Phương pháp phân cụm phân hoạch nhằm 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 í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
Trang 21Có rất nhiều thuật toán phân cụm phân hoạch như: Means, Medoids, CLASA (Clustering Large Applications based on Simulated Annealing),… Ở đây em xin trình bày về hai thuật toán điển hình liên quan đến khóa luận của mình là K-Means và K-Medoids
K-2.4.1.1 Thuật toán K-Means
Đây là thuật toán nổi tiếng và được sử dụng nhiều nhất Thuật toán này
có nhiều biến thể khác nhau nhưng được đưa ra đầu tiên bởi J.B MacQueen vào năm 1967 Đầu vào của thuật toán này là một tập gồm n mẫu và một số nguyên k Cần phân n đối tượng này thành k cụm sao cho sự giống nhau giữa các mẫu trong cùng cụm là cao hơn các đối tượng khác cụm
Phương pháp này dựa trên độ đo khoảng cách của các đối tượng dữ liệu trong cụm Trong đó, mỗi trung tâm của cụm là giá trị trung bình của các phần tử trong cụm Như vậy, nó cần khởi tạo một tập các trung tâm cụm ban đầu, và thông qua đó nó lặp lại các bước gồm gán mỗi đối tượng tới cụm
Trang 22Trang 22
trung tâm gần, và tính toán lại trung tâm của mỗi cụm trên cơ sở gán mới cho các đối tượng Quá trình này dừng khi các trung tâm hội tụ
Hình 2: Các thiết lập để xác định danh giới các cụm ban đầu
Mục đích của thuật toán K-Means là sinh k cụm dữ liệu {C1, C2,…, Ck } từ tập
dữ liệu chứa n đối tượng trong không gian d chiều Xi = {xi1, xi2,…xid}, i =
1n, sao cho hàm tiêu chuẩn:
1
2
) (
đạt giá trị tối thiểu Trong đó: mi là trọng tâm của cụm Ci, D là khoảng cách giữa hai đối tượng Trọng tâm của cụm là một vectơ, trong đó giá trị của mỗi phần tử của nó là trung bình cộng của các thành phần tương ứng của các đối tượng dữ liệu trong cụm đang xét Tham số đầu vào của thuật toán là số cụm k, 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 Hàm tiêu chuẩn và độ đo khoảng cách có thể được xác định cụ thể hơn tùy vào ứng dụng hoặc quan điểm của người dùng
Trang 23Trang 23
Hình 3: Tính toán trọng tâm của các cụm mới
Bước 2: Tính toán khoảng cách
Đối với mỗi điểmX i (1i n), tính toán khoảng cách của nó tới mỗi
trọng tâmm j với 1i k
Sau đó tìm trọng tâm gần nhất đối vớ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 m j bằng cách xác định trung bình cộng các vecto đối tƣợng dữ liệu
Trang 24- Giá trị k cần được xác định trước bởi người dùng
- Có khả năng mở rộng, có thể dễ dàng sửa đổi với những dữ liệu mới
- Bảo đảm hội tụ sau 1 số bước lặp hữu hạn
- Luôn có k cụm dữ liệu
- Luôn có ít nhất 1 điểm dữ liệu trong 1 cụm dữ liệu
- Các cụm không phân cấp và không bị chồng chéo dữ liệu lên nhau
- Mọi thành viên của 1 cụm là gần với chính cụm đó hơn bất cứ 1 cụm nào khác
- Rất nhạy cảm với nhiễu và các phần tử ngoại lai trong dữ liệu
- Không phải lúc nào mỗi đối tượng cũng chỉ thuộc về 1 cụm
- K-Means không khắc phục được nhiễu
Trang 25Trang 25
2.4.1.2 Thuật toán K-Medoids (PAM)
Thuật toán K-Medoids (PAM) được đề xuất năm 1987 bởi Kaufman và Rousseeuw, 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 phần tử ngoại lai
Ý tưởng chính của K-Medoids là 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 (medoid) 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 medoid là ít nhất
Bước 2: Gán từng đối tượng còn lại vào cụm có medoid gần nhất
Bước 3: Chọn nonmedoid và thay một trong các medoids bằng nó nếu nó cải
thiện chất lượng cụm
Bước 4: Quay về bước 2, dừng khi các trung tâm cụm hội tụ
End
K-Medoids tỏ ra hiệu quả hơn K-Means trong trường hợp dữ liệu có nhiễu hoặc đối tượng ngoại lai (Outlier) Nhưng so với K-Means thì K-Medoids có độ phức tạp tính toán lớn hơn Nó cũng có nhược điểm là số lượng cụm k phải được cung cấp bởi người dùng
Trang 26Trang 26
2.4.2 Phân cụm phân cấp
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ấp có thể được xây dựng theo hai phương pháp tổng quát là 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 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 hòa 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 thỏa mãn
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 cho đến khi điều kiện dừng thỏa mãn
Sau đây là hình minh họa hai phương pháp Bottom-up và Top-down:
Trang 27Trang 27
Sau đây em xin trình bày hai thuật toán điển hình của phương pháp phân cụm phân cấp đó là: CURE và BIRCH
2.4.2.1 Thuật toán CURE
Thuật toán CURE (Clustering Using REpresentatives) được đề xuất bởi Sudipto Guha, Rajeev Rastogi và Kyuseok Shim năm 1998, thuật toán sử dụng chiến lược bottom-up của phương pháp phân cụm phân cấp Thuật toán CURE sử dụng nhiều đối tượng để biểu diễn cho một cụm thay vì sử dụng các trọng tâm hay đối tượng tâm Các đối tượng đại diện của một cụm ban đầu được chọn rải rác đều ở các vị trí khác nhau, sau đó chúng được di chuyển
Hình 4: Phân cụm phân cấp Top-down và Bottom-up
ab
Trang 28Trang 28
bằng cách co lại theo một tỉ lệ nhất định nào đó Khi hai cụm có cặp đối tượng đại diện gần nhất sẽ được trộn lại thành một cụm
Bước 1: Chọn một mẫu ngẫu nhiên S từ tập dữ liệu ban đầu
Bước 2: Phân hoạch mẫu S này thành các nhóm dữ liệu có kích thước bằng
nhau Ý tưởng chính ở đây là phân hoạch mẫu S 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 (với n’ là kích
thước của mẫu)
Bước 3: Phân cụm các điểm cho mỗi nhóm: Tiến hành phân cụm riêng rẽ cho
mỗi nhóm đến khi mỗi nhóm được phân thành n’/(pq) cụm (với
q>1)
Bước 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 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ỏ
Bước 5: Phân cụm cho các cụm riêng biệt: Các đối tượng đại diện được di
chuyển về phía tâm của cụm mới hình thành Các đối tượng này sẽ
mô tả hình dạng cụm đó
Bước 6: Đánh dấu dữ liệu với các nhãn cụm tương ứng
Hình ảnh sau là thí dụ về các dạng và kích thước cụm dữ liệu được khám phá bởi CURE: