Khai phá dữ liệu là tiến trình khái quát các sự kiện rời rạc trong dữ liệu thành các tri thức mang tính khái quát, quy luật hỗ trợ tích cực cho các tiến trình ra quyết định, hay dự đoán,
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Thành phố Hồ Chí Minh Tháng 11/2012
Trang 2LỜI MỞ ĐẦU
Trong bối cảnh thông tin đang bùng nổ như hiện nay Khai thác và ứng dụng thông tin sao cho có hiểu quả là là điều rất cần thiết Các cơ quan, tổ chức đều mong muốn có được càng nhiều thông tin về lĩnh vực mình hoạt động càng tốt: các khách hàng tiềm năng, hoạt động của công ty cạnh tranh, biến động của thị trường…
Tuy nhiên, thông tin cũng sẽ không giúp ích được nhiều nếu như người nắm giữ thông tin không biết khai thác nó Bản thân thông tin mang những hiện tượng và xu hướng phổ biến Nếu nắm được các hiện tượng, xu hướng phổ biến này, chúng sẽ hoạt động hiệu quả nhất, bởi vì “Biết người biết ta trăm trận trăm thắng” Có thể nói, trong tất cả các lĩnh vực như kinh tế, xã hội, chính trị…, ai có được thông tin và khai thác thông tin hiệu quả sẽ là người có thể điều khiển được đại cuộc, là những người thành công
Thông qua bài luận của môn học khai phá dữ liệu, sau phần khái quát về khai phá
dữ liệu, đi sâu hơn về khai phá dữ liệu Đồng thời giới thiệu và cài đặt thuật toán means để mô tả cho ứng dụng của kỹ thuật gom cụm dữ liệu trong khai phá dữ liệu Em xin chân thành cảm ơn thầy Phúc đã hướng dẫn, giúp em tiếp cận và làm quen với những vấn đề rất nổi bật trong thế giới thông tin vô tận để tổng hợp thành bài báo cáo chuyên đề này Tuy nhiên, với kiến thức còn hạn chế và thời gian có hạn nên bài báo cáo và ứng dụng demo khó tránh khỏi các thiếu sót Em mong thầy cho em các ý kiến
K-để em có thể hoàn thiện bài báo cáo hơn đồng thời cũng có thể đút kết cho mình những kinh nghiệm để làm tốt hơn những chuyên đề khác
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 4
NỘI DUNG
1 CƠ SỞ LÝ THUYẾT 7
1.1 Tổng quan về khai phá dữ liệu 7
1.1.1 Ý nghĩa của việc khai phá dữ liệu: 7
1.1.2 Các bước khám phá tri thức: 8
1.1.3 Tổng quan các kỹ thuật khai phá dữ liệu: 9
1.2 Cluster (gom cụm) là gì: 10
1.2.1 Phương pháp phân hoạch: 11
1.2.2 Phương pháp phân cấp (hierarchical clustering): 12
1.2.3 Phương pháp dựa trên mật độ: 13
1.2.4 Phương pháp dựa trên mô hình: 15
1.2.5 Phương pháp dựa trên lưới: 15
1.3 K-Means 15
1.3.1 Giới thiệu 15
1.3.2 Thuật toán 15
1.3.3 Ưu điểm 19
1.3.4 Hạn chế 20
1.3.5 Các thuật toán cải tiến K-Means 20
2 Chương trình Demo thuật toán K-MEANS 21
2.1 Giao diện chính của chương trình: 21
2.2 Hướng dẫn sử dụng: 22
3 KẾT LUẬN 22
3.1 Kết quả đạt được 22
Trang 53.2 Hạn chế 23 3.3 Hướng phát triển 23
4 TÀI LIỆU THAM KHẢO 23
Trang 6DANH SÁCH HÌNH
Hình 1: Gom cụm K-means 12
Hình 2: Một đồ thị cây phân cấp 13
Hình 3: Ví dụ gom cụm DBSCAN 14
Hình 4: Ví dụ gom cụm OPTICS 14
Hình 5: K-Means với 2 cụm 17
Hình 6: Giao diện chính của chương trình demo 21
Hình 7: Kết quả của chạy một chương trình 22
Trang 71 CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về khai phá dữ liệu
Sự phát triển nhanh chóng của khoa học kỹ thuật, công nghệ đồng thời ứng dụng của công nghệ thông tin vào nhiều lĩnh vực trong cuộc sống xã hội, kinh tế, chính trị, khoa học kỹ thuật, du lịch, … đã tạo ra nhiều cơ sở dữ liệu khổng lồ Do đó, để sử dụng hiệu quả nguồn dữ liệu thì đòi hỏi chúng ta cần có các công cụ hỗ trợ ra quyết định bên cạnh các phương pháp khai thác thông tin đã có
Khai phá dữ liệu – data mining là tiến trình khám phá tri thức tiềm ẩn trong các
cơ sở dữ liệu Đó là các quá trình trích lọc, tìm ra các tri thức hay các mẫu tiềm ẩn, chưa biết nhưng có ích từ các cơ sở dữ liệu lớn
Khai phá dữ liệu là tiến trình khái quát các sự kiện rời rạc trong dữ liệu thành các tri thức mang tính khái quát, quy luật hỗ trợ tích cực cho các tiến trình ra quyết định, hay dự đoán, dự báo giá trị cho các đối tượng nhắm vào phục vụ lợi ích của con người
Có thể chia khai phá dữ liệu thành hai dạng chính:
Khai phá dữ liệu theo hướng kiểm tra: là việc người ta dùng các đề xuất giả thiết, hệ thống kiểm tra tính đúng đắn của giả thiết Nó bao gồm: truy vấn, báo cáo, phân tích đa chiều, phân tích thông kê …
Khai phá dữ liệu theo hướng khám phá: là việc tìm kiếm các tri thức tiềm
ẩn trong cơ sở dữ liệu thông qua việc tiến hành xem xét tất cả các giả thiết
có khả năng hiện thực
1.1.1 Ý nghĩa của việc khai phá dữ liệu:
Tri thức được rút ra từ khai phá dữ liệu được dùng để:
Trang 8 Giải thích dữ liệu: sẽ cung cấp sự hiểu biết sâu sắc và hữu ích về hành vi của các đối tượng, giúp người quản lý hiểu rõ hơn về các đối tượng mà họ đang quản lý
Dự báo: dự báo các giá trị của các đối tượng mới:
o Khuynh hướng mua hàng của khách hàng
o Xác định rủi ro tín dụng với một khách hàng
o Định hướng tập trung nguồn lực doanh nghiệp
Cung cấp cơ chế hỗ trợ ra quyết định
Làm giàu dữ liệu: bổ sung thêm nhiều loại dữ thông tin có liên quan đến cơ sở dữ liệu gốc
Mã hóa dữ liệu: mục đích là chuyển đổi kiểu dữ liệu về những dạng thuận tiện để tiến hành các thuật toán khám phá dữ liệu
b) Khai thác dữ liệu: là quá trình “điều chỉnh đúng” các mô hình dữ liệu c) Tường trình, báo cáo kết quả: giải thích và hiển thị trực quan các kết quả của quá trình khai phá dữ liệu để hỗ trợ việc đánh giá chất lượng dữ liệu, đánh giá mô hình dữ liệu đã lựa chọn có phù hợp hay không
Trang 91.1.3 Tổng quan các kỹ thuật khai phá dữ liệu:
Nội dung chính của phần này sẽ giới thiệu các kỹ thuật khai phá dữ liệu phổ biến a) Khai thác tập phổ biến và luật kết hợp
Là quá trình khám phá các tập giá trị thuộc tính xuất hiện phổ biến trong các đối tượng dữ liệu Từ đó có thể tạo ra các luật kết hợp giữa các giá trị thuộc tính nhằm phản ánh khả năng xuất hiện đồng thời các giá trị thuộc tính trong các tập đối tượng
b) Khai thác mẫu tuần tự:
Là quá trình khám phá các mẫu tuần tự phổ biến phản án mối quan hệ giữa các biến cố trong các cơ sở dữ liệu hướng thời gian Một luật mô tả mẫu tuần tự có dạng X
Y phản ánh sự xuất hiện của của biến cố X sẽ dẫn đến việc xuất hiện kế tiếp biến cố
Y Do đó có thể khám phá được các xu thế phát triển của đối tượng
c) Phân lớp dữ liệu:
Là quá trình khám phá các luật phân loại hay đặc trưng cho các tập dữ liệu đã được xếp lớp Tập dữ liệu học bao gồm tập đối tượng đã được xác định sẽ được dùng để tạo mô hình phân lớp dựa trên đặc trưng của đối tượng trong tập dữ liệu học Các luật phân lớp được sử dụng để xây dựng các bộ phân lớp dữ liệu Phân lớp dữ liệu có vai trò quan trọng trong việc dự báo các khuynh hướng, quy luật phát triển Phân lớp dữ liệu là hình thức học có giám sát (supervised learning)
d) Gom cụm dữ liệu:
Là quá trình nhận diện các cụm tiềm ẩn trong tập các đối tượng chưa được xếp lớp Tiến hành khai thác cụm dựa trên mức độ tương tự với nhau giữa các đối tượng 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 cụm là cực đại, và mức độ tương tự giữa các đối tượng trong cụm khác là cực tiểu Các đối tượng trong cùng một cùng có cùng một tính chất đặc trưng Do đó khảo sát gom cụm sẽ giúp khái quát, tổng kết nhanh chóng nội dung của khối dữ liệu lớn
Trang 101.2 Cluster (gom cụm) là gì:
Gom cụm dữ liệu là hình thức học không giám sát (unsupervised learning) trong
đó các mẫu dùng trong quá trình học chưa được gán nhãn Mục đích của gom cụm dữ liệu là tìm những mẫu đại diện hoặc gom dữ liệu tương tự nhau (theo một chuẩn đánh giá nào đó) thành những cụm Một số ứng dụng tiêu biểu của gom cụm như:
Phân loại nhà theo vị trí, giá trị …
Phân loại khách hàng để có chính sách hỗ trợ khách hàng phù hợp
Phân loại bệnh nhân
Xem xét phân bố dữ liệu
Phân loại đất theo công năng hay thực tế sử dụng để có chính sách quy hoạch hợp lý
…
Một phương pháp gom cụm tốt nếu đạt được các tính chất sau:
Có độ tương tự cao trong cùng cụm
Có độ tương thự thấp giữa các cụm
Có khả năng phát hiện các mẫu tiềm ẩn
Có khả năng làm việc hiệu quả cao với các cơ sở dữ liệu với lượng dữ liệu lớn
Có khả năng làm việc với nhiều loại dữ liệu khác nhau
Có khả năng khám phá ra các cụm có phân bố theo các dạng khác nhau
Có khả năng làm việc với nhiễu và mẫu cá biệt
Không bị ảnh hưởng bởi thứ tự nhập dữ liệu
Làm việc tốt trên cơ sở dữ liệu có số chiều cao
Chấp nhận các ràng buộc do người dùng chỉ định
Có thể hiểu và sử dụng được kết quả gom cụm
Các phương pháp gom cụm phổ biến:
Trang 11 Các phương pháp phân hoạch
Các phương pháp phân cấp
Các phương pháp dựa trên mô hình
Các phương pháp dựa trên mật dộ
Các phương pháp dựa trên lưới
1.2.1 Phương pháp phân hoạch:
Đây là phương pháp tạo phân hoạch cho cơ sở dữ liệu DB có n đối tượng thành k cụm sao cho:
i Mỗi cụm chứa ít nhất một đối tượng
ii Mỗi đối tượng thuộc về một cụm duy nhất
iii k là số cụm đã được cho trước
Hiện nay có một số phương pháp phân hoạch dưa trên tập mờ, thì tiêu chuẩn (ii) không còn quan trọng, thay vào đó là mức độ phụ thuộc của đối tượng vào mỗi cụm, giá trị nằm trong đoạn [0;1]
Các phương pháp tiếp cận phân hoạch:
Tối ưu toàn cục bằng cách vét cạn
Các phương pháp heuristic:
K-Means (MacQueen 67): mỗi cụm được đại diện bằng trọng tâm của cụm K-means sẽ được trình bày chi tiết trong phần sau
Trang 12Hình 1: Gom cụm K-means
K-Medoids(Kaufman & Rouseau 87): còn được gọi là PAM ( partition around medoids) mỗi cụm được đại diện bằng một đối tượng thuộc cụm
đó
1.2.2 Phương pháp phân cấp (hierarchical clustering):
Là phương pháp tạo phân cấp cụm, không phải là phương pháp phân hoạch các đối tượng Phương pháp này không cần phải xác định số cụm ngay từ ban đầu Số cụm được quyết định bởi khoảng cách giữa các cụm hay điều kiện dừng Phân cấp cụm thường được biễu diễn dưới dạng đồ thị cây các cụm Lá biểu diễn các đối tượng riêng
lẻ, còn nút biễu diễn các cụm
Trang 13Hình 2: Một đồ thị cây phân cấp
1.2.3 Phương pháp dựa trên mật độ:
Trong phương pháp gom cụm dựa trên mật độ, các cụm được định nghĩa là những vùng có mật độ cao hơn các phần còn lại của tập dữ liệu Các đối tượng trong những vùng rời rạc – vùng này dùng trong gom cụm dữ liệu – thường được xem như là các dữ liệu dư thừa và các vùng biên của cụm dữ liệu
Phương pháp phổ biến của gom cụm theo mật độ:
DBSCAN(Density Based Spatial Clustering of Applications with Noise):
là một phương pháp phân cụm dựa trên mật độ, nó tìm một số cụm bắt đầu từ việc ước lượng phân phối mật độ của các nút tương ứng DBSCAN đòi hỏi hai tham số bán kính tìm kiếm (epsilon) và số điểm nhỏ nhất cần thiết phải để xây dựng một cụm (minPts) Nó bắt đầu từ một điểm tùy ý
mà chưa duyệt Điểm lân cận của được truy xuất, và nếu nó bao gồm nhiều điểm phù hợp, một cụm mới được tạo nên Ngược lại, điểm này được xem như là điểm dư thừa Chú ý rằng điểm này có thể được tìm thấy
Trang 14sau đó trong một độ lớn môi trường phù hợp của một điểm khác, và do
đó nó tạo nên một phần của một cụm nào đó
Hình 3: Ví dụ gom cụm DBSCAN
OPTICS (Ordering Points To Identify the Clustering Structure): có thể xem như là một phương pháp DBSCAN tổng quát trên nhiều khoảng khác nhau, thay thế tham số epsilon bằng khoảng cách cực đại
Hình 4: Ví dụ gom cụm OPTICS
DENCLUE (DENsity CLUstEring): đây là thuật toán ước lượng mật độ cục bộ của dữ liệu đầu vào theo một cách tương tự như ước lượng hàm mật độ xác suất hạt nhân Hạt nhân, gọi là hàm tác động, được sao chép vào mỗi hàm mật độ dữ liệu vị trí Cực đại của hàm mật độ gọi là mật độ các điểm hấp dẫn
Trang 15 Ngoài ra còn có nhiều thuật toán khác như: Fuzzy DBSCAN, DBCLASD, Recursive DBC
1.2.4 Phương pháp dựa trên mô hình:
Phương pháp dựa trên sự phù hợp giữa dữ liệu và các mô hình toán học Dựa trên dữ liệu phát sinh từ một sự kết hợp nào đó của phân phối xác suất ẩn Có hai phương pháp tiếp cận chính:
Tiếp cân thống kê: COBWEB, CLASSIT, AutoClass
Tiếp cận mạng noron: SOM (Self-Organizing Feature Map)
1.2.5 Phương pháp dựa trên lưới:
Dùng các cấu trúc dữ liệu dạng lưới với nhiều cấp dộ phân giải Những ô lưới có mật độ cao sẽ tạo thành những cụm Một số thuật toán phổ biến như: STING (statistical information grid), WaveCluster, CLIQUE (CLustering in QUEst)
1.3 K-Means
1.3.1 Giới thiệu
Là một phương pháp gom cụm theo cách tiếp cận phân hoạch, bằng cách cho trước số cụm k cần, sau đó xếp từng đối tượng dữ liệu vào trong mỗi cụ sao cho độ phân biệt trong các cụm là thấp nhất
Vấn đề đặt ra là với không gian dữ liệu với số chiều và số lượng phần tử lớn thì thời gian thực hiện tăng nhanh theo luật bùng nổ tổ hợp Với k cho trước có thể có (kn-(k-1)n-…-1) khả năng phân hoạch khác nhau Nếu n quá lớn thì hầu như không thể thực hiện được Vì vậy gom cụm phân hoạch phải có các thuật toán nhanh và có sử dụng heuristic để có giải pháp gom cụm đủ tốt, K-means là một trong những thuật toán như vậy
1.3.2 Thuật toán
Cho k là số cụm sau khi phân hoạch (1 <= k <= n, n là số đối tượng (điểm) trong không gian dữ liệu)
Trang 16Thuật toán k-means gồm 4 bước:
1 Chọn ngẫu nhiên k đối tượng làm trọng tâm ban đầu của k cụm
2 Gán (gán lại) từng đối tượng vào cụm có trọng tâm gần đối tượng đang xét nhất
Nếu không có phép gán lại nào thì dừng Vì không có phép gán lại nào có nghĩa là cụm đã ổn định, thuật toán không thể cải thiện làm giảm độ phân biệt giữa các đối tượng của cụm hơn được nữa
3 Tính trọng tâm cho từng cụm
4 Quay lại bước 2
Khoảng cách Euclidean được dùng làm hàm đo độ tương tự trong K-Means:
d(i,j)=√| | | | | |
Trong đó i, j là các điểm trong không gian p chiều
Trang 17Dùng k-means để gom cụm với k = 2
Bước 1 : Khởi tạo ma trận phân hoạch U có 4 cột ứng với 4 điểm và 2 dòng ứng với 2 cụm,
0 1 2 3 4 5 6 7 8 9 10
Trang 18Cho n= 0 (số lần lặp), tạo U0
Bước 3: Tính vector trọng tâm:
Do có hai cụm C1, C2 nên có hai vector trọng tâm v1, v2
Các tính vector trọng tâm:
Với vector v1 cho cụm 1:
14131211
41
*1431
*1321
*1211
*
11
11
m m m m
x m x m x m x
3
*03.105.101
42
* 14 32
* 13 22
* 12 12
*
11
12
m m m m
x m x m x m x
1 0 8 2
* 0 2 3
* 0 3
41
*2431
*2321
*2211
*
21
21
m m m m
x m x m x m x
1 1 0
3
* 1 3 1
* 1 5 1
42
*2432
*2322
*2212
*
21
22
m m m m
x m x m x m x
71
11
0
1
*18.2
*12
Trang 19Vậy v1 = (1.93, 2.33)
Gom các đối tượng vào cụm
Tính khoảng cách Euclide từ từng điểm đến cụm c1, c2 chọn cụm có khoảng cách gần nhất để đưa đối tượng vào cụm
2 2
)1212()1111()1,
1
d = (11)2 (33)2 0
2 2
) 22 12 ( ) 21 11 ( ) 2 ,
Trang 20 Tốc độ tương đối nhanh Độ phức tạp là O(tkn), trong đó:
o n: số đối tượng trong không gian dữ liệu
Khó xác định số cụm thực sự mà không gian dữ liệu có Do đó có thể phải thử với các giá trị k khác nhau
Khó phát hiện các loại cụm có hình dạng phức tạp và nhất là các dạng cụm không lồi
Không hề xử lý nhiễu và các mẫu cá biệt
Chỉ có thể áp dụng khi tính được trọng tâm
Không có sự khác biệt về mức độ ảnh hưởng của mỗi thuộc tính vào việc gom cụm, chúng ta xem tất cả thuộc tính đều cùng mức độ ảnh hưởng
1.3.5 Các thuật toán cải tiến K-Means
Thuật toán K-medoids:
o Tương tự thuật toán K-means
o Mỗi cụm được đại diện bởi một trong các đối tượng của cụm
o Chọn đối tượng ở gần tâm cụm nhất làm đại diện cho cụm đó
o K-medoid khắc phục được nhiễu, nhưng độ phức tạp lớn hơn ) )
n: là số đối tượng trong không gian dữ liệu
k: số cụm cần gom nhóm
t: số lần lặp, t khá nhỏ so với n