1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn hệ hỗ trợ quyết định LUẬT KẾT HỢP THUẬT TOÁN APRIORI

29 379 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 772,09 KB

Nội dung

thực tế đã làm phát triển một khuynh hướng 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.Thông thường chúng ta coi dữ liệu

Trang 1

Đại Học Quốc Gia TP.HCM Trường Đại Học Công Nghệ Thông Tin

GVHD :PGS.TS ĐỖ PHÚC

Người thực hiện: :Dương Trí Dũng

Mã học viên: :CH1301008

TP.HCM – 2014

Trang 2

LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến thầy PGS.TS Đỗ Phúc đã tận tình truyền đạt kiến thức, đóng góp ý kiến cũng như hướng dẫn để em thực hiện bài thu hoạch này

Mặc dù đã rất cố gắng nhưng bài thu hoạch khó tránh khỏi những thiếu sót, emrất mong thầy cô và bạn bè đóng góp ý kiến để bài thu hoạch hoàn thiện hơn

Tp HCM, tháng 06 năm 2014

Dương Trí Dũng

Trang 3

LỜI CAM ĐOAN

Tôi cam đoan đây là công trình nghiên cứu của riêng tôi

Các số liệu, kết quả nêu trong tiểu luận là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác

Dương Trí Dũng (đã ký)

Trang 4

MỤC LỤC

LỜI MỞI ĐẦU

Trong thời đại bùng nổ công nghệ thông tin, các công nghệ lưu trữ dữ liệu ngày càng phát triển tạo điều kiện cho các đơn vị thu thập dữ liệu tốt hơn Đặc biệt trong lĩnh vực kinh doanh, các doanh nghiệp đã nhận thức được tầm quan trọng của việc nắm bắt và xử lý thông tin, nhằm giúp các chủ doanh nghiệp trong việc vạch ra các chiến lược kinh doanh kịp thời mang lại những lợi nhuận to lớn cho doanh nghiệp của mình Tất cả lí do đó khiến cho các cơ quan, đơn vị và các doanh nghiệp

đã tạo ra một lượng dữ liệu khổng lồ cỡ Gigabyte thậm chí là Terabyte cho riêng mình

Khi lưu trữ các dữ liệu khổng lồ như vậy thì chúng ta thấy rằng chắc chắn chúng phải chứa những giá trị nhất định nào đó Tuy nhiên, theo thống kê thì chỉ có một lượng nhỏ của những dữ liệu này (khoảng từ 5% đến 10%) là luôn được phân tích, số còn lại họ không biết sẽ phải làm gì hoặc có thể làm gì với chúng nhưng họ vẫn tiếp tục thu thập rất tốn kém với ý nghĩ lo sợ rằng sẽ có cái gì đó quan trọng đã

bị bỏ qua sau này có lúc cần đến nó 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

Trang 5

thực tế đã làm phát triển một khuynh hướng 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).

Thông thường chúng ta coi dữ liệu như một dãy các bit, hoặc các số và các

ký hiệu, hoặc các “đối tượng” với một ý nghĩa nào đó khi được gửi cho một chương trình dưới một dạng nhất định Chúng ta sử dụng các bit để đo lường các thông tin

và xem nó như là các dữ liệu đã được lọc bỏ các dư thừa, được rút gọn tới mức tối thiểu để đặc trưng một cách cơ bản cho dữ liệu Chúng ta có thể xem tri thức như là các thông tin tích hợp, bao gồm các sự kiện và các mối quan hệ giữa chúng Các mối quan hệ này có thể được hiểu ra, có thể được phát hiện, hoặc có thể được học Nói cách khác, tri thức có thể được coi là dữ liệu có độ trừu tượng và tổ chức cao

Phát hiện tri thức trong các cơ sở dữ liệu là một qui 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: hợp thức, mới, khả ích, và có thể hiểu được Còn khai thác dữ liệu là một bước trong qui trình phát hiện tri thức gồm

có các thuậ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 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 vẫn còn bị che khuất bởi hàng “núi” dữ liệu

Nhiều người coi khai phá dữ liệu và khám phá tri thức trong cơ sở dữ liệu là như nhau Tuy nhiên trên thự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 tri thức trong cơ sở dữ liệu

Trang 6

Chương 1 TỔNG QUAN VỀ LUẬT KẾT HỢP

