Thuật toán Phân cụm dữ liệu nửa giám sát
Trang 1Em xin trân trọng cảm ơn thầy Trần Hữu Nghị - Hiệu trưởng trường Đại Học
Dân Lập Hải Phòng đã ủng hộ, động viên, và tạo mọi điều kiện tốt nhất để em có thể hoàn thành khoá học tại trường
Cuối cùng em xin gửi lời cảm ơn tới tất cả người thân cùng bạn bè đã động viên, giúp đỡ và đóng góp nhiều ý kiến quý báu cho em trong quá trình học tập cũng như khi làm tốt nghiệp
Hải Phòng, tháng7 năm 2007
Sinh viên
Lưu Tuấn Lâm
Trang 2GIỚI THIỆU
Trong vài thập niên gần đây, cùng với sự thay đổi và phát triển không ngừng của ngành công nghệ thông tin nói chung và trong các ngành công nghệ phần cứng, phân mềm, truyền thông và hệ thống các dữ liệu phục vụ trong các lĩnh vực kinh tế - xã hội nói riêng Thì việc thu thập thông tin cũng như nhu cầu lưu trữ thông tin càng ngày càng lớn Bên cạnh đó việc tin học hoá một cách ồ ạt và nhanh chóng các hoạt động sản xuất, kinh doanh cũng như nhiều lĩnh vực hoạt động khác đã tạo ra cho chúng ta một lượng dữ liệu lưu trữ khổng lồ Hàng triệu Cơ sở dữ liệu đã được sử dụng trong các hoạt động sản xuất, kinh doanh, quản lí , trong đó có nhiều Cơ sở dữ liệu cực lớn cỡ Gigabyte, thậm chí là Terabyte Sự bùng nổ này đã dẫn tới một yêu cầu cấp thiết là cần có những kĩ thuật
và công cụ mới để tự động chuyển đổi lượng dữ liệu khổng lồ kia thành các tri thức có ích Từ đó, các kĩ thuật Khai phá dữ liệu đã trở thành một lĩnh vực thời sự của nền Công nghệ thông tin thế giới hiện nay Một vấn đề được đặt ra là phải làm sao trích chọn được những thông tin có ý nghĩa từ tập dữ liệu lớn để từ đó có thể giải quyết được các yêu cầu của thực tế như trợ giúp ra quyết định, dự đoán,… và Khai phá dữ liệu (Data mining) đã
ra đời nhằm giải quyết các yêu cầu đó Khai phá dữ liệu được định nghĩa là: 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 Cơ sở dữ liệu, kho dữ liệu… Hiện nay, ngoài thuật ngữ khai phá dữ liệu, người ta còn dùng một số thuật ngữ khác có ý nghĩa tương tự như: khai phá tri thức từ Cơ sở dữ liệu (knowlegde mining from databases), trích lọc dữ liệu (knowlegde extraction), phân tích dữ liệu/mẫu (data/pattern analysis), khảo cổ dữ liệu (data archaeology), nạo vét dữ liệu (data dredging) Nhiều người coi khai phá dữ liệu và một thuật ngữ thông dụng khác
là khám phá tri thức trong Cơ sở dữ liệu(Knowlegde Discovery in Databases – KDD) là như nhau Tuy nhiên trên thực tế, khai phá dữ liệu chỉ là một bước thiết yếu trong quá trình Khám phá tri thức trong Cơ sở dữ liệu
Ngay từ những ngày đầu khi xuất hiện, Data mining đã trở thành một trong những
xu hướng nghiên cứu phổ biến trong lĩnh vực học máy và công nghệ tri thức Nhiều thành tựu nghiên cứu của Data mining đã được áp dụng trong thực tế Data mining có nhiều hướng quan trọng và một trong các hướng đó là phân cụm dữ liệu (Data Clustering) Phân cụm dữ liệu là quá trính tìm kiếm để phân ra các cụm dữ liệu, các mẫu
dữ liệu từ tập Cơ sở dữ liệu lớn Phân cụm dữ liệu là một phương pháp học không giám sát
Trong những năm trở lại đây, do phương pháp phân cụm dữ liệu không giám sát còn nhiều nhược điểm vì vậy dựa trên học không giám sát và học có giám sát đã ra đời
Trang 3sát Phương pháp phân cụm nửa giám sát không phải là một phương pháp phân cụm 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 những ưu điểm, tầm quan trọng cũng như xu hướng phát triển của khám phá tri thức trong Cơ sở dữ liệu(Knowlegde Discovery in Databases – KDD) Và đây còn là một lĩnh vực mới lạ đồi với em, vì vậy em đã chọn đề tài Phân cụm dữ liệu nửa giám sát làm đề tài tốt nghiệp của mình Em mong muốn có thể học hỏi và tìm hiểu sâu hơn về kỹ thuật khai phá dữ liệu, từ đó tạo cho bản thân những kiến thức cơ bản để sau này có thể
đi sâu nghiên cứu và tìm hiểu về lĩnh vực KDD
Nội dung bài đồ án tốt nghiệp ngoài phần giới thiệu, kết luận, và tìa liệu than khảo gồm có 5 chương :
Chương 1 : Giới thiệu tổng quan về Datamining
Chương 2 : Giời thiệu về phân cụm dữ liệu và các kỹ thuật tiếp cận trong phân cụm
dữ liệu
Chương 3 : Trình bày về một số phương pháp và thuật toán Phân cụm dữ liệu không
giám sát
Chương 4 : Trình bày một số thuật toán phân cụm dữ liệu nửa giám sát
Chương 5 : Bài toán ứng dụng
Trang 4MỤC LỤC
LỜI CẢM ƠN 1
GIỚI THIỆU 2
Chương 1 : TỔNG QUAN VỀ DATA MINING 5
1.1 Giới thiệu về khám phá tri thức 5
1.2 Khai phá dữ liệu và các khái niệm liên quan 6
1.2.1 Khái niệm khai phá dữ liệu 6
1.2.2 Các kỹ thuật tiếp cận trong khai phá cữ liệu 6
Chương 2 : PHÂN CỤM DỮ LIỆU VÀ CÁC KỸ THUẬT TIẾP CẬN 7
2.1 Khái quát về phân cụm dữ liệu 7
2.2 Các kiểu dữ liệu và độ đo tương tự 7
2.3 Những kỹ thuật tiếp cận trong phân cụm dữ liệu 10
2.3.1 Phân cụm phân hoạch .10
2.3.2 Phân cụm dữ liệu phân cấp 10
2.3.3 Phân cụm dữ liệu dựa trên mật độ 11
2.3.4 Phân cụm dữ liệu dựa trên lưới 11
2.3.5 Phân cụm dữ liệu dựa trên mô hình 11
2.3.6 Phân cụm dữ liệu có ràng buộc 11
Chương 3 : PHÂN CỤM DỮ LIỆU KHÔNG GIÁM SÁT 12
3.1 Phương pháp phân hoạch 12
3.1.1 Thuật toán K-Means 12
3.1.2 Thuật toán K-Prototypes 13
3.1.3 Thuật toán k-tâm 14
Chương 4 : PHÂN CỤM DỮ LIỆU NỬA GIÁM SÁT 17
4.1 Thuật toán Seeded-KMeans 17
4.2 Thuật toán Constrained-KMeans 18
Chương 5 : BÀI TOÁN ỨNG DỤNG 19
5.1 Bài toán 19
5.2 Giao diện chương trình 21
KẾT LUẬN 24
TÀI LIỆU THAM KHẢO 25
Trang 5Chương 1 : TỔNG QUAN VỀ DATA MINING
Kỹ thuật khám phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases- KDD) có thể chia thành các bước thực hiện như sau [1]:
Bước 1: Trích chọn dữ liệu: Ở bước này các dữ liệu liên quan trực tiếp đến
nhiệm vụ của quá trình KDD sẽ được thu thập từ các nguồn dữ liệu ban đầu
Bước 2: Tiền xử lý dữ liệu: có nhiệm vụ làm sạch, loại bỏ nhiễu, rút gọn và rời
rạc hóa dữ liệu
Bước 3: Biến đổi dữ liệu: nhằm chuẩn hóa và làm mịn dữ liệu để chuyển dữ liệu
về dạng thuận lợi nhất phục vụ cho việc khai phá
Bước 4: Data mining: dùng các kỹ thuật phân tích để khai thác dữ liệu, trích
chọn các mẫu thông tin cần thiết,… Công đoạn này được xem là mất thời gian nhất và cũng là quan trọng nhất trong quá trình KDD
Bước 5: Đánh giá và biểu diễn tri thức: Các thông tin và mối liên hệ giữa chúng
vừa khám phá trong công đoạn trước được biểu diễn dưới các dạng trực quan đồng thời được đánh giá theo những tiêu chí nhất định
Dữ liệu
Dữ liệutiền xử lý
Mẫu
Trang 61.2 Khai phá dữ liệu và các khái niệm liên quan
1.2.1 Khái niệm khai phá dữ liệu
Data mining là một quá trình tìm kiếm, chắt lọc các chi thức mới, tiềm ẩn, hữu dụng trong tập dữ liệu lớn
1.2.2 Các kỹ thuật tiếp cận trong khai phá cữ liệu
Theo quan điểm của học máy, các kỹ thuật trong Data mining gồm:
• Học có giám sát (Supervised learning).
• Học không giám sát (Unsupervised learning).
• Học nửa giám sát (Semi-Supervised learning).
Theo các lớp bài toán cần giải quyết, các kỹ thuật trong Data mining gồm:
• Phân lớp và dự đoán (Classification and Prediction).
• Luật kết hợp (Association rules)
• Phân tích chuỗi theo thời gian
• Phân cụm (Clustering).
• Mô tả khái niệm
Trang 7Chương 2 : PHÂN CỤM DỮ LIỆU VÀ CÁC KỸ THUẬT TIẾP CẬN
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.
Các bước của một bài toán phân cụm dữ liệu gồm:
• 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 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
• Kiểu thuộc tính nhị phân:
Thuộc tính nhị phân chỉ có hai giá trị là 0 va 1 Trong đó 0 có nghĩa là sai và 1 có nghĩa là đúng
Trang 8Nế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, yKhi đó độ tương tự được cho như sau:
1 Hệ số đối sánh đơn giản: d x y( , ) α θ
ξ
+
= , Ở đây x và y có vai trò như nhau, tức là chúng đối xứng và cùng trọng số
2 Hệ số Jacard: d x y( , ) α
α γ δ
=+ + , công thức này được áp dụng trong trường hợp mà trọng số của các thuộc tính có giá trị 1 lớn hơn rất nhiều các thuộc tính có giá trị 0, như vậy các thuộc tính nhị phân ở đây không đối xứng
α+δ γ+θ
Trang 9• Kiểu thuộc tính khoảng (Interval)
Dùng để đo các giá trị theo xấp xỉ tuyến tính Độ đo phi tương tự của x
và y được tính bằng các metric khoảng cách sau
• Kiểu thuộc tính định danh (Nominal)
Độ đo phi tương tự giữa hai đối tượng x và y được xác định qua công thức sau:
• Kiểu thuộc tính thứ tự (Ordinal)
Độ đ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, 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 xif bở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.0,1.0] để 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
−
=
−
Trang 103 Cuối cùng ta sử dụng công thức tính độ phi tương tự của thuộc tính khoảng với zif đại diện cho giá trị thuộc tính f của đối tượng thứ i
• Kiểu thuộc tính tỷ lệ (Ratio)
Đây là thuộc tính khoảng nhưng được xác định một cách tương đối so với điểm mốc
Có nhiều cách để tính độ tương tự giữa các thuộc tính tỉ lệ Một trong 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)
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 sau :
2.3.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 định nghiệm tối ưu toàn cục cho vấn đề PCDL Chính vì vậy, trên thực tế 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
2.3.2 Phân cụm dữ liệu 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ụm có thể
được xây dựng theo hai phương pháp tổng quát :
• Phương pháp “dưới lên” (Bottom up)
• Phương pháp “trên xuống” (Top Down)
Trang 112.3.3 Phân cụm dữ liệu dựa trên mật độ
Phương pháp này 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 đó
2.3.4 Phân cụm dữ liệu dựa trên lưới
Kỹ thuật phân cụm dựa trên mật độ không thích hợp với dữ liệu nhiều chiều, để giải quyết cho đòi hỏi này, người ta đã dử dụng phương pháp phân cụm dựa trên lưới Đây là phương pháp dựa trên cấu trúc dữ liệu lưới để PCDL, phương pháp này chủ yếu tập trung
áp dụng cho lớp dữ liệu không gian Một thí dụ về cấu trúc dữ liệu lưới chứa các cell trong không gian :
2.3.5 Phân cụm dữ liệu 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
2.3.6 Phân cụm dữ liệu có ràng buộc
Sự phát triển của phân cụm dữ liệu không gian trên CSDL lớn đã cung cấp nhiều công cụ tiện lợi cho việc phân tích thông tin địa lý, tuy nhiên hầu hết các thuật toán này cung cấp rất ít cách thức cho người dùng để xác định các ràng buộc trong thế giới thực cần phải được thoả mãn trong quá trình PCDL
Trang 12Chương 3 : PHÂN CỤM DỮ LIỆU KHÔNG GIÁM SÁT
3.1.1 Thuật toán K-Means
K-Means lặp lại nhiều lần quá trình bố trí lại vị trí của đối tượng dữ liệu để phân hoạch một tập dữ liệu thành K cụm và cực tiểu địa phương giá trị bình phương trung bình khoảng cách giữa các các đối tượng tới tâm cụm của nó Cụ thể hơn, với tập dữ liệu
Thuật toán: K-Means.
Input: - Tập các đối tượng dữ liệu { 1, , }, d
2 Lặp cho tới khi hội tụ
Gán cụm: Gán mỗi đối tượng dữ liệu x vào cụm h* (tức là tập
{ * }
( 1)t K
X +
) với h* = argmin ||x−µ( )t ||2
Trang 133.1.2 Thuật toán K-Prototypes
Thuật toán k-prototypes mở rộng thuật toán k –means để làm việc với tập dữ liệu hỗn hợp giữa thuộc tính số và thuộc tính hạng mục Thuật toán k-prototypes sử dụng các đối tượng mẫu (prototype) để biểu diễn cho các cụm thay vì sử dụng các đối tượng trọng tâm như trong thuật toán k-means Các đối tượng dữ liệu lần lượt được phân phối cho các cụm dữ liệu sao cho chúng tương tự nhất với đối tượng mẫu tương ứng với cụm dữ liệu
mà chúng được phân phối, sự tương tự ở đây được xác định bằng độ đo tương tự cho dữ liệu hỗn hợp
Thuật toán k- prototypes
Input : Tập dữ liệu ban đầu X và số cụm k,
Output : k đối tượng mẫu sao cho hàm tiêu chuẩn đạt giá trị tối thiểu
Begin
1 Khởi tạo k đối tượng mẫu ban đầu cho X, mỗi đối tượng mẫu đóng
vai trò là tâm đại diện của mỗi cụm
2 Phân phối mỗi đối tượng trong X cho mỗi cụm sao cho chúng gần
nhất với đối tượng mẫu trong cụm, đồng thời cập nhật lại đối tượng mẫu cho mỗi cụm
3 Sau khi tất cả các đối tượng đã được phân phối hết cho các cụm,
kiểm tra lại độ tương tự của các đối tượng trong mỗi cụm với các đối tượng mẫu, nếu có một đối mẫu tương tự nhất với nó mà khác với đối tượng mẫu của cụm hiện thời thì di chuyển đối tượng đang xét này sang cụm tương ứng với đối tượng mẫu mà nó gần nhất và đồng thời cập nhật các đối tượng mẫu cho hai cụm này
Trang 143.1.3 Thuật toán k-tâm
Thuật toán k-tâm mở rộng thuật toán k –means để làm việc với tập dữ liệu hỗn hợp gồm: thuộc tính số, thuộc tính định danh và thuộc tính có thứ tự
Độ đo tương tự
Giả sử DOM(Aj) là miền giá trị của thuộc tính Aj ta có các khái niệm:
Thuộc tính đinh danh: Aj được gọ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 a≠b
Thuộc tính số: Aj là thuộc tính số nếu DOM(Aj) là tập số thực
Thuộc tính có thứ tự: nếu DOM(Aj) là tập hữu hạn và có thứ tự hoàn toàn
Công thức tính khoảng cách giữa hai đối tượng
Giả sử ta có x,y∈DOM(Aj), hàm dj(x,y) được xác định như sau:
• Nếu Aj là thuộc tính số thì dj được dj(x,y)=x-y (9)
• Nếu Aj là thuộc tính thứ tự và DOM(Aj) ={ k}
j j j
f i j
j ) Khi đó dj(x,y)= │fj(x)-fj(y) │.(10)
• Nếu Aj là dữ liệu định danh thì dj(x,y)=
y x khi
:1
:0
(11)Vậy khoảng cách d(x,y) giữa hai đối tượng x = (x1, ,xn) và y = (y1, ,yn) được tính bởi công thức: