Vì vậy phân cụm dữ liệu vẫn đang làmột vấn đề khó và mở, vì phải giải quyết nhiều vấn đề cơ bản một cách trọnvẹ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ệuh
Trang 1Đại Học Công Nghệ Thông Tin Đại Học Quốc Gia Thành Phố Hồ Chí Minh
TP HCM 11/2012
Đề tàiPhân cụm dữ liệu bằng thuật
Trang 2Lời cảm ơn
Lời đầu tiên em xin chân thành cảm ơn thầy Đỗ Phúc đã truyền đạt cho em những bài học thật bổ ích với những câu truyện đầy tính sáng tạo và lý thú.
Cảm ơn nhà trường đã tạo điều kiện cho em cùng các bạn trong lớp có thể học tập
và tiếp thu những kiến thức mới.
Em cũng chân thành cảm ơn các bạn trong lớp đã chia sẻ cho nhau những tài liệu
và hiểu biết về môn học để cùng hoàn thành tốt môn học này.
Trong thời gian vừa qua mặc dù em đã cố gắng rất nhiều để hoàn thành tốt đề tài của mình, song chắc chắn kết quả không tránh khỏi những thiếu sót Em kính mong được
sự cảm thông và tận tình chỉ bảo của thầy.
TP.Hồ Chí Minh Tháng 11/2012
Học viên thực hiện Trương Lê Hưng Lớp Cao Học khóa 6
Trang 3Nhận xét
-Lời mở đầu
Trang 4Sự phát triển nhanh chóng của thông tin số trong nhiều lĩnh vực của đời sống, kinh
tế xã hội đã làm cho hệ thống cơ sở dữ liệu tích lũy được càng ngày càng lớn Tuy nhiênmột phần lớn dữ liệu thu thập được không được tận dụng đúng cách để dẫn đến rất nhiều
cơ sở dữ liệu trở nên vô nghĩa
Chính những điều đó đã đặt ra vấn đề làm sao để có những kỹ thuật và công cụ đểchuyển đổi những nguồn dữ liệu đó thành tri thức có ích cho con người sử dụng Từ đó,các kỹ thuật về khai mỏ dữ liệu và kho dữ liệu được chú ý nhiều hơn Khai phá dữ liệuđang được áp dụng rộng rãi trong nhiều lĩnh vực trong cuộc sống
Trong nội dung bài tiểu luận này em xin được trình bày khái quát cơ sở lý thuyết
về khai phá dữ liệu và kho dữ liệu, cũng như tập trung tìm hiểu về phân cụm dữ liệu sửdụng thuật toán K-means Nội dung bài tiểu luận bao gồm:
Phần 1 : Cơ sở lý thuyết về khai phá dữ liệu và kho dữ liệuPhần 2 : Phân cụm dữ liệu và các thuật toán trong phân cụm dữ liệuPhần 3 : Thuật toán K-means
Phần 4 : Demo
Trang 5Mục lục
Phần I Cơ sở lý thuyết về khai phá dữ liệu và nhà kho dữ liệu 6
1 Giới thiệu về khai phá dữ liệu 6
2 Quá trình khám phá trí thức và khai phá dữ liệu 6
3 Các chức năng chính của khai phá dữ liệu 7
4 Các ứng dụng khai phá dữ liệu 8
Phần II Phân cụm dữ liệu và các thuật toán phân cụm dữ liệu 9
1 Phân cụm dữ liệu 9
2 Các ứng dụng của phân cụm dữ liệu 10
3 Những kỹ thuật tiếp cận phân cụm dữ liệu 11
4 Một số thuật toán trong phân cụm dữ liệu 13
a Thuật toán phân cụm phân cấp 13
b Thuật toán phân cụm phân hoạch 14
c Thuật toán phân cụm dựa trên mật độ 15
d Thuật toán phân cụm dựa trên lưới 15
Phần III Thuật toán phân cụm dữ liệu K-means 17
1 Thuật toán K-means 17
2 Thuật giải 18
3. Bài toán ví dụ 19
4 Đánh giá thuật toán - ưu điểm - nhược điểm 22
5 Ứng dụng của thuật toán K-means 23
Phần IV Demo 24
1 Giao diện chương trình demo 24
2 Yêu cầu hệ thống 24
3 Phát biểu bài toán 24
4 Phân tích và thiết kế 25
Tài liệu tham khảo 26
Trang 6Phần I Cơ sở lý thuyết về khai phá dữ liệu và nhà kho dữ liệu
1 Giới thiệu về khai phá dữ liệu
Khai phá dữ liệu (Data Mining) là một khái niệm ra đời vào những năm
cuối của thập kỷ 1980 Nó là quá trình trích xuất các thông tin có giá trị tiềm ẩnbên trong lượng lớn dữ liệu được lưu trữ trong các CSDL, kho dữ liệu Một
ví dụ hay được sử dụng là là việc khai thác vàng từ đá và cát, Dataming được
ví như công việc "Đãi cát tìm vàng" trong một tập hợp lớn các dữ liệu cho
trước Thuật ngữ Dataming ám chỉ việc tìm kiếm một tập hợp nhỏ có giá trị từ
một số lượng lớn các dữ liệu thô Có nhiều thuật ngữ hiện được dùng cũng cónghĩa tương tự với từ Datamining như Knowledge Mining (khai phá tri thức),knowledge extraction(chắt lọc tri thức), data/patern analysis(phân tích dữ liệu/mẫu), data archaeoloogy (khảo cổ dữ liệu), datadredging(nạo vét dữ liệu),
2 Quá trình khám phá trí thức và khai phá dữ liệu
Các bước chính thường sử dụng trong khai phá dữ liệu:
Trang 7 Gom dữ liệu: thu thập dữ liệu là bước đầu tiên trong việc khai phá dữ liệu.
Dữ liệu có thể lấy từ nhiều nguồn, từ các website trên mạng v.v…
Trích lọc dữ liệu: Trích chọn dữ liệu từ kho dữ liệu và phân chia theo các
tiêu chuẩn để dễ cho việc khai thác nguồn dữ liệu này
Làm sạch, tiền xử lý dữ liệu: Loại bỏ dữ liệu nhiễu, dữ liệu dư thừa hay
các dữ liệu không đủ tính chặt chẽ, logic…
Chuyển đổi dữ liệu: Các dữ liệu được chuyển đổi sang các dạng phù hợp
cho quá trình xử lý
Khai phá dữ liệu: Là một bước quan trọng nhất, trong đó sử dụng các
thuật toán thông minh để trích ra các mẫu dữ liệu
Đánh giá các luật và biểu diễn tri thức: là quá trình đánh giá các kết quả
tìm được, sau đó sử dụng các kỹ thuật để biểu diễn cho người dùng
3 Các chức năng chính của khai phá dữ liệu
Data Mining được chia thành một số hướng chính như sau:
Mô tả khái niệm (concept description): thiên về mô tả, tổng hợp và tóm
tắt khái niệm
Ví dụ: tóm tắt văn bản
Luật kết hợp (association rules): là dạng luật biểu diễn tri thứ ở dạng khá
đơn giản
Ví dụ: “60% nam giới vào siêu thị nếu mua bia thì có tới 80% trong số họ
sẽ mua thêm thịt bò khô” Luật kết hợp được ứng dụng nhiều trong lĩnh vực
kính doanh, y học, tài chính & thị trường chứng khoán, v.v
Phân lớp và dự đoán (classification & prediction): xếp một đối tượng
vào một trong những lớp đã biết trước
Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết Hướng tiếp cận nàythường sử dụng một số kỹ thuật của machine learning như cây quyết định(decision tree), mạng nơ ron nhân tạo (neural network), v.v Người ta còngọi phân lớp là học có giám sát
Trang 8 Phân cụm (clustering): xếp các đối tượng theo từng cụm (số lượng cũng
như tên của cụm chưa được biết trước Người ta còn gọi phân cụm là họckhông giám sát
Khai phá chuỗi (sequential/temporal patterns): tương tự như khai phá
luật kết hợp nhưng có thêm tính thứ tự và tính thời gian Hướng tiếp cậnnày được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứngkhoán vì nó có tính dự báo cao
4 Các ứng dụng khai phá dữ liệu
Data mining có một số ứng dụng điển hình vào các lĩnh vực như:
Thông tin thương mại: Phân tích dữ liệu bán hàng, tiếp thị Phân tích vốn
đầu tư, chấp thuận cho vay v.v…
Thông tin sản xuất: Điều khiển và lập lịch, quản lý v.v…
Thông tin khoa học: phân tích phát hiện các dấu hiệu thời tiết bất thường,
động đất v.v…
Trang 9Phần II Phân cụm dữ liệu và các thuật toán phân cụm dữ liệu
1 Phân cụm dữ liệu
a Định nghĩa
Phân cụm dữ liệu(Data Clustering) hay phân cụm, cũng có thể gọi là phântích cụm, phân tích phân đoạn, phân tích phân loại, là quá trình nhóm một tậpcác đối tượng thực thể hay trừu tượng thành lớp các đối tượng tương tự Mộtcụm là một tập hợp các đối tượng dữ liệu mà các phần tử của nó tương tựnhau cùng trong một cụm và phi tương tự với các đối tượng trong các cụmkhác Một cụm các đối tượng dữ liệu có thể xem như là một nhóm trong nhiềuứng dụng
Phân cụm dữ liệu là một môn khoa học trẻ đang phát triển mạnh mẽ Cómột số lượng lớn các bài báo nghiên cứu trong nhiều hội nghị, hầu hết trongcác lĩnh vực của khai phá dữ liệu: thống kê, học máy, cơ sở dữ liệu không gian,sinh vật học, kinh doanh, v.v với tầm quan trọng và các kỹ thuật khác nhau
Do số lượng lớn các dữ liệu đã thu thập trong cơ sở dữ liệu nên phép phân tíchcụm gần đây trở thành một chủ đề tích cực cao trong nghiên cứu khai phá dữliệu
b Mục tiêu của phân cụm dữ liệu
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ệuchưa có nhãn Nhưng để 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ả phân cụm Vì vậy, nó đòi hỏi người sử dụng phảicung 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 Theo các nghiên cứu cho thấy thì hiện nay chưa có một phương pháp phâncụ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
Trang 10trú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 Vì vậy phân cụm dữ liệu vẫn đang làmột vấn đề khó và mở, vì phải giải quyết nhiều vấn đề cơ bản một cách trọnvẹ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ệuhỗ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ộttrong những thách thức lớn trong lĩnh vực khai phá dữ liệu.
2 Các ứng dụng của phân cụm dữ liệu
Phân cụm dữ liệu được ứng dụng trong nhiều lĩnh vực như:
Thương mại: Tìm kiếm nhóm các khách hàng quan trọng có đặc trưng
tương đồng và những đặc tả họ từ các bản ghi mua bán trong cơ sở dữ liệu.Trong nghiên cứu thị trường, phân cụm dữ liệu được sử dụng để phânđoạn thị trường và xác định mục tiêu thị trường (Chrisoppher, 1969;Saunders, 1980, Frank and Green, 1968) Trong phân đoạn thị trường,phân cụm dữ liệu thường được dùng để phân chia thị trường thành nhưngcụm mang ý nghĩa, chẳng hạn như chia ra đối tượng nam giới từ 21-30tuổi và nam giới ngoài 51 tuổi, đối tượng nam giới ngoài 51 tuổi thườngkhông có khuynh hướng mua các sản phẩm mới
Sinh học: Phân loại các gen với các chức năng tương đồng và thu được các
cấu trúc trong mẫu Phân cụm là một trong những phân tích được sử dụngthường xuyên nhất trong biểu diễn dữ liệu gene (Yeung et al., 2003; Eisen
at al., 1998) Dữ liệu biểu diễn gene là một tâp hợp các phép đo được lấy từDNA microarray (còn gọi là DNA chip hay gene chip) là một tấm thủy tinhhoặc nhựa trên đó có gắn các đoạn DNA thành các hàng siêu nhỏ Các nhànghiên cứu sử dụng các con chip như vậy để sàng lọc các mẫu sinh họcnhằm kiểm tra sự có mặt hàng loạt trình tự cùng một lúc Các đoạn DNAgắn trên chip được gọi là probe (mẫu dò) Trên mỗi điểm của chip có hàngngàn phân tử probe với trình tự giống nhau
Trang 11 Thư viện: Phân loại các cụm sách có nội dung và ý nghĩa tương đồng nhau
để cung cấp cho độc giả
Bảo hiểm: Nhận dạng nhóm tham gia bảo hiểm có chi phí bồi thường cao,
nhận dạng gian lận thương mại
Quy hoạch đô thị: Nhận dạng các nhóm nhà theo kiểu và vị trí địa lí,
nhằm cung cấp thông tin cho quy hoạch đô thị
Nghiên cứu trái đất: Phân cụm để theo dõi các tâm động đất nhằm cung
cấp thông tin cho nhận dạng các vùng nguy hiểm
WWW: Có thể khám phá các nhóm tài liệu quan trọng, có nhiều ý nghĩa
trong môi trường Web Các lớp tài liệu này trợ giúp cho việc KPTT từ dữliệu
3 Những kỹ thuật tiếp cận phân cụm dữ liệu
Các kỹ thuật phân cụm có rất nhiều cách tiếp cận và các ứng dụng trongthực tế, nó đều hướng tới hai mục tiêu chung đó là chất lượng của các cụmkhám phá được và tốc độ thực hiện của thuật toán Hiện nay, các kỹ thuật phâncụ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: 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 đượcthiế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 gianEuclidean Ngoài ra, phương pháp này cũng phụ thuộc vào khoảng cách cơ bảngiữ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 vớimỗ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
Phương pháp phân cụm phân cấp: Phương pháp này 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
Trang 12dựng theo kỹ thuật đệ quy Có hai cách tiếp cận phổ biến của kỹ thuật này đólà:
- Tiếp cận Bottom-Up
- Tiếp cận Top-Down
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ậncủa một đối tượng dữ liệu theo một nghĩa nào đó Trong cách tiếp cận này, khimột 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 tuợng lân cận này phải lớn hơn một ngưỡng đãđược xác định trước Phương pháp phân cụm dựa trên mật độ của các đốitượng để xác định các cụm dữ liệu có thể phát hiện ra các cụm dữ liệu với hìnhthù bất kỳ Kỹ thuật này có thể khắc phục được các phần tử ngoại lai hoặc giátrị nhiễu rất tốt, tuy nhiên việc xác định các tham số mật độ của thuật toán làrất 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âncụm
Phương pháp phân cụm dựa trên lưới: Kỹ thuật phân cụm dựa trên lưới
thích hợp với dữ liệu nhiều chiều, dựa trên cấu trúc dữ liệu lưới để phân cụm,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ụctiêu của phương pháp này là lượng hóa dữ liệu thành các ô tạo thành cấu trúc
dữ liệu lưới Sau đó, các thao tác phân cụm chỉ cần làm việc với các đối tượngtrong 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 dựatrên lưới này không di chuyển các đối tượng trong các ô mà xây dựng nhiềumức phân cấp của nhóm các đối tượng trong một ô Phương pháp này gầngiố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 ô,đồng thời giải quyết khắc phục yêu cầu đối với dữ liệu nhiều chiều mà phươngpháp phân phân cụm dựa trên mật độ không giải quyết được ưu điểm củaphương pháp phân cụm dựa trên lưới là thời gian xử lí nhanh và độc lập với số
Trang 13đối tượng dữ liệu trong tập dữ liệu ban đầu, thay vào đó là chúng phụ thuộcvào số ô trong mỗi chiều của không gian lưới.
Phương pháp phân cụm dựa trên mô hình: Phương 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ộtcá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ặcphâ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ânhoạch Phương pháp phân cụm dựa trên mô hình cố gắng khớp giữa các dữ liệuvớ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ỗnhợp phân phối xác suất cơ bản Các thuật toán phân cụm dựa trên mô hình cóhai cách tiếp cận chính: mô hình thống kê và mạng nơron
4 Một số thuật toán trong phân cụm dữ liệu
a Thuật toán phân cụm phân cấp
Thuật toán CURE: Trong khi hầu hết các thuật toán thực hiện phân cụm
với các cụm hình cầu và kích thước tương tự, như vậy là không hiệu quả khixuất hiện các phần tử ngoại lai Thuật toán CURE khắc phục được vấn đề này
và tốt hơn với các phần tử ngoại lai Thuật toán này định nghĩa một số cố địnhcác điểm đại diệnnằm rải rác trong toàn bộ không gian dữ liệu và được chọn để
mô tả các cụm được hình thành Các điểm này được tạo ra nhờ lựa chọn cácđối tượng nằm rải rác cho cụm và sau đó “co lại” hoặc di chuyển chúng vềtrung tâm cụm bằng nhân tố co cụm Quá trình này được lặp lại và như vậytrong quá trình này, có thể đo tỉ lệ gia tăng của cụm Tại mỗi bước của thuậttoán, hai cụm có cặp các điểm đại diện gần nhau (mỗi điểm trong cặp thuộc vềmỗi cụm khác nhau) được hòa nhập
Thuật toán ANGES: Phương pháp phân hoạch ANGNES là kỹ thuật kiểu
tích tụ ANGNES bắt đầu ở ngoài với mỗi đối tượng dữ liệu trong các cụmriêng lẻ Các cụm được hòa nhập theo một số loại của cơ sở luật, cho đến khichỉ có một cụm ở đỉnh của phân cấp, hoặc gặp điều kiện dừng Hình dạng này