Tìm kiếm được những luật kết hợp “quý hiếm” và mang nhiều thông tin từ cơ sở dữ liệu tác nghiệp là một trong những hướng tiếp cận chính của lĩnh vực khai phá dữliệu.. Một ví dụ hay được
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
_ _
BÀI THU HOẠCH MÔN HỌCCÔNG NGHỆ TRI THỨC & ỨNG DỤNG
ĐỀ TÀITÌM HIỂU KHAI PHÁ LUẬT KẾT HỢP PHỦ ĐỊNH
GVHD: GS.TSKH HOÀNG KIẾM
MSHV: CH1301002
TP HCM, 09/2014
Trang 2MỤC LỤC
Trang 3MỞ ĐẦU
Ngày nay, cùng với sự phát triển không ngừng của các nền kinh tế, một lượng lớn
dữ liệu và thông tin được cập nhật hàng ngày Để phục vụ cho đời sống con người ngàymột tốt đẹp, hoàn thiện hơn, chúng ta đã phân tích những dữ liệu, thông tin đó để tìm racác quy luật, chuyển thành các mô hình tính toán phục vụ cho các nhu cầu cần thiết, ứngdụng chúng trong đời sống hằng ngày Việc phân tích nghiên cứu đó gọi là công nghệ trithức
Luật kết hợp là một dạng luật khá đơn giản nhưng lại mang rất nhiều ý nghĩa.Thông tin mà dạng luật này đem lại là rất đáng kể và hỗ trợ không nhỏ trong quá trình raquyết định Tìm kiếm được những luật kết hợp “quý hiếm” và mang nhiều thông tin từ cơ
sở dữ liệu tác nghiệp là một trong những hướng tiếp cận chính của lĩnh vực khai phá dữliệu
Trong nội dung bài thu hoạch này, em xin trình bày khái quát Tìm hiểu Khai phá luật kết hợp phủ định Bài thu hoạch được xây dựng dựa trên nền các nghiên cứu đã có
trong lĩnh vực khai phá luật kết hợp, các bài báo nước ngoài tại các hội nghị chuyênngành
Em xin chân thành cám ơn GS.TSKH Hoàng Kiếm, và các thầy cô trong trường Đạihọc CNTT- ĐHQG TP HCM cùng các bạn bè đã giúp em hoàn thành tốt môn học này
Trang 4I Tổng quan về Khai phá dữ liệu:
1 Đặt vấn đề:
Chúng ta biết rằng Google luôn trả cho ta kết quả tìm kiếm tốt nhất, thông minhnhất Nó còn thông minh hơn nếu như ta luôn tìm kiếm thông tin bằng cách đăng nhậpvào hệ thống của Google Chúng ta có thể thử bằng cách tìm một từ khóa chuyên biệt khikhông đăng nhập và khi đăng nhập, nói chung kết quả sẽ khác nhau, và hầu hết là kết quảkhi đăng nhập sẽ có độ chính xác với mục đích tìm kiếm cao hơn so với khi không đăngnhập Tại sao lại như vậy?
Facebook có tính năng rất hay và rất hữu dụng trong việc kết nối các mối quan hệ,
đó là tính năng suggestions friends, và điều thú vị là hầu hết các người bạn mà Facebooksuggest đều là những người tôi biết Vậy tại sao Facebook nó lại thông minh đến mứcnhư vậy?
Amazon.com là website bán sách lớn nhất trên internet, để ý rằng mỗi khi xemthông tin chi tiết về một quyển sách nào đó trên site thì bao giờ cũng kèm theo một danhsách các quyển sách gợi ý mua kèm theo quyển bạn đang xem, một thống kê cho thấy cótới trên 70% đầu sách được người dùng mua thêm thông qua hình thức gợi ý này Vậyđiều gì làm cho việc bán sách hiệu quả đến như vậy?
Trên đây chỉ là các ví dụ chúng ta có thể nhìn và hiểu, còn rất, rất nhiều các ví dụ từnghiên cứu khoa học ứng dụng trong không gian, đến việc chống khủng bố…Nói tóm lạitất cả những ví dụ, những điều được nói ở trên chung qui lại chỉ xoay quanh một chủ đề:Data mining Vậy data ming là gì?
2 Định nghĩa khai phá dữ liệu:
Khai phá dữ liệu (datamining) được định nghĩa như là một quá trình chắt lọc hay khai phá tri thức từ một lượng lớn 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ậtngữ Datamining á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ừ Data mining như Knowledge Mining (khai phá tri thức), knowledge extraction(chắt lọc trithứ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),
-Định nghĩa khác: Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng để tự
động khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ liệu khổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập dữ liệu đó.
3 Các bước chính trong khám phá tri thức (KDD):
Trang 5Khai phá dữ liệu là một bước trong quá trình khám phá tri thức (KDD Knowleadge Discovery in Database) Người ta thường chia quá trình khám phá tri thứcthành các bước sau:
-• Trích chọn dữ liệu (data selection): là bước trích chọn những tập dữ liệu cần được khaiphá từ các tập dữ liệu lớn (databases, data warehouses, data repositories) ban đầu theomột số tiêu chí nhất định
• Tiền xử lý dữ liệu (data preprocessing): là bước làm sạch dữ liệu (xử lý với dữ liệu khôngđầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán, ), rút gọn dữ liệu (sử dụng hàm nhóm vàtính tổng, các phương pháp nén dữ liệu, sử dụng histograms, lấy mẫu, ), rời rạc hóa dữliệu (rời rạc hóa dựa vào histograms, entropy, phân khoảng, ) Sau bước này, dữ liệu sẽnhất quán, đầy đủ, được rút gọn, và được rời rạc hóa
• Biến đổi dữ liệu (data transformation): đây là bước chuẩn hóa và làm mịn dữ liệu để đưa
dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các kỹ thuật khai phá ở bước sau
• KPDL (data mining): đây là bước áp dụng những kỹ thuật khai phá (phần nhiều là các kỹthuật của machine learning) để khai phá, trích chọn được những mẫu (patterns) thông tin,những mối liên hệ (relationships) đặc biệt trong dữ liệu Đây được xem là bước quantrọng và tốn nhiều thời gian nhất của toàn quá trình KDD
• Biểu diễn và đánh giá tri thức (knowledge representation & evaluation): những mẫuthông tin và mối liên hệ trong dữ liệu đã được khai phá ở bước trên được chuyển dạng vàbiểu diễn ở một dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu, luật, v.v.Đồng thời bước này cũng đánh giá những tri thức khám phá được theo những tiêu chínhất định
Hình 1 Các bước trong khám phá tri thức (KDD)
Để ví dụ cho quá trình này, chúng ta quay lại trả lời các câu hỏi ở mục đặt vấn đề
Trang 6Đầu tiên là câu hỏi tại sao kết quả tìm kiếm của Google lại khác nhau khi đăng nhập
và khi không đăng nhập? Câu trả lời ngắn gọn là: Khi bạn đăng nhập Google biết bạn là
ai, biết hành vi trong quá khứ của bạn như thế nào (thông qua quá trình thu thập dữ liệuhành vi của bạn trên các site mà Google hiện diện), do đó nó dựa vào sự hiểu biết nàynên kết quả trả về bao giờ cũng là kết quả có độ chính xác với nhu cầu của bạn cao nhất
và ngược lại, khi không đăng nhập, Google chỉ trả về kết quả ranking bình thường màkhông có kèm theo tham số ranking theo user Và dĩ nhiên để biết được hành vi trong quákhứ của bạn, Google phải sử dụng đến các công nghệ data mining
Thứ hai, tại sao Facebook lại có thể gợi ý cho tôi toàn những người mà tôi đã quenbiết? Để có thể đưa ra gợi ý này đòi hỏi Facebook kết hợp rất nhiều các tham số, cụ thể lànhững tham số gì thì là bí mật công nghệ riêng của FB Tuy nhiên có thể giải thích tómlược như sau: Khi bạn đăng ký tài khoản Facebook, thông thường bạn nhập thêm cácthông tin khác như: quá trình làm việc ở các công ty, công ty bạn đang làm, trường/lớpbạn đã/đang học, các hội bạn tham gia, bạn gái/trai/vợ/chồng của bạn v.v Đây chính làcác thông tin mà Facebook có thể dựa vào để xác định ai là bạn của bạn Ở đây,Facebook đã mô hình hóa các tham số có độ liên quan nhất định để đưa ra những gợi ý
mà có xác xuất đúng rất cao, và bạn thấy đó, thực sự là rất đúng News stream củaFacebook còn phức tạp và hay ho hơn nữa Tất cả các điều đó Facebook làm được là quátrình thu thập dữ liệu hoạt động của người dùng trên site, sau đó sử dụng các công nghệdata mining để cung cấp nội dung, tính năng phù hợp nhất cho người dùng
Thứ ba, tại sao Amazon lại có thể đưa ra danh sách các quyển sách bán kèm có tỷ lệbán được cao như vậy? Để làm được điều này Amazon đã đầu tư phát triển hệ thốngrecommendation trong hàng chục năm, thời gian dài đó không chỉ là phát triển thuần túycông nghệ mà còn là quãng thời gian thu thập và phân tích hành vi người sử dụng trênsite của Amazon, thời gian càng dài, dữ liệu thu thập càng lớn, dẫn đến tập thông tin có
độ tương quan càng nhiều và càng chính xác Nôm na bạn có thể hiểu là 100 khách hàngmua quyển sách ABC thì có tới 40 khách hàng đồng thời mua quyển sách DEF, vì thế vớikhách hàng 101 xem quyển ABC, hệ thống nhận diện và đưa ra gợi ý mua them quênDEF, đơn giản là vậy, tuy nhiên bên dưới còn có nhiều tham số khác để tăng độ tươngquan lên nữa Và đây cũng là một quá trình mining dữ liệu
4 Tại sao cần khai phá dữ liệu:
Khoảng hơn một thập kỷ trở lại đây, lượng thông tin được lưu trữ trên các thiết bịđiện tử không ngừng tăng lên Sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ.Người ta ước đoán rằng lượng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm vàtheo đó số lượng cũng như kích cỡ của các cơ sở dữ liệu (CSDL) cũng tăng lên một cách
nhanh chóng Nói một cách hình ảnh là chúng ta đang “ngập” trong dữ liệu nhưng lại
Trang 7“đói” tri thức Câu hỏi đặt ra là liệu chúng ta có thể khai thác được gì từ những “núi” dữ
liệu tưởng chừng như “bỏ đi”ấy không ?
5 Các hướng tiếp cận chính trong khai phá dữ liệu:
Data Mining được chia nhỏ 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ức ở 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, tin-sinh, tàichính & thị trường chứng khoán,
• Phân lớp và dự đoán (classification & prediction): xếp một đối tượng vào một trongnhữ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ếpcận này thườ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), Người ta còn gọi phân lớp làhọc có giám sát (học có thầy)
• 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ụmchưa được biết trước Người ta còn gọi phân cụm là học không giám sát (học khôngthầy)
• 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ận này được ứng dụng nhiều trong lĩnhvực tài chính và thị trường chứng khoán vì nó có tính dự báo cao
6 Các dạng dữ liệu có thể khai phá:
Do KPDL được ứng dụng rộng rãi nên nó có thể làm việc với rất nhiều kiểudữliệukhác nhau Sau đây là một số kiểu dữ liệu điển hình:
• CSDL đa chiều (multidimensional structures, data warehouses)
• CSDL dạng giao dịch (transactional databases)
• CSDL quan hệ - hướng đối tượng (object-relational databases)
• Dữ liệu không gian và thời gian (spatial and temporal data)
• Dữ liệu chuỗi thời gian (time-series data)
• CSDL đa phương tiện (multimedia databases) như âm thanh (audio), hình ảnh (image),phim ảnh (video),
• Dữ liệu Text và Web (text database & www)
7 Phân loại các hệ khai phá dữ liệu:
Trang 8KPDL là một công nghệ tri thức liên quan đến nhiều lĩnh vực nghiên cứu khác nhaunhư CSDL, kỹ thuật máy học (machine learning), giải thuật, trực quan hóa(visualization), Chúng ta có thể phân loại các hệ thống KPDL dựa trên các tiêu chí khácnhau:
• Phân loại dựa trên kiểu dữ liệu được khai phá: CSDL quan hệ (relational database), kho
dữ liệu (data warehouse), CSDL giao dịch (transactional database), CSDL hướng đốitượng, CSDL không gian (spatial database), CSDL đa phương tiện (multimediadatabase), CSDL Text và www,
• Phân loại dựa trên dạng tri thức được khám phá: tóm tắt và mô tả (summarization &description), luật kết hợp (association rules), phân lớp (classification), phân cụm(clustering), khai phá chuỗi (sequential mining),
• Phân loại dựa trên kỹ thuật được áp dụng: hướng CSDL (databaseoriented), phân tíchtrực tuyến (OnLine Analytical Processing – OLAP), machine learning (cây quyết định,mạng nơ ron nhân tạo, k-min, giải thuật di truyền, máy vectơ hỗ trợ - SVM, tập thô, tập
mờ, ), trực quan hóa (visualization),
• Phân loại dựa trên lĩnh vực được áp dụng: kinh doanh bán lẻ (retail), truyền thông(telecommunication), tin-sinh (bio-informatics), y học (medical treatment), tài chính &thị trường chứng khoán (finance & stock market), web mining,
8 Ứng dụng của khai phá dữ liệu:
Khai phá dữ liệu bao hàm rất nhiều hướng tiếp cận Các kỹ thuật chính được ápdụngtrong lĩnh vực này phần lớn được thừa kế từ lĩnh vực cơ sở dữ liệu (database), máyhọc (machine learning), trí tuệ nhân tạo, lý thuyết thông tin, xác suất thống kê, vàtínhtoán hiệu năng cao Lĩnh vực nàycũng là điểm hội tụ và giao thoa của rất nhiều lĩnhvực khác
Data Mining tuy là một hướng tiếp cận mới nhưng thu hút được rất nhiều sự quantâm của các nhà nghiên cứu và phát triển nhờ vào những ứng dụng thực tiễn của nó.Chúng ta có thể liệt kê ra đây một số ứng dụng điển hình:
• Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision support)
• Điều trị y học (medical treatment)
• Text mining & Web mining
• Tin-sinh (bio-informatics)
• Tài chính và thị trường chứng khoán (finance & stock market)
• Bảo hiểm (insurance)
• Nhận dạng (pattern recognition)
9 Các vấn đề được chú trọng trong khai phá dữ liệu:
Trang 9KPDL là một lĩnh vực mới, do đó đang còn rất nhiều vấn đề chưa được nghiên cứumột cách trọn vẹn Sau đây là một số hướng nghiên cứu đã và đang thu hút được sự chú ýcủa các nhà tin học:
• OLAM (OnLine Analytical Mining) - Sự tích hợp giữa CSDL, kho dữ liệu, và KPDL.Hiện nay một số hệ quản trị CSDL như Oracle, MS SQL Server, DB2 đã tích hợp tínhnăng xây dựng kho dữ liệu và phân tích trực tuyến (OLAP) Những tính năng này được
hỗ trợ dưới dạng những công cụ đi kèm và người dùng phải trả tiền thêm nếu cần sử dụngnhững tính năng đó Những nhà nghiên cứu trong lĩnh vực CSDL không muốn dừng lại ở
đó mà họ muốn có một sự tích hợp giữa CSDL, kho dữ liệu và KPDL
• Khám phá được nhiều dạng tri thức khác nhau từ nhiều kiểu dữ liệu
• Tính hiệu quả, tính chính xác, độ phức tạp tính toán, khả năng mở rộng và tích hợp, xử lýnhiễu và dữ liệu không đầy đủ, tính hữu dụng (ý nghĩa) của tri thức
• Kết hợp KPDL với tri thức cơ sở (background knowledge)
• Vấn đề song song hóa và phân tán quá trình KPDL
• Ngôn ngữ truy vấn trong KPDL (Data Mining Query Language – DMQL): cung cấp chongười sử dụng một ngôn ngữ hỏi thuật tiện tương tự như SQL đối với CSDL quan hệ
• Biểu diễn và trực quan hóa tri thức khai phá được sao cho gần gũi với người sử dụng(human-readable expression) Tri thức có thể biểu diễn đa chiều, đa tầng để người dùng
sử dụng tri thức hiệu quả hơn
Trang 10II LUẬT KẾT HỢP:
1 Tại sao lại luật kết hợp?
Luật kết hợp là những luật có dạng “70% khách hàng mua bia thì mua them thịt bòkhô, 20% giao dịch có mua cả bia lẫn thịt bò khô” hoặc “75% bệnh nhân hút thuốc lá vàsống ven vùng ô nhiễm thì bị ung thư phổi, trong đó 25% số bệnh nhân vừa hút thuốc lá,sống ven vùng ô nhiễm vừa ung thư phổi” “Mua bia” hay “hút thuốc lá và sống ven vùng
ô nhiễm” ở đây được xem là vế trái (tiền đề - antecedent) của luật, còn “mua thịt bò khô”hay “ung thư phổi” là vế phải (kết luận - consequent) của luật Những con số 20% hay25% là độ hỗ trợ của luật (support - số phần trăm các giao dịch chứa cả vế trái lẫn vếphải), còn 70% hay 75% là độ tin cậy của luật (confidence - số phần trăm các giao dịchthỏa mãn vế trái thì cũng thỏa mãn vế phải)
Hình 2 Minh họa về luật kết hợp
Chúng ta nhận thấy rằng tri thức đem lại bởi những luật kết hợp ở dạng trên có một
sự khác biệt cơ bản so với thông tin thu được từ các câu lệnh truy vấn dữ liệu thôngthường (ngôn ngữ SQL chẳng hạn) Đó thường là những tri thức, những mối liên hệ chưađuợc biết trước và mang tính dự báo đang tiềm ẩn trong dữ liệu Những tri thức nàykhông đơn giản chỉ là kết quả của các phép nhóm, tính tổng hay sắp xếp mà là kết quảcủa một quá trình tính toán khá phức tạp và tốn nhiều thời gian
Tuy luật kết hợp là một dạng luật khá đơn giản nhưng lại mang rất nhiều ý nghĩa.Thông tin mà dạng luật này đem lại rất đáng kể và hỗ trợ không nhỏ trong quá trình raquyết định Tìm kiếm ra những luật kết hợp “quý hiếm” và chứa nhiều thông tin từ CSDLtác nghiệp là một trong những hướng tiếp cận chính của lĩnh vực KPDL và đây chính làmột động lực không nhỏ thúc đẩy việc tập trung nghiên cứu của nhiều nhà tin học
2 Phát biểu bài toán khai phá luật kết hợp:
Cho I = {i1, i2, …, in} là tập mục bao gồm n mục (item – còn được gọi là thuộc tính
- attribute) T = {t1, t2, …, tm} là tập gồm m giao dịch (transaction – còn được gọi là bản
Trang 11ghi - record), mỗi giao dịch được định danh bởi TID (TransactionIDentification) MộtCSDL D là một quan hệ nhị phân δ trên I và T, hay δ IxT.Nếu mục i xuất hiện trong⊆giao dịch t thì ta viết (i, t) δ hoặc iδt Về ý nghĩa, một CSDL là một tập các giao dịch,∈mỗi giao dịch t là một tập mục: t 2I (với 2I là tập các tập con của I).∈
Sau đây là một ví dụ về CSDL (dạng giao dịch):
I = {A, C, D, T, W}, T = {1, 2, 3, 4, 5, 6} với thông tin các giao dịch cho ở bảng:
Định danh giaodịch(TID) Tập mục(itemset)
X I được gọi là tập mục (itemset) Độ hỗ trợ (support) của một tập mục X được⊆
ký hiệu s(X) – là phần trăm số giao dịch trong CSDL chứa X Một tập mục X được gọi làtập phổ biến nếu độ hỗ trợ của nó lớn hơn hoặc bằng một ngưỡng minsup nào đó đượcxác định bởi người sử dụng: s(X) ≥ minsup[5]
Bảng sau đây sẽ liệt kê tất cả những tập mục phổ biến (frequent-itemset) trongCSDL cho ở bảng 1 với giá trị minsup bằng 50%
A, D, T, AC, AW, CD, CT, ACW 67% (4)
AT, DW, TW, ACT, ATW, CDW,
Bảng 2 - Các tập phổ biến trong CSDL ở bảng 1 với độ hỗ trợ tối thiểu là 50%
Luật kết hợp có dạng X ⎯⎯c→Y , trong đó X và Y là các tập mục thỏa mãn điềukiện X ∩ Y = ∅, còn c là độ tin cậy (confidence) của luật, c = s(X∪Y) / s(X) Về mặt xácsuất, độ tin cậy c của một luật là xác suất (có điều kiện) xảy ra Y với điều kiện đã xảy ra
X Một luật được xem là tin cậy nếu độ tin cậy c của nó lớn hơn hoặc bằng một ngưỡngminconf nào đó do người dùng xác định: c ≥ minconf[5]
Bài toán khai phá luật kết hợp (ở dạng đơn giản nhất) đặt ra như sau:
Cho một CSDL D, độ hỗ trợ tối thiểu minsup, độ tin cậy tối thiểu minconf Hãy tìmkiếm tất cả các luật kết hợp có dạng X →Y thỏa mãn độ hỗ trợ s(X Y) ≥ minsup và độ∪tin cậy của luật c( X →Y ) = s(X Y) / s(X) ≥ minconf ∪
Hầu hết các thuật toán được đề xuất để khai phá luật kết hợp thường chia bài toán