Lĩnh vực khai thác luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng khác nhau Có những đề xuất nhằm cải tiến tốc độ thuật toán, có những đề xuất nhằm tìm kiếm luật có ý nghĩa hơn… và có một số hướng chính như sau:

Luật kết hợp nhị phân là hướng nghiên cứu đầu tiên của luật kết hợp Hầu hết các nghiên cứu ở thời kỳ đầu về luật kết hợp đều liên quan đến luật kết hợp nhị phân Trong dạng luật kết hợp này, các mục, thuộc tính, chỉ được quan tâm là có hay không xuất hiện trong giao tác của CSDL chứ không quan tâm về “mức độ” xuất hiện Ví dụ: Trong hệ thống tính cước điện thoại thì việc gọi 10 cuộc điện thoại và một cuộc được xem là giống nhau Thuật toán tiêu biểu nhất khai phá dạng luật này

là thuật toán Apriori và các biến thể của nó Đây là dạng luật đơn giản và các luật khác cũng có thể chuyển về dạng luật này nhờ một số phương pháp như rời rạc hoá,

mờ hoá, … Một ví dụ về dạng luật này: “gọi liên tỉnh= ‘yes’ AND gọi di động=

‘yes’ => gọi quốc tế= ‘yes’ AND gọi dịch vụ 108 = ‘yes’, với độ hỗ trợ 20% và độ tin cậy 80%”

Luật kết hợp có thuộc tính số và thuộc tính hạng mục: Các thuộc tính của các CSDL thực tế có kiểu rất đa dạng, như số nhị phân, giá trị định tính, định lượng

Để phát hiện luật kết hợp với các thuộc tính này, các nhà nghiên cứu đã đề xuất một

số phương pháp rời rạc hoá nhằm chuyển dạng luật này về dạng nhị phân để có thể

áp dụng các thuật toán đã có Một ví dụ về dạng luật này “phương thức gọi = ‘Tự

Trang 7

động’ AND giờ gọi IN [‘23:00:39 23:00:59’] AND Thời gian đàm thoại IN [‘200 300’] => gọi liên tỉnh = ‘có’ , với độ hỗ trợ là 23 53% , và độ tin cậy là 80%”.

Luật kết hợp tiếp cận theo hướng tập thô: Tìm kiếm luật kết hợp dựa trên lý thuyết tập thô

Luật kết hợp nhiều mức: Cách tiếp cận theo luật này sẽ tìm kiếm thêm những luật có dạng “mua máy tính PC =>mua hệ điều hành AND mua phần mềm tiện ích văn phòng, …” thay vì chỉ những luật quá cụ thể như “mua máy tính IBM PC

=>mua hệ điều hành Microsoft Windows AND mua phần mềm tiện ích văn phòng Microsoft Office, …” Như vậy dạng luật đầu là dạng luật tổng quát hoá của dạng luật sau và tổng quát theo nhiều mức khác nhau

Luật kết hợp mờ: Với những hạn chế còn gặp phải trong quá trình rời rạc hoá các thuộc tính số (quantitave attributes), các nhà nghiên cứu đã đề xuất luật kết hợp

mờ nhằm khắc phục các hạn chế trên và chuyển luật kết hợp về một dạng tự nhiên hơn, gần gũi hơn với người sử dụng một ví dụ của dạng này là: “thuê bao tư nhân =

‘yes’ AND thời gian đàm thoại lớn AND cước nội tỉnh = ‘yes’ =>cước không hợp lệ

= ‘yes’, với độ hỗ trợ 4% và độ tin cậy 85%” Trong luật trên, điều kiện thời gian đàm thoại lớn ở vế trái của luật là một thuộc tính đã được mờ hoá

Luật kết hợp với thuộc tính được đánh trọng số: Trong thực tế, các thuộc tính trong CSDL không phải lúc nào cũng có vai trò như nhau Có một số thuộc tính được chú trọng hơn và có mức độ quan trọng cao hơn các thuộc tính khác Ví dụ khi khảo sát về doanh thu hàng tháng, thông tin về thời gian đàm thoại, vùng cước là quan trọng hơn nhiều so với thông tin về phương thức gọi Trong quá trình tìm kiếm luật, chúng ta sẽ gán thời gian gọi, vùng cước các trọng số lớn hơn thuộc tính phương thức gọi Đây là hướng nghiên cứu rất thú vị và đã được một số nhà nghiên cứu đề xuất cách giải quyết bài toán này Với luật kết hợp có thuộc tính được đánh trọng số, chúng ta sẽ khai thác được những luật “hiếm” (tức là có độ hỗ trợ thấp, nhưng có ý nghĩa đặc biệt hoặc mang rất nhiều ý nghĩa)

