Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 101 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
101
Dung lượng
2,12 MB
Nội dung
i
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
===================
Nguyễn Thị Huế
NGHIÊN CỨUCÁCKỸTHUẬTPHÂNCỤMDỮLIỆU
VÀ ỨNGDỤNG
LUẬN VĂN THẠC SỸ
HÀ NỘI - 2011
ii
LỜI CẢM ƠN
Để hoàn thành được luận văn này, trước hết tôi xin gửi lời cảm ơn sâu sắc nhất
tới GS.TS Vũ Đức Thi, Viện trưởng Viện công nghệ thông tin đã tận tình hướng
dẫn, chỉ bảo, định hướng, đóng góp những ý kiến quý báu trong suốt quá trình tôi
thực hiện luận văn.
Tôi xin chân thành cảm ơn các thầy, cô giáo trong Bộ môn Hệ thống thông tin,
Khoa Công nghệ thông tin, Phòng Đào tạo Sau đại học - Nghiêncứu Khoa học,
Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đã tạo mọi điều kiện tốt nhất
để tôi hoàn thành khóa học này. Đồng thời, tôi cũng xin cảm ơn gia đình, bạn bè,
những người luôn khuyến khích và giúp đỡ tôi trong mọi hoàn cảnh khó khăn. Tôi
xin cảm ơn cơ quan vàcác đồng nghiệp đã hết sức tạo điều kiện cho tôi trong suốt
quá trình học tập và làm luận văn này.
Hà Nội, ngày 10 tháng 04 năm 2011
Học viên
Nguyễn Thị Huế
iii
LỜI CAM ĐOAN
Tôi xin cam đoan những kiến thức trình bày trong luận văn này là do tôi tìm
hiểu, nghiêncứuvà trình bày lại theo cách hiểu của tôi. Trong quá trình làm luận
văn tôi có tham khảo các tài liệu có liên quan và đã ghi rõ nguồn tài liệu tham khảo
đó. Phần lớn những kiến thức tôi trình bày trong luận văn này chưa được trình bày
hoàn chỉnh trong bất cứ tài liệu nào.
Hà Nội, ngày 10 tháng 04 năm 2011
Học viên
Nguyễn Thị Huế
iv
MỤC LỤC
MỞ ĐẦU 1
Chương 1 3
TỔNG QUAN VỀ KHAI PHÁ TRI THỨC VÀ KHAI PHÁ DỮLIỆU 3
1.1. Giới thiệu chung 3
1.2. Khai phá tri thức và quá trình khai phá tri thức 3
1.2.1. Khai phá tri thức 3
1.2.2. Quá trình khai phá tri thức 4
1.3. Khai phá dữliệu 5
1.3.1. Khai phá dữliệu 5
1.3.2. Mục tiêu của khai phá dữliệu 6
1.3.3. Quá trình khai phá dữliệu 6
1.3.4. Các hướng tiếp cận cơ bản vàkỹthuật áp dụng trong khai phá dữliệu 7
1.3.5. Thách thức – khó khăn trong khai phá tri thức và khai phá dữliệu 13
1.3.6. Ứngdụng của khai phá dữliệu 13
1.3.7. Kết luận 14
Chương 2. PHÂNCỤMDỮLIỆUVÀCÁCTHUẬT TOÁN TRONG 15
PHÂN CỤMDỮLIỆU 15
2.1. Giới thiệu 15
2.2. Cácứngdụng của phâncụm 16
2.3. Các yêu cầu về thuật toán phâncụmdữliệu 17
2.4. Các kiểu dữliệu trong phâncụm 18
2.5. Phép đo độ tương tự và khoảng cách đối với các kiểu dữliệu 21
2.6. Các hướng tiếp cận của bài toán phâncụmdữliệu 28
2.6.1. Phương pháp phân hoạch (Partitioning Methods) 28
2.6.2. Phương pháp phân cấp (Hierarchical Methods) 36
2.6.3. Phương pháp dựa trên mật độ (Density-Based Methods) 44
2.6.4. Phương pháp dựa trên lưới (Gird-Based Methods) 51
2.6.5. Kết luận 56
Chương 3: ỨNGDỤNG 58
KẾT LUẬN 65
TÀI LIỆU THAM KHẢO 66
PHỤ LỤC 68
v
DANH MỤC CÁCKÝ HIỆU, TỪ VIẾT TẮT
Từ hoặc cụm từ Từ viết tắt Từ tiếng Anh
Cơ sở dữliệu CSDL DataBase
Khai phá tri thức trong cơ sở dữ liệu
KDD Knowledge Discovery in
Databases
Khai phá dữliệu KPDL Data Mining
Phân cụmdữliệu PCDL Data Clustering
Khai phá tri thức KPTT Knowledge Discovery
vi
DANH MỤC HÌNH VẼ
Hình 1.2: Quá trình khai phá tri thức 4
Hình 1.3: Qúa trình khai phá dữliệu 7
Hình 2.1: Mô hình về phâncụm dựa trên tiêu chuẩn thu nhập và số nợ 15
Hình 2.2: Khoảng cách Euclidean 24
Hình 2.3: Bảng tham số 26
Hình 2.4: Ví dụ quá trình phân hoạch với k=3 30
Hình 2.6: Ví dụ về một số hình dạng cụmdữliệu được khám phá bởi K-means 32
Hình 2.7: Các chiến lược phâncụmphân cấp 37
Hình 2.8: Ví dụ về kết quả phâncụm bằng thuật toán BIRCH. 39
Hình 2.9. Khái quát thuật toán CURE 41
Hình 2.10. Cáccụmdữliệu được khám phá bởi CURE 41
Hình 2.11. Ví dụ thực hiện phâncụm bằng thuật toán CURE 43
Hình 2.12: Các bước thuật toán CHAMELEON 44
Hình 2.13: Hình dạng cáccụm được khám phá bởi DBSCAN 45
Hình 2.14: Mật độ - đến được trực tiếp 46
Hình 2.15: Mật độ - đến được 47
Hình 2.16: Mật độ - liên thông 47
Hình 2.17: Cụmvà nhiễu 48
Hình 2.18: Mô hình cấu trúc dữliệu lưới 52
Hình 2.19: Mô hình thuật toán STING 53
Hình 3.1: Kết quả phâncụm với Minpt = 3, Epxilon = 200000000 60
Hình 3.2: Kết quả phâncụm trên dữliệu thuộc tính và trên bản đồ 61
Hình 3.3: Màu của cáccụm thể hiện trên bản đồ 61
Hình 3.4: Giao diện chương trình Phâncụmdữliệu bằng thuật toán DBSCAN 68
Hình 3.5: Giao diện chương trình sau khi thực hiên phâncụm 69
Hình 3.6: Kết quả phâncụm 70
1
MỞ ĐẦU
Sự phát triển của công nghệ thông tin và việc ứngdụng công nghệ thông tin
trong các lĩnh vực của đời sống, kinh tế, xã hội trong nhiều năm qua cũng đồng
nghĩa với lượng dữliệu đã được các cơ quan thu thập và lưu trữ ngày một tích lũy
nhiều lên. Hơn nữa, các công nghệ lưu trữ và phục hồi dữliệu phát triển một cách
nhanh chóng vì thế cơ sở dữliệu ở các cơ quan, doanh nghiệp, đơn vị ngày càng
nhiều thông tin tiềm ẩn phong phú và đa dạng. Mặt khác, trong môi trường cạnh
tranh, người ta ngày càng cần có nhiều thông tin với tốc độ nhanh để trợ giúp việc
ra quyết định và ngày càng có nhiều câu hỏi mang tính chất định tính cần phải trả
lời dựa trên một khối lượng dữliệu khổng lồ đã có. Với những lý do như vậy, các
phương pháp quản trị và khai thác cơ sở dữliệu truyền thống ngày càng không đáp
ứng được thực tế đã làm phát triển một khuynh hướng kỹthuật mới đó là Kỹthuật
khai phá tri thức và khai phá dữliệu (KDD - Knowledge Discovery and Data
Mining). Khai phá tri thức trong cơ sở dữliệu có thể được coi như quá trình tìm tri
thức có ích, cần thiết, tiềm ẩn và chưa được biết trước trong cơ sở dữliệu lớn
(discovery of interesting, implicit, and previously unknown knowledge from large
databases)[5]
Kỹ thuật khai phá tri thức và khai phá dữliệu đã và đang được nghiên cứu,
ứng dụng trong nhiều lĩnh vực khác nhau ở các nước trên thế giới, tại Việt Nam kỹ
thuật này tương đối còn mới mẻ tuy nhiên cũng đang được nghiêncứuvà dần đưa
vào ứngdụng trong những năm gần đây. Những vấn đề được quan tâm là phân lớp
nhận dạng mẫu, luật kết hợp, phâncụmdữ liệu, phần tử dị biệt,…
Phân cụm cơ sở dữliệu là một trong những phương pháp quan trọng trong
quá trình tìm kiếm tri thức. Phâncụm là phương pháp học từ quan sát (learning
from obversation) hay còn gọi là học không thầy (unupervised learning or
automatic classfication) trong trí tuệ nhân tạo. Phâncụm đặc biệt hiệu quả khi ta
không biết về thông tin của các cụm, hoặc khi ta quan tâm tới những thuộc tính của
cụm mà chưa biết hoặc biết rất ít về những thông tin đó. Phâncụm được coi như
một công cụ độc lập để xem xét phân bố dữ liệu, làm bước tiền xử lý cho cácthuật
toán khác. Việc phâncụmdữliệu có rất nhiều ứngdụng như trong tiếp thị, sử dụng
đất, bảo hiểm, hoạch định thành phố … Hiện nay, phâncụmdữliệu là một hướng
được nghiêncứu rất nhiều trong Tin học. Chính vì lý do đó mà em chọn đề tài
“Nghiên cứucáckỹthuậtphâncụmdữliệuvàỨng dụng” là hướng nghiêncứu
chính cho luận văn của mình.
2
Nội dung chính của luận văn được trình bày trong 3 chương:
Chương 1: Tổng quan về khai phá tri thức và khai phá dữ liệu. Trong
chương này trình bày tổng quan về khai phá tri thức, khai phá dữ liệu; qui trình khai
phá tri thức, khai phá dữ liệu; …
Chương 2: Phâncụmvàcáckỹthuậtphân cụm. Trong chương này trình bày
tổng quan về phâncụmdữ liệu, một số phương pháp phâncụmdữliệudữliệu phổ
biến như phâncụmphân hoạch, phâncụmphân cấp, phâncụm dựa trên mật độ,
phân cụm dựa trên lưới; trình bày một số giải thuật điển hình của mỗi phương pháp
phân cụm; …
Chương 3: Ứng dụng, triển khai bài toán với giải thuật DBSCAN
Phần kết luận trình bày tóm tắt về các nội dung thực hiện trong luận văn,
đồng thời đưa ra các vấn đề nghiêncứu tiếp cho tương lai. Phần phụ lục trình bày
một số modul chương trình cài đặt bằng thuật toán DBSCAN.
Do thời gian nghiêncứuvà trình độ có hạn, luận văn không tránh khỏi những
hạn chế và thiếu sót. Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các
thầy thầy/ cô giáo cũng như bạn bè và đồng nghiệp.
Em xin chân thành cảm ơn!
3
Chương 1.
TỔNG QUAN VỀ KHAI PHÁ TRI THỨC VÀ KHAI PHÁ DỮLIỆU
1.1. Giới thiệu chung
Cách mạng khoa học kỹthuật tạo ra bước nhảy vọt trong tất cả các lĩnh vực
của đời sống kinh tế, xã hội, … Một thành công không thể không kể đến của cuộc
cách mạng này là sự bùng nổ thông tin, khiến cho khối lượng thông tin mà con
người thu thập và lưu trữ ngày một khổng lồ, kích thước của CSDL tăng một cách
nhanh chóng. Trong những CSDL đó tiềm ẩn nhiều rất nhiều tri thức mà con người
chưa khám phá ra được. Đứng trước núi dữliệu khổng lồ thu thập được, việc khám
phá tri thức và thông tin trở nên rất khó khăn. Chính vì lý do đó nhu cầu tìm kiếm
tri thức trong khối CSDL đã nảy sinh, nhu cầu này ngày một cấp thiết và dẫn tới sự
hình thành của một lĩnh vực mới – lĩnh vực khai phá dữliệu (Data Mining) hay khai
phá tri thức trong cơ sở dữliệu (Knowledge Discovery in databases - KDD).
Khai phá tri thức trong cơ sở dữliệu có thể được coi như quá trình tìm tri
thức có ích, cần thiết, tiềm ẩn và chưa được biết trước trong cơ sở dữliệu lớn
(discovery of interesting, implicit, and previously unknown knowledge from large
databases)
Tuy mới ra đời nhưng khai phá tri thức và khai phá dữliệu đã và đang được
nghiên cứu, ứngdụng trong nhiều lĩnh vực khác nhau ở các nước trên thế giới, tại
Việt Nam kỹthuật này tương đối còn mới mẻ tuy nhiên cũng đang được nghiêncứu
và dần đưa vào ứngdụng trong những năm gần đây. Những vấn đề được quan tâm
là phân lớp nhận dạng mẫu, luật kết hợp, phâncụmdữ liệu, phần tử dị biệt,…
1.2. Khai phá tri thức và quá trình khai phá tri thức
1.2.1. Khai phá tri thức
Khai phá hay phát hiện tri thức trong các cơ sở dữliệu là một quy trình nhận
biết các mẫu hoặc các mô hình trong dữliệu với các tính năng: Phân tích, tổng hợp,
hợp thức, khả ích, và có thể hiểu được. Còn khám phá dữliệu là một bước trong qui
trình khám phá tri thức gồm có cácthuật toán khai thác dữliệu chuyên dùng dưới
một số qui định về hiệu quả tính toán chấp nhận được để tìm ra các mẫu hoặc các
4
mô hình trong dữ liệu. Nói một cách khác, mục đích của phát hiện tri thức và khai
phá dữliệu chính là tìm ra các mẫu và/hoặc các mô hình đang tồn tại trong các cơ
sở dữliệu nhưng nhưng vẫn còn bị che khuất bởi hàng núi dữ liệu.
1.2.2. Quá trình khai phá tri thức
Việc khai phá tri thức thông thường có thể mô tả bằng sơ đồ các quy trình
sau [4]:
Hình 1.2: Quá trình khai phá tri thức
Trong đó, mỗi bước là một quy trình có vai trò riêng và nhiệm vụ khác nhau,
bao gồm:
Bước thứ nhất: tìm hiểu lĩnh vực ứngdụngvà hình thành bài toán, bước này
sẽ quyết định cho việc rút ra được các tri thức hữu ích và cho phép chọn các phương
pháp khai phá dữliệu thích hợp với mục đích ứngdụngvà bản chất của dữ liệu.
Bước thứ hai: thu thập và xử lý dữliệu thô, còn được gọi là tiền xử lý dữliệu
nhằm loại bỏ nhiễu, xử lý việc thiếu dữ liệu, biến đổi dữliệuvà rút gọn dữliệu nếu
cần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn bộ quy trình khai
phá tri thức.
Bước thứ ba: khai phá dữ liệu, hay nói cách khác là trích ra các mẫu hoặc/và
các mô hình ẩn dưới cácdữ liệu.
[...]... thế, lợi ích và khả năng ứngdụng thực tế to lớn của khai phá dữliệu Trong chương này đã trình bày một cách tổng quan về khai phá tri thức và khai phá dữliệu 15 Chương 2 PHÂNCỤMDỮLIỆUVÀCÁCTHUẬT TOÁN TRONG PHÂNCỤMDỮLIỆU 2.1 Giới thiệu Phâncụm là quá trình nhóm các điểm dữliệu trong cơ sở dữliệu thành cáccụm sao cho những điểm dữliệu trong cùng một cụm có độ tương đồng lớn và những điểm... chọn ra một thuật toán phâncụm cụ thể thích ứng với ứngdụng đó Kết quả đánh giá cho từng thuật toán cũng phụ thuộc vào những yêu cầu của từng ứngdụng 2.2 Cácứngdụng của phân cụmPhâncụmdữliệu đã và đang được nghiên cứu, ứngdụng trong nhiều lĩnh vực khác nhau ở các nước trên thế giới, tại Việt Nam kỹthuật này tương đối còn mới mẻ tuy nhiên cũng đang được nghiêncứuvà dần đưa vào ứngdụng tại... trọn các phương pháp phâncụm 2.4 Các kiểu dữliệu trong phâncụm Trong phân cụm, các đối tượng dữliệu thường được diễn tả dưới dạng các đặc tính hay còn gọi là thuộc tính ( Khái niệm các kiểu dữliệuvàcác kiểu thuộc tính dữliệu được xem là tương đương với nhau) Các thuộc tính này là các tham số 19 để giải quyết vấn đề phâncụmvà sự lựa chọn chúng có tác động đáng kể đến kết quả phâncụm Phân. .. mẫu, phân loại trang Web… Ngoài ra, phân cụmdữliệu còn có thể được sử dụng như một bước tiền xử lí cho cácthuật toán khai phá dữliệu khác 1.3.4.3 Phân lớp dữliệuvà hồi qui Mục tiêu của phương pháp phân lớp dữliệu là dự đoán nhãn lớp cho các mẫu dữliệu Quá trình phân lớp dữliệu thường gồm 2 bước: xây dựng mô hình và sử dụng mô hình: - Bước 1: một mô hình sẽ được xây dựng dựa trên việc phân. .. theo dữliệu thời tiết ) Đối với hướng tiếp cận này thường sử dụng một số kỹ 8 thuật của học máy như cây quyết định (decision tree), mạng nơron nhân tạo (neural network), 1.3.4.2 Phân cụmdữliệu Mục tiêu của phương pháp phân cụmdữliệu là quá trình nhóm các điểm dữliệu trong cơ sở dữliệu thành cáccụm sao cho những điểm dữliệu trong cùng một cụm có độ tương đồng lớn và những điểm không cùng một cụm. .. dữliệu đầu vào (Cùng một tập dữ liệu, khi đưa vào xử lý cho thuật toán PCDL 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âncụm ) Thuật toán không đòi hỏi những tri thức về cơ sở dữliệu từ người dùng Thuật toán phải làm việc được với cơ sở dữliệu chứa nhiều lớp đối tượng dữliệu phức tạp và có tính chất khác nhau Thuật toán... Thuật toán phải 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ố khác chiều nhau Thuật toán phải dễ hiểu, dễ cài đặt và khả thi: Người sử dụng có thể chờ đợi những kết quả phâncụm dễ hiểu, dễ lý giải và dễ sử dụng Nghĩa là, sự phâncụm có thể cần được giải thích ý nghĩa vàứngdụng rõ ràng Việc nghiêncứu cách để một ứngdụng đạt được mục tiêu rất quan... Điểm mạnh của phân cụmdữliệu là đưa ra được những cấu trúc có ích hoặc những cụmcác đối tượng tìm thấy trực tiếp từ dữliệu mà không cần bất kì một tri thức cơ sở nào Giống như cách tiếp cận học máy, phâncụmdữliệu được hiểu như là phương pháp “học không có thầy” (unsupervised learning) Không giống như phân lớp dữ liệu, phâncụmdữliệu không đòi hỏi phải định nghĩa trước các mẫu dữliệu huấn luyện... 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 CSDL Hơn nữa, các phương pháp phâncụm cần có cách thức biểu diễn cấu trúc của các CSDL, với mỗi cách thức biểu diễn khác nhau sẽ có tương ứngthuật toán phâncụm phù hợp Vì vậy, phâncụmdữ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ọn vẹn và phù hợp với nhiều dạng dữ liệu. .. có thể coi phâncụmdữliệu là một cách học bằng quan sát (learning by observation), trong khi phân lớp dữliệu là học bằng ví dụ (learning by example) Trong phương pháp này sẽ không thể biết kết quả cáccụm thu được sẽ như thế nào khi bắt đầu quá trình Vì vậy, cần có một chuyên gia để đánh giá cáccụm thu được Phâncụmdữliệu được sử dụng nhiều trong cácứngdụng về phân đoạn thị trường, phân đoạn .
Chương 2: Phân cụm và các kỹ thuật phân cụm. Trong chương này trình bày
tổng quan về phân cụm dữ liệu, một số phương pháp phân cụm dữ liệu dữ liệu phổ. dữ liệu 13
1.3.7. Kết luận 14
Chương 2. PHÂN CỤM DỮ LIỆU VÀ CÁC THUẬT TOÁN TRONG 15
PHÂN CỤM DỮ LIỆU 15
2.1. Giới thiệu 15
2.2. Các ứng dụng của phân