Vì vậy,đối với những người làm kinh tế người ta rất 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ínhchất định tính cần phải t
Trang 1Đại Học Quốc Gia TP.HCM Trường Đại Học Công Nghệ Thông Tin
BÀI TIỂU LUẬN MÔN KHAI PHÁ DỮ LIỆU VÀ KHO DỮ LIỆU
Trang 2MỤC LỤC
MỤC LỤC 1
LỜI NÓI ĐẦU 2
TỔNG QUAN 3
PHẦN I: TỔNG QUAN PHÁT HIỆN TRI THỨC VÀ KHAI PHÁ DỮ LIỆU 5
PHẦN II KỸ THUẬT GOM CỤM – PHƯƠNG PHÁP GOM CỤM BẰNG K-MEANS 13
5.2 Minh họa thuật giải K-Means: 16
PHẦN III CÀI ĐẶT MINH HỌA THUẬT TOÁN 20
K-MEANS 20
1 Giao diện: 20
2 Thực hiện chương trình: 20
} 29 PHẦN IV TỔNG KẾT 30
TÀI LIỆU THAM KHẢO 31
Trang 3LỜI NÓI ĐẦU
Trong chương trình cao học ngành công nghệ thông tin, nhóm các mônhọc bắt buộc là bảy môn Trong đó có hai môn là “Cơ sở dữ liệu (Nâng cao)” và
“Khai thác dữ liệu và kho dữ liệu” em được thầy Đỗ Phúc phụ trách Khi học vớithầy em nhận thấy rằng: thầy có kiến thức rất sâu rộng ở nhiều lĩnh vực nên luôntạo cho bài giảng của mình một cách rất sinh động, tự nhiên Thầy dẫn dắt chúng
em đi sâu vào bài học bằng những kiến thức, những mẩu chuyện, những ví dụ rấtquen thuộc và cách thầy đan xen chúng vào nhau thật là khéo léo Và điều quantrọng hơn cả là cách thầy truyền cảm hứng học tập cho chúng em và chỉ cách chochúng em phải tự học, nghiên cứu như thế nào để được kết quả tốt nhất
Bên cạnh đó em cũng đúc kết được thêm một số kinh nghiệm, kỹ năng rấtquan trọng, cần thiết và nhất là phần kiến thức vô cùng bổ ích mà thầy đã truyềnđạt và định hướng cho chúng em
Em xin gởi lời cám ơn đến thầy Đỗ Phúc, thầy đã rất tận tâm, truyền đạtrất nhiều kiến thức, ý tưởng mà em rất tâm đắc Em chúc thầy cùng luôn khỏemạnh và đạt nhiều thành quả trong công việc của mình
Trang 4TỔNG QUAN
Nhiều năm trở lại đây, với sự phát triển và ứng dụng của công nghệ thôngtin vào nhiều lĩnh vực khác nhau như: kinh tế, y tế, xã hội, giáo dục, quân sự .Điều này cũng có nghĩa rằng lượng dữ liệu được các tổ chức sử dụng công nghệthông tin thu thập và lưu trữ ngày một nhiều hơn Nhưng trên thực tế thì lượng
dữ liệu khổng lồ này lại không được sử dụng nhiều (chỉ khoảng 5% - 10%) vìnhiều nguyên nhân khác nhau Lượng dữ liệu tái sử dụng thì rất ít nhưng chúng
ta vẫn tiếp tục thu thập với ý nghĩ lo sợ rằng sẽ có bỏ qua phần nào đó quan trọnghoặc những dữ liệu này sẽ có lúc cần đến Trong khi đó để thu thập lượng dữ liệunày cũng là một bài toán về kinh phí
Bên cạnh đó, vấn đề về kinh tế hiện nay cạnh tranh rất khốc liệt Vì vậy,đối với những người làm kinh tế người ta rất 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ínhchấ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ệutruyền thống ngày càng không đáp ứng được yêu cầu của thực tế Từ đây pháttriển ra một kỹ thuật mới đó là Kỹ thuật phát hiện tri thức và khai phá dữ liệu(KDD – Knowledge Discovery and Data Mining) Kỹ thuật phát hiện tri thức vàkhai phá dữ liệu đã và đang được nghiên cứu, phát triển và ứng dụng trong nhiềulĩ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 đốicòn mới, tuy nhiên cũng đang được nghiên cứu và dần đưa vào ứng dụng Bướcquan trọng nhất của quá trình này là Khai phá dữ liệu (Data Mining - DM), giúpngười sử dụng thu được những tri thức hữu ích từ những CSDL hoặc các nguồn
dữ liệu khổng lồ khác Rất nhiều doanh nghiệp và tổ chức trên thế giới đã ứngdụng kỹ thuật khai phá dữ liệu vào hoạt động sản xuất kinh doanh của mình và
đã thu được những lợi ích to lớn Nhưng để làm được điều đó, sự phát triển củacác mô hình toán học và các giải thuật hiệu quả là chìa khoá quan trọng Và hiệnnay có rất nhiều kỹ thuật được đưa ra để giải quyết vấn đề này Trong bài tiểuluận này em xin trình một trong những cách mà em đã được học trong môn học
Trang 5“Khai phá dữ liệu và Kho dữ liệu” do thầy Đỗ Phúc phụ trách, đó là “Kỹ thuật
phân cụm trong khai phá dữ liệu”.
Trang 6PHẦN I: TỔNG QUAN PHÁT HIỆN TRI THỨC VÀ
KHAI PHÁ DỮ LIỆU
1 Giới thiệu chung.
Trong những năm gần đây, sự phát triển mạnh mẽ của CNTT và ngànhcông nghiệp phần cứng đã làm cho khả năng thu thập và lưu trữ thông tin của các
hệ thống thông tin tăng nhanh một cách chóng mặt 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 CSDL đã được sử dụng trong các hoạt động sản xuất, kinhdoanh, quản lí , trong đó có nhiều CSDL 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áctri thức có ích Từ đó, các kỹ thuật khai phá dữ liệu đã trở thành một lĩnh vựcthời sự của nền CNTT thế giới hiện nay
2 Khái niệm 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ămcuố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 haydùng để phân tích dữ liệu bán tự động hay giải thích dữ liệu trên các tập dữ liệulớn…
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ừ CSDL, trích lọc dữliệu, phân tích dữ liệu/mẫu, khảo cổ dữ liệu, nạo vét dữ liệu Nhiều người xemkhai phá dữ liệu và một thuật ngữ thông dụng khác là phát hiện tri thức trongCSDL (Knowlegde Discovery in Databases - KDD) là như nhau Tuy nhiên trênthực tế, khai phá dữ liệu chỉ là một bước thiết yếu trong quá trình phát hiện trithức trong CSDL Có thể nói Data Mining là giai đoạn quan trọng nhất trong tiến
Trang 7trình phát hiện tri thức từ cơ sở dữ liệu, các tri thức này hỗ trợ trong việc ra quyếtđịnh trong khoa học và kinh doanh.
3 Các bước của quá trình khai phá dữ liệu:
Chọn các thuật giải khai thác dữ liệu
Khai thác dữ liệu: Tìm kiếm tri thức
Đánh giá mẫu tìm được
Biểu diễn tri thức
Sử dụng các tri thức vừa khám phá
4 Một số kỹ thuật khai phá dữ liệu thông dụng:
4.1 Khai phá Luật kết hợp (Association Rules)
- Mục tiêu của phương pháp này là phát hiện và đưa ra các mối liên hệgiữa các giá trị dữ liệu trong CSDL Mẫu đầu ra của giải thuật khai phá dữ liệu làtập luật kết hợp tìm được
- Phương pháp này được sử dụng rất hiệu quả trong các lĩnh vực nhưmarketing có chủ đích, phân tích quyết định, quản lí kinh doanh, …
- Tiếp cận cho kỹ thuật này thường sử dụng thuật toán Apriori
- Nhiều bài báo đã được công bố về đề tài này
4.2 Khai phá luật Episode:
- Các luật Episode mô tả quan hệ thời gian giữa các sự vật
Trang 8- Hai cách tiếp cận:
* WINEPI với cửa sổ trượt
* MINEPI với việc tìm sự xuất hiện nhỏ nhất
- Mở rộng thuật toán tăng cường cho bài toán Sequential Pattern Mining
4.3 Gom cụm
Mục tiêu chính của phương pháp phân cụm dữ liệu là nhóm các đối tượngtương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùngmột cụm là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ khôngtương đồng Phân cụm dữ liệu là một ví dụ của phương pháp học không giám sát.Không giống như phân loại dữ liệu, phân cụm dữ liệu không đòi hỏi phải địnhnghĩa trước các mẫu dữ liệu huấn luyện Vì thế, có thể coi phân cụm dữ liệu làmột cách học bằng quan sát (learning by observation), trong khi phân loại dữ liệu
là học bằng ví dụ (learning by example) Trong phương pháp này bạn sẽ khôngthể biết kết quả các cụm thu được sẽ như thế nào khi bắt đầu quá trình Vì vậy,thông thường cần có một chuyên gia về lĩnh vực đó để đánh giá các cụm thuđược Kỹ thuật phân cụm dữ liệu được sử dụng rất nhiều trong các ứng dụng vềnhận dạng mẫu, phân loại email, phân loại khách hàng, phân đoạn thị trường…Ngoài ra phân cụm dữ liệu còn có thể được sử dụng như một bước tiền xử lí chocác thuật toán khai phá dữ liệu khác
4.5 Cây quyết định
Trang 9Giải thuật quy nạp cây ID3 (gọi tắt là ID3) là một giải thuật học đơn giảnnhưng tỏ ra thành công trong nhiều lĩnh vực ID3 là một giải thuật hay vì cáchbiểu diễn tri thức học được của nó, tiếp cận của nó trong việc quản lý tính phứctạp, heuristic của nó dùng cho việc chọn lựa các khái niệm ứng viên, và tiềmnăng của nó đối với việc xử lý dữ liệu nhiễu.
ID3 biểu diễn các khái niệm (concept) ở dạng các cây quyết định (decision
tree) Biểu diễn này cho phép chúng ta xác định phân loại của một đối tượngbằng cách kiểm tra các giá trị của nó trên một số thuộc tính nào đó
Như vậy, nhiệm vụ của giải thuật ID3 là học cây quyết định từ một tập các
ví dụ rèn luyện (training example) hay còn gọi là dữ liệu rèn luyện (trainingdata)
4.6 Tập thô
- Lý thuyết tập thô được nhà logoc học Balan Zdzilaw Pawlak đề xuất ravào đầu những năm 80 của thế kỷ 19
- Nó cung cấp một công cụ để phân tích, suy diễn dữ liệu không chính xác
để phát hiện ra mối quan hệ giữa các đối tượng và những tiềm ẩn trong dữ liệu
- Một hướng tiếp cận mới về tính không chắc chắn và không chính xáccủa dữ liệu
5 Phân loại khai phá dữ liệu:
5.1 Khai phá dữ liệu mô tả:
Kỹ thuật này có nhiệm vụ mô tả về các tính chất hoặc các đặc tính chungcủa dữ liệu trong CSDL hiện có
- Cho biết điều gì là hữu ích có thể tìm thấy được trong dữ liệu
- Giải thích dữ liệu đó
Khai phá dữ liệu mô tả bao gồm các kỹ thuật: phân cụm (clustering), phân tíchluật kết hợp (association rules)
Trang 105.2 Khai phá dữ liệu dự báo:
• Dựa trên dữ liệu quá khứ, dự báo tương lai
• Xu thế phát triển!
6 Lợi thế của khai phá dữ liệu so với các phương pháp khác
Khai phá dữ liệu là một lĩnh vực liên quan tới rất nhiều ngành học khácnhư: hệ CSDL, thống kê, Hơn nữa, tuỳ vào cách tiếp cận được sử dụng, khaiphá dữ liệu còn có thể áp dụng một số kỹ thuật như mạng nơ ron, lý thuyết tậpthô hoặc tập mờ, biểu diễn tri thức… Như vậy, khai phá dữ liệu thực ra là dựatrên các phương pháp cơ bản đã biết Tuy nhiên, sự khác biệt của khai phá dữliệu so với các phương pháp đó là gì? Tại sao khai phá dữ liệu lại có ưu thế hơnhẳn các phương pháp cũ? Ta sẽ lần lượt xem xét và giải quyết các câu hỏi này
6.1 Học máy (Machine Learning):
So với phương pháp học máy, khai phá dữ liệu có lợi thế hơn ở chỗ, khaiphá dữ liệu có thể sử dụng với các cơ sở dữ liệu thường động, không đầy đủ, bịnhiễu và lớn hơn nhiều so với các tập dữ liệu học máy điển hình Trong khi đóphương pháp học máy chủ yếu được áp dụng trong các CSDL đầy đủ, ít biếnđộng và tập dữ liệu không quá lớn Thật vậy, trong học máy, thuật ngữ cơ sở dữliệu chủ yếu đề cập tới một tập các mẫu được lưu trong tệp Các mẫu thường làcác vectơ với độ dài cố định, thông tin về đặc điểm, dãy các giá trị của chúng đôikhi cũng được lưu lại như trong từ điển dữ liệu Một giải thuật học sử dụng tập
dữ liệu và các thông tin kèm theo tập dữ liệu đó làm đầu vào và đầu ra biểu thịkết quả của việc học Học máy có khả năng áp dụng cho cơ sở dữ liệu, lúc này,học máy sẽ không phải là học trên tập các mẫu nữa mà học trên tập các bản ghicủa cơ sở dữ liệu Tuy nhiên, trong thực tế, cơ sở dữ liệu thường động, khôngđầy đủ và bị nhiễu, lớn hơn nhiều so với các tập dữ liệu học máy điển hình Cácyếu tố này làm cho hầu hết các giải thuật học máy trở nên không hiệu quả Khaiphá dữ liệu lúc này sẽ xử lý các vấn đề vốn đã điển hình trong học máy và vượtquá khả năng của học máy, đó là sử dụng được các CSDL chứa nhiều nhiễu, dữliệu không đầy đủ hoặc biến đổi liên tục
Trang 116.2 Hệ chuyên gia (Expert Systems)
Các hệ chuyên gia nắm bắt các tri thức cần thiết cho một bài toán nào đó.Các kỹ thuật thu thập giúp cho việc lấy tri thức từ các chuyên gia con người
Mỗi phương pháp hệ chuyên gia là một cách suy diễn các luật từ các ví dụ
và giải pháp đối với bài toán chuyên gia đưa ra Phương pháp hệ chuyên gia khácvới khai phá dữ liệu ở chỗ các ví dụ của chuyên gia thường ở mức chất lượng caohơn nhiều so với các dữ liệu trong CSDL, và chúng thường chỉ bao hàm đượccác trường quan trọng Hơn nữa các chuyên gia sẽ xác nhận giá trị và tính hữuích của các mẫu phát hiện được
6.3 Thống kê (Statistics).
Mặc dù các phương pháp thống kê cung cấp một nền tảng lý thuyết vữngchắc cho các bài toán phân tích dữ liệu nhưng chỉ có tiếp cận thống kê thuần tuýthôi chưa đủ bởi:
Các phương pháp thống kê không phù hợp với các kiểu dữ liệu có cấutrúc trong rất nhiều các cơ sở dữ liệu
Thống kê hoàn toàn tính toán trên dữ liệu, nó không sử dụng tri thức sẵn
dữ liệu và thống kê ở chỗ khai phá dữ liệu là một phương tiện được dùng bởingười sử dụng đầu cuối chứ không phải là các nhà thống kê Khai phá dữ liệu đãkhắc phục được các yếu điểm trên của thống kê, tự động quá trình thống kê mộtcách hiệu quả, vì thế giảm bớt công việc của người dùng đầu cuối, tạo ra mộtcông cụ dễ sử dụng hơn
7 Các ứng dụng và thách thức của việc khai mỏ dữ liệu.
7.1 Các ứng dụng của Khai mỏ dữ liệu:
Trang 12Các kỹ thuật khai mỏ dữ liệu có thể được áp dụng vào trong nhiều lĩnhvực:
• Thông tin thương mại: Phân tích dữ liệu tiếp thị và bán hàng, phân tíchvốn đầu tư, chấp thuận cho vay, phát hiện gian lận,
Thông tin sản xuất: Điều khiển và lập lịch, quản lý mạng, phân tích kếtquả thí nghiệm,
• Thông tin khoa học:
Địa lý: Phát hiện động đất,
•
7.2 Những thách thức đối với khai mỏ dữ liệu:
• Các cơ sở dữ liệu lớn hơn rất nhiều: cơ sở dữ liệu với hàng trăm trường
và bảng, hàng triệu bản ghi và kích thước lên tới nhiều gigabyte là vấn đề hoàntoàn bình thường và cơ sở dữ liệu terabyte (1012bytes) cũng đã bắt đầu xuấthiện
• Số chiều cao: Không chỉ thường có một sốlượng rất lớn các bản ghitrong cơ sở dữ liệu mà còn có một số lượng rất lớn các trường (các thuộc tính,các biến) làm cho số chiều của bài toán trở nên cao Thêm vào đó, nó tăng thêm
cơ hội cho một giải thuật khai phá dữ liệu tìm ra các mẫu không hợp lệ Vậy nêncần giảm bớt hiệu quả kích thước của bài toán và tính hữu ích của tri thức chotrước để nhận biết các biến không hợp lệ
• Over-fitting (quá phù hợp): Khi giải thuật tìm kiếm các tham số tốt nhấtcho một mô hình đặc biệt sử dụng một tập hữu hạn dữ liệu, kết quả là mô hìnhbiểu diễn nghèo nàn trên dữ liệu kiểm định Các giải pháp có thể bao gồm hợp lệchéo, làm theo quy tắc và các chiến lược thống kê tinh vi khác
• Thay đổi dữ liệu và tri thức: Thay đổi nhanh chóng dữ liệu (động) có thểlàm cho các mẫu được phát hiện trước đó không còn hợp lệ Thêm vào đó, cácbiến đã đo trong một cơ sở dữ liệu ứng dụng cho trước có thể bị sửa đổi, xoá bỏhay tăng thêm các phép đo mới Các giải pháp hợp lý bao gồm các phương pháptăng trưởng để cập nhật các mẫu và xử lý thay đổi
Trang 13• Dữ liệu thiếu và bị nhiễu: Bài toán này đặc biệt nhạy trong các cơ sở dữliệu thương mại Dữ liệu điều tra dân số U.S cho thấy tỷ lệ lỗi lên tới 20% Cácthuộc tính quan trọng có thể bị mất nếu cơ sở dữ liệu không được thiết kế với sựkhám phá bằng trí tuệ Các giải pháp có thể gồm nhiều chiến lược thống kê phứctạp để nhận biết các biến ẩn và các biến phụ thuộc.
Trang 14PHẦN II KỸ THUẬT GOM CỤM – PHƯƠNG PHÁP
GOM CỤM BẰNG K-MEANS.
1 Gom cụm là gì?
Xử lý nhóm một tập các đối tượng vào trong các lớp các đối tượng giốngnhau được gọi là phân cụm Một cụm là một tập hợp các đối tượng dữ liệu giốngnhau trong phạm vi cùng một cụm và không giống nhau với các đối tượng trongcác cụm khác
2 Mục tiêu của gom cụm:
Phép phân tích cụm là một hoạt động quan trọng Thời kì đầu, nó học làmthế nào để phân biệt giữa các cụm với nhau bằng cách trau dồi liên tục tiềm thứccác lược đồ phân loại Phép phân tích cụm được dùng rộng rãi trong nhiều ứngdụng, bao gồm nhận dạng, phép phân tích dữ liệu, xử lý ảnh, nghiên cứu thịtrường, v.v Bằng phân cụm, ta có thể nhận biết các vùng đông đúc vàthưa thớt, bởi vậy tìm ra toàn bộ các mẫu phân bố và các tương quan thú vị giữacác thuộc tính dữ liệu Trong kinh doanh, phân cụm có thể giúp cho các nhànghiên cứu thị trường tìm ra các nhóm riêng biệt dựa trên khách hàng của họ và
mô tả các nhóm khách hàng dựa trên các mẫu mua sắm Trong sinh vật học, nó
có thể được dùng để có được các nguyên tắc phân loại thực vật và động vật, phânloại gien theo chức năng giống nhau và có được sự hiểu biết thấu đáo các cấutrúc kế thừa trong các mẫu Phân cụm cũng có thể được dùng để nhận biết cácvùng đất giống nhau dùng trong cơ sở dữ liệu quan sát trái đất và nhận biết cácnhóm có hợp đồng bảo hiểm ô tô với mức chi phí trung bình cao, cũng như nhậnbiết các nhóm nhà trong thành phố theo kiểu nhà, giá trị và khu vực địa lý Nó cóthể cũng giúp cho việc phân loại dữ liệu trên WWW để khai thác thông tin Nhưmột hàm khai phá dữ liệu, phép phân tích cụm được dùng như là một công cụ độclập để có thể nhìn thấu được bên trong sự phân bố dữ liệu, để quan sát các đặcđiểm của mỗi cụm và tập trung trên một tập đặc biệt các cụm cho phép phân tích
Trang 15xa hơn Tiếp theo, nó phục vụ như là một bước tiền xử lý cho các giải thuật khácnhư phân loại và mô tả, thao tác trên các cụm đã dò được.
3 Các kiểu dữ liệu trong phép phân cụm
3.1 Kiểu số
khoảng cách Minkowski
jp ip
q j i
q j
x j
i
d(, )= ( 1 − 1 + 2 − 2 + + − )
i = (xi1, xi2, …, xip) và j = (xj1, xj2, …, xjp) là 2 phần tử dữ liệu trong p-imensional,
q là số nguyên dương
nếu q = 1, d là khoảng cách Manhattan
nếu q = 2, d là khoảng cách Euclid
khoảng cách cosine : dcos(i, j) = iTj/(||i|| ||j||)
c b j
i d
+++
+
=),(
khoảng cách bất đối xứng:
c b a
c b j i d
++
+
=),(
hệ số Jaccard bất đối xứng:
c b a
a j
i sim Jaccard
++
=),(
3.3 Kiểu loại (nominal type)
ví dụ: thuộc tính color có giá trị là red, green, blue,
Trang 16 phương pháp matching đơn giản, m là số lượng matches và p là tổng sốbiến (thuộc tính), khoảng cách được định nghĩa:
p
m p j i
d = −),(
3.4 Kiểu symbol
4 Phân loại các phương pháp phân cụm chính
- Các phương pháp phân chia
- Các phương pháp phân cấp
- Các phương pháp phân cụm dựa trên mật độ
- Các phương pháp phân cụm dựa trên lưới
5 Giải thuật K-Means
5.1 Giải thuật:
1 Khởi động ngẫu nhiên K tâm (center) của K cụm (clusters)
2 Mỗi phần tử được gán cho tâm gần nhất với phần tử dựa vào khoảngcách (e.g khoảng cách Euclid)
3 Cập nhật lại các tâm của K clusters, mỗi tâm là giá trị trung bình(mean) của các phần tử trong cluster của nó
4 Lặp lại bước 2, 3 cho đến khi hội tụ