Trang 8

Luật kết hợp song song: Bên cạnh khai thác luật kết hợp tuần tự, các nhà làm tin học cũng tập trung vào nghiên cứu các thuật giải song song cho quá trình phát hiện luật kết hợp Nhu cầu song song hoá và xử lý phân tán là cần thiết bởi kích thước dữ liệu ngày càng lớn hơn nên đòi hỏi tốc độ xử lý cũng như dung lượng bộ nhớ của hệ thống phải được đảm bảo Có rất nhiều thuật toán song song khác nhau

đã đề xuất để có thể không phụ thuộc vào phần cứng

Bên cạnh những nghiên cứu về các biến thể của luật kết hợp, các nhà nghiên cứu còn chú trọng đề xuất những thuật toán nhằm tăng tốc quá trình tìm kiếm tập phổ biến từ CSDL

Ngoài ra, còn có một số hướng nghiên cứu khác về khai thác luật kết hợp như: khai thác luật kết hợp trực tuyến, khai thác luật kết hợp được kết nối trực tuyến đến các kho dữ liệu đa chiều thông qua công nghệ OLAP, MOLAP, ROLAP, ADO

Trang 9

Chương 2 LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU

VÀ THUẬT TOÁN APRIORI

2.1 Khai phá luật kết hợp[3]

Được giới thiệu từ năm 1993, bài toán khai thác luật kết hợp nhận được rất nhiều sự quan tâm của nhiều nhà khoa học Ngày nay việc khai thác các luật như thế vẫn là một trong những phương pháp khai thác mẫu phổ biến nhất trong việc khám phá tri thức và khai thác dữ liệu

Mục đích chính của khai phá dữ liệu là các tri thức được kết xuất ra sẽ được sử dụng trong dự báo thông tin trợ giúp trong sản xuất kinh doanh và nghiên cứu khoa học

Trong hoạt động sản xuất kinh doanh, ví dụ kinh doanh các mặt hàng tại siêu thị, các nhà quản lý rất thích có được các thông tin mang tính thống kê như: “90% phụ nữ có

xe máy màu đỏ và đeo đồng hồ Thuỵ Sỹ thì dùng nước hoa hiệu Chanel” hoặc “70% khách hàng là công nhân khi mua TV thường mua loại TV 21 inches” Những thông tin như vậy rất hữu ích trong việc định hướng kinh doanh Vậy vấn đề đặt ra là liệu có tìm được các luật như vậy bằng các công cụ khai phá dữ liệu hay không? Câu trả lời là hoàn toàn có thể

Đó chính là nhiệm vụ khai phá luật kết hợp

Giả sử chúng ta có một CSDL D Luật kết hợp cho biết phạm vi mà trong đó sự xuất hiện của tập các mục S nào đó trong các bản ghi của D sẽ kéo theo sự xuất hiện của một tập những mục U cũng trong những bản ghi đó Mỗi luật kết hợp được đặc trưng bởi một cặp tỉ

lệ Mỗi tỉ lệ hỗ trợ được biểu diễn bằng tỉ lệ % những bản ghi trong D chứa cả S và U

Vấn đề khám phá luật kết hợp được phát biểu như sau: Cho trước tỉ lệ hỗ trợ θ và

độ tin cậy β Đánh số tất cả các luật trong D có các giá trị tỉ lệ hỗ trợ và tin cậy lớn hơn θ

và β tương ứng.

Giả thiết D là CSDL giao dịch và với θ = 40%, β = 90% Vấn đề phát hiện luật

kết hợp được thực hiện như sau:

Liệt kê, đếm tất cả những qui luật chỉ ra sự xuất hiện một số các mục sẽ kéo theo một số mục khác

Chỉ xét những qui luật mà tỉ lệ hỗ trợ lớn hơn 40% và độ tin cậy lớn hơn 90%.Hãy tưởng tượng, một công ty bán hàng qua mạng Internet Các khách hàng được yêu cầu điền vào các mẫu bán hàng để công ty có được một CSDL về các yêu cầu của

Trang 10

