TRỪƠNG ĐẠI HỌC CÔNG NGHỆ- ĐẠI HỌC QUỐC GIA
HÀ NỘI
TRÌNH BÀY TÔNG QUAN VỀ PHÂN CỤM DỮ LIỆU
Học viên: PHẠM ĐĂNG KHOA
Hà nội:
2007
3
MỤC LỤC
MỤC LỤC ..................................................................................................... 3
DANH MỤC HÌNH VẼ ................................................................................. 5
LỜI CẢM ƠN ................................................................................................ 6
PHẦN MỞ ĐẦU ............................................................................................ 7
CHƢƠNG 1: TỔNG QUAN VỀ PHÂN CỤM DỮ LIỆU .............................. 9
1.1. Khai phá dữ liệu và khám phá tri thức .................................................. 9
1.2. Ứng dụng của khai phá dữ liệu ........................................................... 11
1.3. Các kỹ thuật khai phá dữ liệu ............................................................. 12
1.3.1. Kỹ thuật khai phá dữ liệu dự đoán ............................................... 12
1.3.2. Kỹ thuật khai phá dữ liệu mô tả ................................................... 12
1.4. Phân cụm dữ liệu................................................................................ 13
1.4.1. Học có giám sát và không có giám sát ......................................... 13
1.4.2. Khái niệm phân cụm dữ liệu ........................................................ 14
1.4.3. Mục tiêu của phân cụm ................................................................ 16
1.4.4. Ứng dụng của phân cụm dữ liệu .................................................. 17
1.4.5. Yêu cầu của phân cụm dữ liệu...................................................... 17
CHƢƠNG 2: CÁC PHƢƠNG PHÁP
VÀ THUẬT TOÁN PHÂN CỤM DỮ LIỆU ............................................... 19
2.1. Phƣơng pháp phân cụm phân hoạch ................................................... 20
2.1.1. Thuật toán K-means ..................................................................... 21
2.1.2. Thuật toán PAM ........................................................................... 25
2.1.3. Thuật toán CLARA ....................................................................... 27
2.1.4. Thuật toán CLARANS .................................................................. 29
2.2. Phƣơng pháp phân cụm phân cấp ....................................................... 32
2.2.1. Thuật toán BIRCH. ...................................................................... 34
2.2.2. Thuật toán CURE ........................................................................ 37
2.2.3. Thuật toán AGNES và DIANA ..................................................... 39
2.2.4. Thuật toán CHAMELEON ........................................................... 40
2.3. Phƣơng pháp phân cụm dựa trên mật độ ............................................ 41
2.3.1. Thuật toán DBSCAN .................................................................... 41
4
2.3.2. Thuật toán OPTICS ..................................................................... 46
2.3.3. Thuật toán DENCLUE ................................................................. 48
2.4. Phƣơng pháp phân cụm dựa trên lƣới ................................................. 50
2.4.1. Thuật toán STING ........................................................................ 51
2.4.2. Thuật toán CLIQUE ..................................................................... 53
2.4.3. Thuật toán WAVECLUSTER ........................................................ 54
2.5. Phƣơng pháp phân cụm dựa trên mô hình .......................................... 55
2.5.1. Thuật toán EM ............................................................................. 55
2.5.2.Thuật toán COBWEB .................................................................... 57
CHƢƠNG 3: ỨNG DỤNG CÁC THUẬT TOÁN PHÂN CỤM VỚI DỮ
LIỆU NGÀNH BẢO HIỂM XÃ HỘI........................................................... 59
3.1. Những khái niệm chung về Bảo hiểm xã hội ...................................... 59
3.1.1. Bảo hiểm xã hội ........................................................................... 59
3.1.2. Bảo hiểm y tế ............................................................................... 62
3.2. Cơ sở dữ liệu bảo hiểm xã hội ............................................................ 63
3.2.1. Cơ sở dữ liệu người đang tham gia BHXH, BHYT ....................... 63
3.2.2. Cơ sở dữ liệu người đang hưởng các chế độ BHXH hàng tháng .. 67
3.3. Áp dụng các thuật toán phân cụm vào cơ sở dữ liệu của ngành bảo
hiểm xã hội ............................................................................................... 68
3.3.1. Bài toán ....................................................................................... 68
3.3.2. Giải pháp ..................................................................................... 69
3.3.3. Chương trình mô phỏng thuật toán PCDL K-means .................... 70
KẾT LUẬN .................................................................................................. 73
TÀI LIỆU THAM KHẢO ............................................................................ 74
5
DANH MỤC HÌNH VẼ
Hình 1.1: Quá trình khám phá tri thức
Hình 1.2: Sơ đồ quá trình phân cụm dữ liệu
Hình 1.3: Ví dụ về phân cụm
Hình 2.1: Các thuật toán phân cụm dữ liệu
Hình 2.2: Xác lập ranh giới các cụm ban đầu
Hình 2.3: Tính toán trọng tâm của các cụm mới
Hình 2.4: Một số dạng cụm dữ liệu khi áp dụng thuật toán K-means
Hình 2.5: Chiến lƣợc phân cụm phân cấp
Hình 2.6: Cây CF đƣợc sử dụng bởi thuật toán BIRCH
Hình 2.7: Thuật toán BIRCH
Hình 2.8: Khái quát thuật toán CURE
Hình 2.9: Các cụm dữ liệu đƣợc khám phá bằng thuật toán CURE
Hình 2.10: Các bƣớc thực hiện của thuật toán AGNES và DIANA
Hình 2.11: Khái quát thuật toán CHAMELEON
Hình 2.12: Hình dạng các cụm khi áp dụng thuật toán DBSCAN
Hình 2.13: Mật độ liên lạc và mật độ liên thông
Hình 2.14: Thứ tự phân cụm các đối tƣợng của thuật toán OPTICS
Hình 2.15: Biểu diễn ví dụ hàm ảnh hƣởng sóng ngang
Hình 2.16: Biểu diễn ví dụ hàm ảnh hƣởng Gaussian
Hình 2.17: Cấu trúc phân cấp
Hình 3.1: Chƣơng trình mô phỏng thuật toán PCDL
Hình 3.2: Khởi tạo các thông số cho chƣơng trình
Hình 3.3: Kết quả thực hiện thuật toán
9
15
15
20
22
22
24
33
34
35
37
38
39
40
42
44
47
49
50
51
70
71
72
7
PHẦN MỞ ĐẦU
Cùng với sự phát triển của xã hội, sự phát triển của lĩnh vực Công nghệ
thông tin trong thời gian qua, nhu cầu về thông tin để đáp ứng các yêu cầu
hàng ngày của con ngƣời trên mọi lĩnh vực ngày càng phát triển. Do vậy, khối
lƣợng thông tin lƣu trữ lại ngày càng tăng làm cho kho dữ liệu tri thức chung
của con ngƣời ngày càng trở nên vô tận. Vấn đề đặt ra ở đây là làm thế nào để
chúng ta có thể khai thác đƣợc tối đa nguồn tri thức dồi dào và vô tận đó.
Khám phá tri thức và khai phá dữ liệu đang nổi lên nhanh chóng và trở
thành một trong những hƣớng nghiên cứu chính liên quan tới nhiều lĩnh vực
khoa học máy tính và công nghệ tri thức kết hợp với cơ sở dữ liệu, thống kê,
học máy và những lĩnh vực có liên quan để trích chọn những thông tin giá trị
và tri thức trong khối lƣợng dữ liệu lớn. Khám phá tri thức là cách tiếp cận
chung để phân tích và rút ra tri thức hữu ích từ cơ sở dữ liệu sử dụng các kỹ
thuật hoàn toàn tự động. Các kỹ thuật chính đƣợc áp dụng trong lĩnh vực này
phần lớn đƣợc kế thừa từ lĩnh vực cơ sở dữ liệu, 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 hiệu năng cao.
Phân cụm dữ liệu là quá trình tìm kiếm và phát hiện ra các cụm hoặc
các mẫu dữ liệu tự nhiên trong cơ sở dữ liệu lớn. Trong thời gian gần đây,
trong lĩnh vực phân cụm dữ liệu, tập trung chủ yếu vào nghiên cứu, phân tích
các mô hình dữ liệu phức tạp nhƣ dữ liệu văn bản, web, hình ảnh,... và đặc
biệt là mô hình hỗn hợp để áp dụng chúng trong phân cụm dữ liệu.
Xuất phát trong hoàn cảnh đó, luận văn lựa chọn đề tài “Một số vấn đề
về phân cụm dữ liệu và ứng dụng trong ngành bảo hiểm xã hội”. Luận văn
nhằm nghiên cứu một số vấn đề về khám phá tri thức trong cơ sở dữ liệu và
tập trung vào các kỹ thuật phân cụm dữ liệu. Trên cơ sở đó đề cập đến một
ứng dụng thực tế trên cơ sở khám phá tri thức và khai phá dữ liệu trên cơ sở
dữ liệu của ngành bảo hiểm xã hội.
8
Luận văn gồm Phần mở đầu, Phần kết luận và 3 chƣơng nội dung, cụ
thể nhƣ sau:
Chương 1: Trình bày tổng quan về phân cụm dữ liệu và một số khái
niệm liên quan, đồng thời cũng trình bày các giai đoạn của quá trình phát hiện
tri thức và đề cập đến các kỹ thuật hƣớng tiếp cận chính trong khai phá dữ
liệu, những khái niệm liên quan đến phân cụm dữ liệu.
Chương 2: Phân tích chi tiết các vấn đề cơ bản trong phân cụm dữ liệu,
tóm tắt các đặc trƣng của các phƣơng pháp phân cụm dữ liệu đƣợc sử dụng
phổ biến và một số thuật toán phân cụm dữ liệu.
Chương 3: Áp dụng một thuật toán phân cụm dữ liệu vào khai phá dữ
liệu của ngành bảo hiểm xã hội.
9
CHƢƠNG 1: TỔNG QUAN VỀ PHÂN CỤM DỮ LIỆU
1.1. Khai phá dữ liệu và khám phá tri thức
Tri thức đƣợc xem nhƣ là các thông tin tích hợp, bao gồm các sự kiện,
hiện tƣợng và mối quan hệ giữa chúng đã đƣợc nhận thức, khám phá hoặc
nghiên cứu.
Trong thời đại bùng nổ của công nghệ thông tin hiện nay, bất cứ một
lĩnh vực nào cũng đều gắn liền với việc thu thập, lƣu trữ và xử lý thông tin.
Do vậy, hiện nay chúng ta đang sở hữu một kho dữ liệu khổng lồ chứa đựng
thông tin của tất cả các lĩnh vực. Bài toàn đặt ra ở đây là làm thế nào để nhận
biết đƣợc, lấy đƣợc những thông tin mà mình cần sử dụng cho công việc của
mình. Bài toán đó đã đƣợc giải quyết bằng việc áp dụng các phƣơng pháp
khám phá tri thức trong cơ sở dữ liệu.
Khám phá tri thức trong cơ sở dữ liệu là một quá trình nhận biết đúng
đắn, mới, hữu ích, và cuối cùng có thể hiểu đƣợc mẫu hoặc mô hình trong dữ
liệu. Quá trình khám phá tri thức bao gồm các bƣớc sau:
Tìm hiểu lĩnh vực
ứng dụng
Thu thập và tiền xử lý
dữ liệu
Khai phá dữ liệu
Trích chọn tri thức
Biểu diễn và đánh giá
tri thức
Ứng dụng tri thức
đã được khám phá
Hình 1.1: Quá trình khám phá tri thức
10
Tìm hiểu lĩnh vực ứng dụng: bƣớc này có ý nghĩa quan trọng cho việc
rút ra đƣợc các tri thức hữu ích và chọn các phƣơng pháp khai phá dữ liệu
thích hợp sao cho phù hợp với mục đích ứng dụng và bản chất dữ liệu.
Thu thập và tiền xử lý dữ liệu: bao gồm lựa chọn dữ liệu nguồn, loại bỏ
các dữ liệu nhiễu hoặc ngoại lai, xử lý các giá trị thiếu, biến đổi và rút gọn dữ
liệu, sửa các lỗi mang tính hệ thống, tập hợp các thông tin cần thiết để xây
dựng mô hình hoặc tính toán nhiễu, quyết định các chiến lƣợc xử lý các
trƣờng dữ liệu bị lỗi. Bƣớc này thƣờng tốn thời gian trong toàn bộ quá trình
khám phá tri thức.
Khai phá dữ liệu, trích chọn tri thức: trích chọn các mẫu ẩn hoặc mô
hình ẩn trong dữ liệu. Một mô hình có thể đƣợc xem nhƣ "một biểu diễn tổng
thể của một cấu trúc nhằm tóm lƣợc thành phần mang tính hệ thống có trong
dữ liệu hoặc mô tả dữ liệu phát sinh". Ngƣợc lại, "một mẫu là một cấu trúc
cục bộ có khi chỉ liên quan tới một nhóm các biến và một số trƣờng hợp". Các
lớp chính của phƣơng pháp khai phá dữ liệu là mô hình dự đoán nhƣ phân
loại và hồi quy; phân đoạn; mô hình phụ thuộc nhƣ đồ thị hoặc ƣớc lƣợng mật
độ; tóm lƣợc nhƣ tìm các mối quan hệ giữa các trƣờng, liên kết, trừu tƣợng;
và mô hình thay đổi và phát hiện độ lệch trong dữ liệu và tri thức.
Biểu diễn và đánh giá tri thức: đặc biệt là làm sáng tỏ các mô tả và dự
đoán, hai mục tiêu chính của các hệ thống khám phá trong thực tế. Kinh
nghiệm cho thấy rằng các mẫu hoặc các mô hình phát hiện đƣợc từ các dữ
liệu không phải lúc nào cũng đáng quan tâm và có thể trực tiếp sử dụng đƣợc
ngay, và quy trình khám phá tri thức cần phải đƣợc lặp đi lặp lại có điều chỉnh
theo các tri thức đã phát hiện đƣợc. Để có thể đánh giá các luật đƣợc áp dụng
trong quy trình khám phá tri thức, dữ liệu thƣờng đƣợc chia thành hai tập,
huấn luyện trên tập thứ nhất và kiểm chứng trên tập thứ hai. Có thể lặp lại quy
trình này một số lần với các phần chia khác nhau, sau đó lấy trung bình các
kết quả để ƣớc lƣợng các luật thi hành.
Ứng dụng tri thức đã được khám phá: củng cố các tri thức đã khám phá
đƣợc, kết hợp các tri thức thành một hệ thống máy tính. Giải quyết các xung
đột tiềm năng trong tri thức khai thác đƣợc. Đƣa kết quả vào sử dụng thực
tiễn là mục đích cuối cùng của khám phá tri thức.
11
Một bƣớc quan trọng trong quá trình khám phá tri thức trong cơ sở dữ
liệu là khai phá dữ liệu. Khai phá dữ liệu là quá trình trích xuất thông tin cần
thiết trong cơ sở dữ liệu. Đây là bƣớc tốn nhiều thời gian và tài nguyên nhất
trong quá trình khám phá tri thức. Bƣớc này bao gồm các liên quan đến thuật
toán, tìm kiếm các mẫu và mô hình trong dữ liệu, thƣờng đề cập đến vấn đề
kỹ thuật.
Khai phá dữ liệu là một lĩnh vực liên quan tới rất nhiều ngành khoa học
khác nhau nhƣ: thống kê, học máy, cơ sở dữ liệu, thuật toán, trừu tƣợng, kỹ
thuật cao và tính toán song song, thu nhận tri thức trong 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 nhờ vào các
phƣơng pháp, thuật toán, và kỹ thuật từ những lĩnh vực khác nhau. Mục đích
cuối cùng là trích ra tri thức từ dữ liệu trong cơ sở dữ liệu khổng lồ.
1.2. Ứng dụng của khai phá dữ liệu
Kỹ thuật khai phá dữ liệu có thể đƣợc ứng dụng trong nhiều lĩnh vực,
điển hình là:
Thông tin thương mại:
+ Phân tích dữ liệu bán hàng và thị trƣờng;
+ Phân tích đầu tƣ;
+ Quyết định cho vay;
+ Phát hiện gian lận;
Thông tin sản xuất:
+ Điều khiển và lập kế hoạch;
+ Hệ thống quản lý;
+ Phân tích kết quả thử nghiệm;
Thông tin khoa học:
+ Dự báo thời tiết;
+ Cơ sở dữ liệu sinh học;
+ Khoa học địa lý: tìm động đất;
12
Thông tin cá nhân:
1.3. Các kỹ thuật khai phá dữ liệu
Hiện nay có rất nhiều các kỹ thuật khai phá dữ liệu khác nhau, tuy
nhiên chúng đƣợc phân chia thành 2 nhóm chính:
1.3.1. Kỹ thuật khai phá dữ liệu dự đoán
Sử dụng một số biến hoặc trƣờng trong cơ sở dữ liệu để đoán ra các giá
trị không biết hoặc sẽ có của các biến chú ý khác, sử dụng các dự đoán dựa
vào các suy diễn trên dữ liệu hiện tại. Các kỹ thuật này bao gồm: phân lớp
(classification), hồi quy (regression),…
Hồi quy là việc học một hàm ánh xạ một dữ liệu tới một giá trị dự đoán
thực. Các ứng dụng hồi quy hiện có rất nhiều, ví dụ nhƣ là việc dự đoán số
lƣợng khối gỗ trong rừng thông qua các thiết bị vi sóng cảm biến từ xa, đƣa ra
xác suất bệnh nhân có thể chết khi có kết quả của xét nghiệm chuẩn đoán.
Phân lớp là việc học một hàm để ánh xạ (bộ phân lớp) một dữ liệu vào
một trong các phân lớp đã đƣợc định nghĩa sẵn. Các ví dụ về các phƣơng thức
phân lớp thƣờng sử dụng nhƣ là một phần của các ứng dụng khai phá tri thức,
bao gồm việc phân lớp theo xu hƣớng của các thị trƣờng tài chính (Apte &
Hong) và nhận dạng tự động các đối tƣợng khả nghi trong cơ sở dữ liệu ảnh
(Fayyad, Djorgovski, & Weir).
1.3.2. Kỹ thuật khai phá dữ liệu mô tả
Tập trung vào việc tìm kiếm các mẫu mà con ngƣời có thể hiểu đƣợc để
mô tả dữ liệu, mô tả các tính chất hoặc các đặc tính chung của dữ liệu trong
cơ sở dữ liệu hiện có. Các kỹ thuật này bao gồm: phân cụm (clustering), khái
quát hoá (summerization), phát hiện và thay đổi độ lệch (Evolution and
deviation analyst), mô hình hoá sự phụ thuộc,…
Phân cụm là mô tả chung việc tìm ra tập xác định các nhóm hay loại để
mô tả dữ liệu (Titerington, Smith & Makov 1985, Jain & Dubes 1988). Các
nhóm có thể tách riêng, phân cấp, hoặc chồng lên nhau.
Khái quát hóa bao gồm các phƣơng thức để tìm kiếm một mô tả cho
một tập con dữ liệu. Ví dụ đơn giản là việc lập bảng theo ý nghĩa và độ lệch
13
chuẩn đối với mọi trƣờng hợp. Các phƣơng thức phức tạp hơn có thể là độ
lệch của một vài quy tắc chung, các kỹ thuật mô phỏng đa biến và khai phá
các quan hệ phụ thuộc giữa các biến. Kỹ thuật khái quát hóa thƣờng áp dụng
cho việc phân tích dữ liệu ràng buộc có tính thăm dò và tạo các báo cáo tự
động.
Mô hình hóa sự phụ thuộc bao gồm việc tìm kiếm một mô hình để mô
tả sự phụ thuộc giữa các biến. Các mô hình phụ thuộc tồn tại có hai mức: mức
cấu trúc của mô hình xác định các biến nào là phụ thuộc cục bộ với nhau, và
mức định lƣợng của mô hình xác định các phụ thuộc theo một quy tắc nào đó.
Ví dụ, các mạng phụ thuộc xác suất thƣờng dùng để mô tả các khía cạnh cấu
trúc hóa của mô hình và xác suất. Các mạng phụ thuộc xác suất ứng dụng
nhiều trong các hệ chuyên gia về y tế, mô hình hóa bộ gen ngƣời.
Phát hiện và thay đổi độ lệch tập trung vào khai thác những thay đổi
đáng kể nhất trong dữ liệu từ các giá trị chuẩn hoặc đƣợc đo trƣớc (Berndt &
Cliffort, Guyon et al. Kloesgen, Mathéu et al., Basseville & Nikiforov 1993).
Tuy nhiên trong khuôn khổ của luận văn này tôi chỉ tập trung vào phân
tích một trong những phƣơng pháp phổ biến và thông dụng nhất của các
phƣơng pháp khai phá dữ liệu đó là “Phân cụm (clustering)”.
1.4. Phân cụm dữ liệu
1.4.1. Học có giám sát và không có giám sát
Học có giám sát (supervised learning): là quá trình gán nhãn lớp cho
các phần tử trong cơ sở dữ liệu 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 hay nói cách khác là xây dựng một hàm từ dữ
liệu huấn luyện. dữ liệu huấn luyện bao gồm cặp dữ liệu đầu vào và đầu ra
tƣơng ứng. Đầu ra có thể là một giá trị liên tục (hồi quy) hay có thể là một
nhãn đƣợc gán cho một đối tƣợng dữ liệu đầu vào (phân lớp).
Nhiệm vụ của chƣơng trình là dự đoán giá trị đầu ra của một hàm cho
một đối tƣợng dữ liệu đầu vào hợp lệ với mẫu là một số ví dụ huấn luyện.
Học không có giám sát (unsupervised learning): là quá trình phân chia
một tập dữ liệu thành các 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ề lớp hay các tập ví dụ huấn luyện. Nó khác với học có
14
giám sát ở chỗ là đầu ra đúng tƣơng ứng với đầu vào không biết trƣớc. Học
không có giám sát thƣờng coi các đối tƣợng đầu vào nhƣ một tập dữ liệu ngẫu
nhiên.
1.4.2. Khái niệm phân cụm dữ liệu
Có nhiều định nghĩa khác nhau về phân cụm dữ liệu. Đơn giản nhất là
gom nhóm những phần tử dữ liệu tƣợng tự nhau vào chung một cụm (cluster).
Cụ thể hơn, cho một tập n phần tử dữ liệu X, mục đích là phân chia các phần
tử dữ liệu thuộc tập X đó thành k nhóm (cụm) sao cho các cụm này phải thoả
mãn các yêu cầu sau:
Các phần tử dữ liệu trong một cụm là giống nhau hoặc gần nhau đƣợc
xác định bằng độ tƣơng tự (các phần tử trong cùng một cụm là tƣơng tự
nhau).
Các phần tử dữ liệu trong một cụm là khác với các phần tử dữ liệu
trong các cụm khác (các phần tử ở các cụm khác nhau thì phi tƣơng tự với
nhau).
Ta có thể mô tả quá trình phân cụm dữ liệu qua một sơ đồ tổng quát
nhƣ hình dƣới:
Hình 1.2: Sơ đồ quá trình phân cụm dữ liệu
Số các cụm dữ liệu đƣợc xác định trƣớc theo kinh nghiệm hoặc có thể
đƣợc xác định tuỳ thuộc vào phƣơng pháp phân cụm. Hai hay nhiều phần tử
đƣợc gom vào cùng một nhóm nếu chúng có chung một định nghĩa về khái
niệm hoặc chúng xấp xỉ với khái niệm đƣợc mô tả trƣớc.
15
Một đặc điểm của phân cụm là quá trình phân cụm đƣợc thực hiện
(học) bằng cách quan sát chứ không phải đƣợc học qua các ví dụ cho nên
phân cụm dữ liệu đƣợc gọi là quá trình học không có giám sát.
Để rõ hơn về phân cụm dữ liệu, ta xét ví dụ sau:
Hình 1.3: Ví dụ về phân cụm
Trong hình dữ liệu đƣợc chia thành 4 cụm; tƣơng tự là khoảng cách:
hai hay nhiều đối tƣợng đƣợc xếp vào một cụm nếu chúng là "gần nhau" theo
mức độ khoảng cách đã đƣợc xác định; phi tƣơng tự là khoảng cách: hai hay
nhiều đối tƣợng đƣợc xếp vào các cụm khác nếu chúng là "xa nhau". Đƣợc
gọi là phân cụm dựa trên khoảng cách. Một cách hiểu khác của phân cụm là
khái niệm phân cụm: hai hay nhiều đối tƣợng đƣợc xếp vào cùng một cụm
nếu chúng có chung một định nghĩa về khái niệm hoặc chúng xấp xỉ với các
khái niệm mô tả cho trƣớc.
Một vấn đề thƣờng gặp trong phân cụm là hầu hết các dữ liệu cần cho
phân cụ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 khắc phục hoặc loại bỏ nhiễu trƣớc khi chuyển sang giai đoạn
phân tích cụm dữ liệu. Nhiễu ở đây là có thể các đối tƣợng dữ liệu không
chính xác, hoặc là các đối tƣợng dữ liệu khuyết thiếu thông tin về một số
16
thuộc tính. Một trong các kỹ thuật xử lý nhiễu phổ biến là việc thay thế giá trị
các thuộc tính của đối tƣợng nhiễu bằng giá trị thuộc tính tƣơng ứng.
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 phân cụm, 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 trong cơ sở dữ liệu, 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 phân cụm.
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, làm sạch dữ liệu,...
Theo các nghiên cứu thì 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 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ủa các cụm dữ liệu, với mỗi cách thức biểu diễn khác nhau sẽ có tƣơng ứng
một thuật toán phân cụm phù hợp. Phân cụm đang là vấn đề mở và khó, vì
phải giải quyết nhiều vấn đề cơ bản (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 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) 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 là đối với dữ liệu hỗn
hợp đang ngày càng tăng trong các hệ quản trị dữ liệu, và đây cũng là một
trong những thách thức lớn trong lĩnh vực khai phá dữ liệu.
1.4.3. Mục tiêu của phân cụm
Mục tiêu của phân cụm là xác định đƣợc bản chất nhóm trong tập dữ
liệu chƣa đƣợc gán nhãn. Tuy nhiên, làm thế nào để có thể quyết định đƣợc
cái gì tạo thành một cụm tốt. Nó có thể đƣợc chỉ ra rằng 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ả của phân cụm. Do vậy,
nó đòi hỏi ngƣời sử dụng phải cung cấp tiêu chuẩn này, theo cách mà kết quả
phân cụm sẽ đáp ứng yêu cầu. Ví dụ, có thể quan tâm đến việc tìm đại diện
cho các nhóm đồng nhất (rút gọn dữ liệu), trong tìm kiếm "các cụm tự nhiên"
và mô tả những thuộc tính chƣa biết (kiểu dữ liệu "tự nhiên"), trong tìm kiếm
các nhóm hữu ích và phù hợp (các lớp dữ liệu "hữu ích") hoặc tìm kiếm các
đối tƣợng khác thƣờng (dò tìm phần tử ngoại lai).
17
1.4.4. Ứng dụng của phân cụm dữ liệu
Tiếp thị: từ cơ sở dữ liệu khách hàng đã mua hàng trong quá khứ, tìm
kiếm các nhóm khách hàng có những sở thích tƣơng tự nhau để có những
hình thức tiếp thị, khuyến mại phù hợp với nhu cầu, sở thích của từng nhóm
khách hàng.
Sinh học: phân loại động vật và thực vật dựa trên các đặc điểm của
chúng.
Thư viện: phân loại các đầu sách dựa trên các thông tin của sách.
Bảo hiểm: nhận dạng, phân loại các nhóm ngƣời mua bảo hiểm theo
các mức khác nhau; phát hiện đƣợc giả mạo, gian lận.
Quy hoạch: phân loại các nhóm nhà ở theo loại, theo giá trị và theo vị
trí địa lý.
Nghiên cứu động đất: phân lớp các tâm động đất quan sát đƣợc để xác
định những vùng nào là vùng nguy hiểm.
WWW: phân loại tài liệu,…
1.4.5. Yêu cầu của phân cụm dữ liệu
Có khả năng mở rộng: một số thuật toán có thể ứng dụng tốt với tập dữ
liệu nhỏ nhƣng không hiệu khi áp dụng cho tập dữ liệu lớn.
Thích nghi với các kiểu thuộc tính khác nhau: thuật toán có thể áp dụng
hiệu quả với việc phân cụm các tập dữ liệu có các kiểu dữ liệu nhƣ kiểu số,
nhị phân, hạng mục,... và thích nghi với kiểu dữ liệu hỗn hợp của các kiểu dữ
liệu trên.
Khám phá các cụm với hình thù bất kỳ: hầu hết các cơ sở dữ liệu có
chứa nhiều cụm dữ liệu với các hình thù khác nhau nhƣ hình lõm, hình cầu,
hình que,... do đó để khám phá đƣợc các cụm có tính tự nhiên thì các thuật
toán cần phải có khả năng khám phá ra các cụm có hình thù bất kỳ.
Yêu cầu tối thiểu lượng tri thức cần cho xác định các tham số đầu vào:
các giá trị đầu vào thƣờng rất ảnh hƣởng đến thuật toán phân cụm và rất phức
tạp để xác định các giá trị đầu vào thích hợp đối với các cơ sở dữ liệu lớn.
18
Khả năng thích nghi với dữ liệu nhiễu hoặc ngoại lai: hầu hết các dữ
liệu phân cụm trong khai phá dữ liệu đều chứa đựng các dữ liệu lỗi, dữ liệu
không đầy đủ, do đó thuật toán phân cụm không những hiệu quả đối 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 nhiễu.
Ít nhạy cảm 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ý cho thuật toán phân cụm dữ liệu với các 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 thì không ảnh hƣởng lớn đến kết
quả phân cụm.
Ít nhạy cảm với các tham số đầu vào: giá trị đầu vào của các tham số
khác nhau ít gây ra các thay đổi lớn đối với kết quả phân cụm.
Thích nghi với dữ liệu đa chiều: thuật toán có khả năng áp dụng hiệu
quả cho dữ liệu có số chiều khác nhau.
Dễ hiểu và dễ sử dụng.
19
CHƢƠNG 2: CÁC PHƢƠNG PHÁP
VÀ THUẬT TOÁN PHÂN CỤM DỮ LIỆU
Có rất nhiều các phƣơng pháp phân cụm đƣợc ứng dụng trong thực tế.
Các phƣơng pháp phân cụm đều hƣớng tới hai mục tiêu chung: chất lƣợng
của các cụm xây dựng đƣợc và tốc độ thực hiện của thuật toán. Tuy nhiên có
thể phân loại thành từng loại cơ bản dựa trên phân loại các phƣơng pháp.
Hiện nay các phƣơng pháp phân cụm có thể phân loại theo các cách tiếp cận
chính sau:
+ Phƣơng pháp phân cụm phân hoạch
+ Phƣơng pháp phân cụm phân cấp.
+ Phƣơng pháp phân cụm dựa trên mật độ.
+ Phƣơng pháp phân cụm dựa trên lƣới.
+ Phƣơng pháp phân cụm dựa trên mô hình.
Tƣơng ứng với các phƣơng pháp phân cụm trên thì có rất nhiều các
thuật toán phân cụm dữ liệu tƣơng ứng.
Do có rất nhiều thuật toán phân cụm dữ liệu nhƣ vậy cho nên vấn đề ở
đây là khi sử dụng các thuật toán phân cụm dữ liệu khác nhau đối với cùng
một tập dữ liệu đầu vào thì kết quả sẽ giống nhau hoặc khác nhau nhƣ thế nào
? Việc xác định xem thuật toán nào là phù hợp trong từng trƣờng hợp cụ thể
phụ thuộc vào rất nhiều yếu tố nhƣ kích thƣớc của tập dữ liệu đầu vào, các
đặc trƣng của dữ liệu,…
Ta có thể xem một cách tổng quát các thuật toán phân cụm dữ liệu
tƣơng ứng với các phƣơng pháp phân cụm ở hình sau:
20
Các thuật toán
phân cụm
Các thuật toán
phân cụm
phân hoạch
Các thuật toán
phân cụm
phân cấp
Các thuật toán
phân cụm dựa trên
mật độ
Các thuật toán
phân cụm dựa trên
lƣới
Các thuật toán
phân cụm dựa trên
mô hình
Thuật toán
k-means
Thuật toán
BIRCH
Thuật toán
DBSCAN
Thuật toán
STING
Thuật toán
EM
Thuật toán
PAM
Thuật toán
CURE
Thuật toán
OPTICS
Thuật toán
CLIQUE
Thuật toán
COBWEB
Thuật toán
CLARA
Thuật toán
AGNES
Thuật toán
DENCLUE
Thuật toán
WaveCluster
v.v...
Thuật toán
CLARANS
Thuật toán
DIANA
v.v...
v.v...
v.v...
Thuật toán
ROCK
Thuật toán
Chameleon
v.v...
Hình 2.1: Các thuật toán phân cụm dữ liệu
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. Số các cụm đƣợc thiết
lập là các đặc trƣng đƣợc lựa chọn trƣớc.
Phƣơng pháp này là tốt cho việc tìm các cụm hình cầu trong không gian
Euclidean. Ngoài ra 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 nào có quan hệ là gần nhau
21
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 mỗi điểm khác.
Có một chú ý 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. Chính vì vậy, 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.
Theo phƣơng pháp này, thông thƣờng 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 heuristic, và liên tục tinh
chỉnh nó cho đến khi thu đƣợc một phân hoạch mong muốn, thỏa 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.
2.1.1. Thuật toán K-means
K-means là thuật toán phân cụm trong đó các cụm đƣợc định nghĩa bởi
trung tâm của các phần tử trong 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 thực tế, nó đo
khoảng cách tới trung tâm của các đối tƣợng dữ liệu trong cụm (trung tâm của
một cụm dữ liệu đƣợc coi nhƣ là giá trị trung bình của các đối tƣợng dữ liệu
trong cụm đó). Nhƣ vậy nó cần khởi tạo một tập trung tâm các 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 mà 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 lặp này dừng khi các trung tâm hội tụ.
22
Hình 2.2: Xác lập ranh giới các cụm ban đầu
Trong phƣơng pháp k-means, chọn một giá trị k và sau đó chọn ngẫu
nhiên k trung tâm của các đối tƣợng dữ liệu. Tính toán khoảng cách giữa đối
tƣợng dữ liệu và trung bình mỗi cụm để tìm kiếm phần tử nào là tƣơng tự và
thêm vào cụm đó. Từ khoảng cách này có thể tính toán trung bình mới của
cụm và lặp lại quá trình cho đến khi mỗi các đối tƣợng dữ liệu là một bộ phận
của các cụm k.
Mục đích của thuật toán k-means là sinh 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,...,
k
xid), i = 1 ÷ n, sao cho hàm tiêu chuẩn: E xC D 2 ( x mi ) đạt giá trị tối
i 1
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.
Hình 2.3: Tính toán trọng tâm của các cụm mới
- Xem thêm -