khách hàng Giả sử công ty quan tâm đến mối quan hệ "tuổi, giới tính, nghề nghiệp và sản phẩm" Khi đó có thể có rất nhiều câu hỏi tương ứng với luật trên Ví dụ trong lứa tuổi nào thì những khách hàng nữ là công nhân đặt mua mặt hàng gì đó, ví dụ áo dài chẳng hạn là nhiều nhất, thoả mãn một ngưỡng nào đó ?

2.1.1 Định nghĩa luật kết hợp [2]

Cho một tập I = {I1, I2, , Im} các tập m mục, một giao dịch T được định nghĩa như một tập con của các khoản mục trong I (T⊆I)

Tương tự như khái niệm tập hợp, các giao dịch không được trùng lặp, nhưng

có thể nới rộng tính chất này của tập hợp và trong các thuật toán sau này, người ta đều giả thiết rằng các khoản mục trong một giao dịch và trong tất cả các tập mục khác, có thể coi chúng đã được sắp xếp theo thứ tự từ điển của các mục

Gọi D là CSDL của n giao dịch và mỗi giao dịch được đánh nhãn với một định danh duy nhất Nói rằng, một giao dịch T ∈ D hỗ trợ một tập X ⊆ I nếu nó chứa tất

cả các item của X

Điều này nghĩa là X ⊆ T, trong một số trường hợp người ta dùng ký hiệu T(X)

để chỉ tập các giao dịch hỗ trợ cho X Kí hiệu support(X) (hoặc sup(X), s(X)) là tỷ

lệ phần trăm của các giao dịch hỗ trợ X trên tổng các giao dịch trong D, nghĩa là:

D

T X D T

) sup(

Độ hỗ trợ tối thiểu minsup là một giá trị cho trước bởi người sử dụng Nếu tập mục X có sup(X) ≥ minsup thì ta nói X là một tập các mục phổ biến Một tập phổ biến được sử dụng như một tập đáng quan tâm trong các thuật toán, ngược lại, những tập không phải tập phổ biến là những tập không đáng quan tâm Các phần sau sẽ sử dụng những cụm từ khác như “X có độ hỗ trợ tối thiểu”, hay “X không có

độ hỗ trợ tối thiểu” cũng để nói lên rằng X thỏa mãn hay không thỏa mãn

support(X) ≥ minsup

→Một khoản mục X được gọi là k-itemset nếu lực lượng của X bằng k, tức

là |X|=k

Trang 11

Một luật kết hợp có dạng R: X => Y, trong đó X, Y là tập các mục, X, Y ⊆ I

và X ∩Y = ∅ X được gọi là tiên đề và Y được gọi là hệ quả của luật

Luật X => Y tồn tại một độ tin cậy c Độ tin cậy c được định nghĩa là khả năng giao dịch T hỗ trợ X thì cũng hỗ trợ Y Ta có công thức tính độ tin cậy c như sau:

)sup(

)sup(

)(

)(

|(

)(

X

Y X T

X p

T X T Y p I X I Y p Y X

Bài toán 1: Tìm tất cả các tập mục mà có độ hỗ trợ lớn hơn độ hỗ trợ tối

thiểu do người dùng xác định Các tập mục thoả mãn độ hỗ trợ tối thiểu được gọi là các tập mục phổ biến

Bài toán 2: Dùng các tập mục phổ biến để sinh ra các luật mong muốn Ý

tưởng chung là nếu gọi ABCD và AB là các tập mục phổ biến, thì chúng ta có thể xác định luật nếu AB => CD giữ lại với tỷ lệ độ tin cậy:

) sup(

) sup(

AB

ABCD conf =

Nếu conf ≥ minconf thì luật được giữ lại (luật này sẽ thoả mãn độ hỗ trợ tối thiểu vì ABCD là phổ biến)

2.1.2 Các tính chất của tập phổ biến

Tính chất 1 (Độ hỗ trợ của tập con):

Với A và B là tập các mục, nếu A ⊆ B thì sup(A) ≥ sup(B)

Trang 12

Điều này là rõ ràng vì tất cả các giao tác của D hỗ trợ B thì cũng hỗ trợ A.

Tính chất 2:

Một tập chứa một tập không phổ biến thì cũng là tập không phổ biến

Nếu một mục trong B không có độ hỗ trợ tối thiểu trên D nghĩa là sup(B)< minsup thì một tập con A của B sẽ không phải là một tập phổ biến vì support(B) ≤

support(A) < minsup (theo tính chất 1)

Tính chất 3: Các tập con của tập phổ biến cũng là tập phổ biến

Nếu mục B là mục phổ biến trên D, nghĩa là support(B) ≥ minsup thì mọi tập con A của B là tập phổ biến trên D vì support(A) ≥ support(B) > minsup

2.1.3 Các tính chất của luật kết hợp

Tính chất 1:( Không hợp các luật kết hợp)

Nếu có X→Z và Y→Z trong D thì không nhất thiết X∪Y→Z là đúng

Xét trường hợp X ∩Z =∅ và các tác vụ trong D hỗ trợ Z nếu và chỉ nếu chúng hỗ trợ mỗi X hoặc Y, khi đó luật X∪Y→Z có độ hỗ trợ 0%

Tương tự : X→Y ∧ X→Z ⇒ X→Y∪Z

Tính chất 2:(Không tách luật)

Nếu X∪Y→Z thì X→Z và Y→Z chưa chắc xảy ra

Ví dụ trường hợp Z có mặt trong một giao tác chỉ khi cả hai X và Y cũng có mặt, tức là sup(X∪Y)= sup(Z), nếu độ hỗ trợ của X và Y đủ lớn hơn sup(X∪Y), tức là sup(X) > sup(X∪Y) và sup(Y) > sup(X∪Y) thì hai luật riêng biệt sẽ không đủ độ tin cậy

Tuy nhiên đảo lại: X→Y∪Z ⇒ X→Y ∧ X→Z

Tính chất 3: (Các luật kết hợp không có tính bắc cầu)

Nếu X→Y và Y→Z, chúng ta không thể suy ra X→Z

Trang 13

Ví dụ: giả sử T(X) ⊂ T(Y) ⊂ T(Z), ở đó T(X), T(Y), T(Z) tương ứng là các giao dịch chứa X,Y,Z, và độ tin cậy cực tiểu minconf

conf(X→Y) =conf(Y→Z)=minconf thế thì: conf(X→Y) =minconf2 < minconf vì minconf < 1, do đó luật X→Z không đủ độ tin cậy

Tính chất 4:

Nếu A→(L - A) không thoả mãn độ tin cậy cực tiểu thì luật

B →(L -B) cũng không thoả mãn, với các tập mục L,A,B và B ⊆ A ⊂ L

Vì supp(B) ≥ sup(A) (theo tính chất 1) và định nghĩa độ tin cậy, chúng ta nhận

được:

conf B

L B

L B

)sup(

)sup(

)sup(

)sup(

)(

)sup(

)sup(

C L

L D

L

L

≥ minconf

2.2 Thuật toán Apriori [v4]

Apriori là một thuật giải được do Rakesh Agrawal, Tomasz Imielinski, Arun

Swami đề xuất lần đầu vào năm 1993 Thuật toán tìm giao dịch t có độ hỗ trợ và độ

tin cậy thoả mãn lớn hơn một giá trị ngưỡng nào đó

Thuật toán được tỉa bớt những tập ứng cử viên có tập con không phổ biến trước khi tính độ hỗ trợ

Thuật toán Apriori tính tất cả các tập ứng cử của tập k trong một lần duyệt CSDL Apriori dựa vào cấu trúc cây băm Tìm kiếm đi xuống trên cấu trúc cây mỗi

khi ta chạm lá, ta tìm được một tập ứng cử viên có tiền tố chung được bao gồm trong giao dịch Sau đó các tập ứng cử này được tìm trong giao dịch đã được ánh xạ trước đó Trong trường hợp tìm thấy biến đếm được tăng lên 1

Trang 14

Ký hiệu: Giả sử các mục trong mỗi giao dịch được lưu giữ theo trật tự từ

điển Gọi số các mục trong một tập mục là kích thước của nó và gọi tập mục có kích thước k là tập k-mục (tập k mục) Các mục trong mỗi tập mục cũng được giữ ở trật

tự từ điển Ta sử dụng các ký hiệu sau:

Lk: Tập các tập k-mục phổ biến (với độ hỗ trợ cực tiểu minsup nào đó)

Ck : Tập các tập k-mục ứng cử (các tập mục phổ biến tiềm năng)

// sinh ứng cử viên mới (**)

Void apriori_gen(Lk-1, minsup )

Ngày đăng: 21/05/2015, 08:12

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w