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

Công nghệ tri thức và ứng dụng

24 353 0

Đ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 24
Dung lượng 0,91 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong bài tiểu luận em tập trung nghiên cứu thuật toán khai phái luật kết hợp và xây dựng một chương trình phân tích cơ sở dữ liệu bán hàng nhằm phát hiện hành vi mua sắm của khách hàng.

Trang 1

MỤC LỤC

MỞ ĐẦU 2

CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 3

1.1 Đặt vấn đề 3

1.2 Khai phá dữ liệu 3

1.3 Quy trình phát hiện tri thức trong CSDL 4

1.4 Các kỹ thuật khai phá dữ liệu 5

1.4.1 Các kỹ thuật tiếp cận trong khai phá dữ liệu 5

1.4.2 Các dạng dữ liệu có thể khai phá 5

CHƯƠNG 2: LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU 6

2.1 Khai phá luật kết hợp 6

2.2 Lý thuyết về luật kết hợp 6

2.2.1 Khái niệm 6

2.2.2 Một số tính chất liên quan đến các hạng mục phổ biến: 8

2.2.3 Một số hướng tiếp cận trong khai phá luật kết hợp 9

CHƯƠNG 3: MỘT SỐ THUẬT TOÁN PHÁT HIỆN LUẬT KẾT HỢP 11

3.1 Thuật toán Apriori 11

3.1.1 Ý tưởng thuật toán Apriori 11

3.1.2 Thuật toán Apriori 11

3.1.3 Sinh các luật kết hợp từ tập mục phổ biến: 13

3.2 Thuật toán FP-growth 16

3.2.1 Ý tưởng thuật toán 16

3.2.2 Thuật toán FP-growth 17

3.2.3 Đánh giá thuật toán FP-growth 19

CHƯƠNG 4: ỨNG DỤNG LUẬT KẾT HỢP - PHÂN TÍCH DỮ LIỆU BÁN HÀNG 19

4.1 Màn hình chính: 20

4.2 Thiết kế chương trình 20

4.3 Màn hình kết quả: 23

KẾT LUẬN 24

TÀI LIỆU THAM KHẢO 24

Trang 2

MỞ ĐẦU

Trong xã hội hiện đại hôm nay, có vô số thông tin và tri thức được sáng tạo và phát triển hằng ngày Việc khai phá các dữ liệu để phục vụ cho mục đích nghiên cứu, kinh doanh đang càng ngày được xem trọng Một trong những yếu tố thành công trong hoạt động kinh doanh ngày nay là biết sử dụng, khai thác thông tin một cách hiệu quả Điều đó có nghĩa là từ các dữ liệu có sẵn phải tìm ra những thông tin tìm ẩn chưa được phát hiện, khai thác Thực hiện công việc đó chính là quá trình phát hiện tri thức trong cơ

sở dữ liệu mà trong đó kỹ thuật cho phép ta lấy được các tri thức là nhờ vào kỹ thuật khai phá dữ liệu 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ó

Từ 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 Mục tiêu chính của khai phá dữ liệu là lấy được những thông tin hữu ích từ lượng dữ liệu khổng lồ

Trong bài tiểu luận em tập trung nghiên cứu thuật toán khai phái luật kết hợp và xây dựng một chương trình phân tích cơ sở dữ liệu bán hàng nhằm phát hiện hành vi mua sắm của khách hàng Từ đó có thể nhận thấy tầm quan trọng trong việc tìm ra luật kết hợp đến việc tăng doanh thu cho cơ sở kinh doanh

Em xin chân thành cảm ơn GS.TSKH Hoàng Văn Kiếm đã truyền đạt kiến thức chuyên đề môn Công nghệ tri thức & ứng dụng qua đó giúp em có đầy đủ kiến thức để hoàn thành chuyên đề này

Trang 3

CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU

1.1 Đặt vấn đề

Trong kỷ nguyên Internet, Intranets, Warehouses, đã mở ra nhiều cơ hội cho những nhà doanh nghiệp trong việc thu thập và xử lý thông tin 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

Cơ sở dữ liệu trong các doanh nghiệp thì dữ liệu giao dịch đóng một vai trò rất quan trọng cho việc hoạch định kế hoạch kinh doanh trên thương trường vào những năm tiếp theo Hiện tại, việc sử dụng các dữ liệu này tuy đã đạt được một số kết quả nhất định song vẫn còn một số vấn đề tồn đọng như:

 Dựa hoàn toàn vào dữ liệu, không sử dụng tri thức có sẳn về lĩnh vực, kết quả phân tích khó có thể làm rõ được

 Phải có sự hướng dẫn của người dùng để xác định phân tích dữ liệu như thế nào và ở đâu

Trong điều kiện và yêu cầu của thương trường, đòi hỏi phải có những phương pháp nhanh, phù hợp, tự động, chính xác và có hiệu quả để lấy được thông tin có giá trị Các tri thức chiết xuất được từ cơ sở dữ liệu trên sẽ là một nguồn tài liệu hỗ trợ cho lãnh đạo trong việc lên kế hoạch hoạt động hoặc trong việc ra quyết định sản xuất kinh doanh

Vì vậy, tính ứng dụng của khai thác luật kết hợp từ cơ sở dữ liệu giao dịch là một vấn đề đang được quan tâm đặc biệt trong bài viết này

Mục đích của việc nghiên cứu là xây dựng một giải pháp hiệu quả tính ứng dụng luật kết hợp trong việc ra quyết định của cơ quan doanh nghiệp dựa trên cơ sở dữ liệu giao dịch

1.2 Khai phá dữ liệu

Khai phá dữ liệu 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 khám phá thông tin ẩn được tìm thấy trong các cơ sở dữ liệu và có thể xem như là một bước trong quá trình khám phá tri thức Data Mining là giai đoạn quan trọng nhất trong tiến trình khai phá 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

Những thông tin có giá trị tiềm ẩn trong kho cơ sở dữ liệu sẽ được chiết xuất ra và

sử dụng một cách hữu ích nhờ khai phá dữ liệu Chức năng khai phá dữ liệu gồm có gộp nhóm phân loại, dự báo, dự đoán và phân tích các liên kết Năm 1989 Fayyad, Smyth và

Piatestsky-Shapiro đã dùng khái niệm Phát hiện tri thức từ cơ sở dữ liệu (Knowledge

Discovery in Database-KDD) Trong đó, khai phá dữ liệu là một giai đoạn rất đặc biệt trong toàn bộ quá trình, nó sử dụng các kỹ thuật để tìm ra các mẫu từ dữ liệu

Trang 4

1.3 Quy trình phát hiện tri thức trong CSDL

Một trong những yếu tố thành công trong hoạt động kinh doanh ngày nay là biết sử dụng, khai thác thông tin một cách hiệu quả Điều đó có nghĩa là từ các dữ liệu có sẵn phải tìm ra những thông tin tìm ẩn chưa được phát hiện, khai thác Thực hiện công việc

đó chính là quá trình phát hiện tri thức trong cơ sở dữ liệu mà trong đó kỹ thuật cho phép

ta lấy được các tri thức là nhờ vào kỹ thuật khai phá dữ liệu

Khi lưu trữ các dữ liệu khổng lồ 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à đượ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ó Từ 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 Mục tiêu chính của khai phá dữ liệu là lấy được những thông tin hữu ích từ lượng

dữ liệu khổng lồ Các bước chính của quá trình khai phá dữ liệu bao gồm:

Gom dữ liệu (Gathering): tập hợp dữ liệu là bước đầu tiên trong quá trình

khai phá dữ liệu Đây là bước được khai thác trong một cơ sở dữ liệu, một kho dữ liệu và thậm chí các dữ liệu từ các nguồn ứng dụng Web

Trích lọc dữ liệu (Selection): ở giai đoạn này dữ liệu được lựa chọn hoặc

phân chia theo một số tiêu chuẩn nào đó, ví dụ chọn tất cả những người có tuổi đời từ hai lăm đến ba lăm và có trình độ đại học

and Preparation): giai đoạn thứ ba này là giai đoạn hay bị sao lãng, nhưng thực tế nó là

một bước rất quan trọng trong quá trình khai phá dữ liệu Một số lỗi thường mắc phải trong khi gom dữ liệu là tính không đủ chặt chẽ, logic Vì vậy, dữ liệu thường chứa các giá trị vô nghĩa và không có khả năng kết nối dữ liệu Giai đoạn này sẽ tiến hành xử lý những dạng dữ liệu không chặt chẽ nói trên Những dữ liệu dạng này được xem như thông tin dư thừa, không có giá trị Bởi vậy, đây là một quá trình rất quan trọng vì dữ liệu này nếu không được “làm sạch - tiền xử lý - chuẩn bị trước” thì sẽ gây nên những kết quả sai lệch nghiêm trọng

liệu, dữ liệu đưa ra có thể sử dụng và điều khiển được bởi việc tổ chức lại nó Dữ liệu đã được chuyển đổi phù hợp với mục đích khai thác

bước mang tính tư duy trong khai phá dữ liệu Ở giai đoạn này nhiều thuật toán khác nhau đã được sử dụng để trích ra các mẫu từ dữ liệu Thuật toán thường dùng là nguyên tắc phân loại, nguyên tắc kết hợp hoặc các mô hình dữ liệu tuần tự, v.v…

Trang 5

Đánh giá kết quả mẫu (Evaluation of Result): đây là giai đoạn cuối trong

quá trình khai phá dữ liệu Ở giai đoạn này, các mẫu dữ liệu được chiết xuất ra bởi phần mềm khai phá dữ liệu Không phải bất cứ mẫu dữ liệu nào cũng đều hữu ích, đôi khi nó còn bị sai lệch Vì vậy, cần phải ưu tiên những tiêu chuẩn đánh giá để chiết xuất ra các tri thức cần chiết xuất ra

Quá trình này có thể được lặp lại nhiều lần, qua một hay nhiều giai đoạn dựa trên phản hồi từ kết quả của các giai đoạn phía sau

1.4 Các kỹ thuật khai phá dữ liệu

1.4.1 Các kỹ thuật tiếp cận trong khai phá dữ liệu

Căn cứ vào lớp các bài toán cần giải quyết, khai phá dữ liệu có các kỹ thuật áp dụng sau:

Phân lớp và dự đoán: 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 các bệnh nhân dữ liệu trong hồ sơ bệnh án Hướng tiếp cận này thường sử dụng một số kỹ thuật của học máy như cây quyết định, mạng nơ ron nhân tạo

Luật kết hợp: Mục đích của luật kết hợp là tìm ra sự kết hợp (association) hay

tương quan (correlation) giữa các items Những luật kết hợp này có dạng X =>Y

Luật kết hợp X =>Y có thể hiểu rằng những người mua các mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y (X và Y gọi là itemset)

Ví dụ, nếu X = {Apple, Banana} và Y = {Cherry, Durian} và ta có luật kết hợp X

=>Y thì chúng ta có thể nói rằng những người mua Apple và Banana thì cũng thường mua Cherry và Durian

Phân tích chuỗi theo thời gian: 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ĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cáo

Gom nhóm dữ liệu: xếp các đối tượng theo từng nhóm dữ liệu tự nhiên

Mô tả khái niệm: 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

Trang 6

CHƯƠNG 2: LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU

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

Khai phá luật kết hợp là tìm các mẫu phổ biến, sự kết hợp, sự tương quan, hay các cấu trúc nhân quả giữa các tập đối tượng trong các cơ sở dữ liệu giao tác, cơ sở dữ liệu quan hệ, và những kho thông tin khác

Luật kết hợp là dạng luật khá đơn giản nhưng lại mang khá 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 ra quyết định Tìm kiếm được các 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 thác dữ liệu

Luật kết hợp là một biểu thức có dạng: X Y, trong đó X và Y là tập các trường gọi là item Ý nghĩa của các luật kết hợp khá dễ nhận thấy: Cho trước một cơ sở dữ liệu

có D là tập các giao tác - trong đó mỗi giao tác T  D là tập các item - khi đó X Y diễn đạt ý nghĩa rằng bất cứ khi nào giao tác T có chứa X thì chắc chắn T có chứa Y

Độ hỗ trợ (Support) và độ tin cây (Confidence) là 2 tham số dùng để đo lường luật kết hợp:

 Độ hỗ trợ (Support) của luật kết hợp X =>Y là tần suất của giao dịch chứa tất cả các items trong cả hai tập X và Y Ví dụ, support của luật X =>Y là 5% có nghĩa

là 5% các giao dịch X và Y được mua cùng nhau

 Độ tin cậy (Confidence) của luật kết hợp X =>Y là xác suất xảy ra Y khi đã biết

X Ví dụ độ tin cậy của luật kết hợp {Apple} =>Banana} là 80% có nghĩa là 80% khách hàng mua Apple cũng mua Banana

Như vậy, khai phá luật kết hợp là một phương pháp xử lý thông tin quan trọng và phổ biến, nó nhằm khám phá mối liên hệ giữa các mẫu dữ liệu Tiếp theo, khoá luận sẽ đề cập đến luật kết hợp Đây là một hướng nghiên cứu quan trọng trong lĩnh vực khai phá dữ liệu và là nội dung tìm hiểu, nghiên cứu trọng tâm của khoá luận

Trang 7

 

D

T X D

)sup(

)sup(

)(

)TX(

X

Y X T

X p

T Y

Đ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à:

sup(X) = (2.1)

Độ 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à

k

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:

Tuy nhiên, không phải bất cứ luật kết hợp nào có mặt trong tập các luật có thể được sinh ra cũng đều có ý nghĩa trên thực tế Mà các luật đều phải thoả mãn một ngưỡng hỗ trợ và tin cậy cụ thể Thực vậy, cho một tập các giao dịch D, bài toán phát hiện luật kết hợp là sinh ra tất cả các luật kết hợp mà có độ tin cậy conf lớn hơn độ tin cậy tối thiểu minconf và độ hỗ trợ sup lớn hơn độ hỗ trợ tối thiểu minsup tương ứng do người dùng xác định Khai phá luật kết hợp được phân thành hai bài toán con:

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 Quy trình

khai thác luật kết hợp

+ Bước một:Tìm tất cả các tập phổ biến (theo ngưỡng minsup)

+ Bước hai: Tạo ra các luật từ các tập phổ biến Đối với mỗi tập phổ biến S, tạo ra tất cả các tập con khác rỗng của S Đối với mỗi tập con khác rỗng A của S thì luật A => (S - A) là luật kết hợp cần tìm nếu: conf (A => (S - A)) = supp(S) / supp(A) ≥ minconf

Trang 8

)sup(

AB

ABCD

conf

(2.3) 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.2.2 Một số tính chất liên quan đến các hạng mục phổ biến:

2.2.2.1 Với tập mục phổ biến, có 3 tính chất sau:

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)

Đ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à A  B và sup(A)< minsup thì 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.2.2.2 Với luật kết hợp, có 4 tính chất sau:

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

Trang 9

)sup(

)sup(

)sup(

C L

L D

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

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:

)sup(

)sup(

)sup(

A

L B

L

< minconf (2.4) Cũng như vậy: Nếu có (L-C) C thì ta cũng có luật (L – D)D, với DC và D Bởi vì DC nên (L - D)  (L - C), do đó sup(L - D)  sup(L-C)

Các tính chất này sẽ được sử dụng trong thuật toán mô tả trong các chương sau

2.2.3 Một số hướng tiếp cận trong khai phá 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á, …

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

Trang 10

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ó

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)

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 11

CHƯƠNG 3: MỘT SỐ THUẬT TOÁN PHÁT HIỆN LUẬT KẾT HỢP

3.1 Thuật toán Apriori

3.1.1 Ý tưởng thuật toán Apriori

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

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)

3.1.2 Thuật toán Apriori

Trang 12

14 Return L=  k L k' ;

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

Void apriori_gen(Lk-1, minsup )

2 if(s  Lk-1) return TRUE;

4.}

Giải thích: Lần duyệt đầu tiên, sẽ tính số lần xuất hiện của mỗi mục để xác định các 1- itemset phổ biến Lần duyệt thứ k (k  2) sẽ bao gồm 2 giai đoạn:

Tập phổ biến L k-1 đã tìm thấy ở lần duyệt thứ k-1 được sử dụng để sinh ra các tập

ứng cử viên C k bằng việc sử dụng hàm Apriori_gen

trong C k mà được chứa trong giao dịch t có thể được xác định một cách hiệu quả bằng

việc sử dụng cây băm được mô tả như sau:

Trong giai đoạn 2 (giai đoạn sửa, tỉa): xoá bỏ các tập c  Ck sao cho một vài (k-1) – tập con của c không nằm trong L k-1 Thủ tục này là đầy đủ bởi đối với bất kì tập nào L k

với độ hỗ trợ tối thiểu thì các tập con kích cỡ (k-1) cũng có độ hỗ trợ tối thiểu, do đó nếu

ta mở rộng mỗi tập trong L k-1 với tất cả các tập mục có thể và sau đó xoá tất cả các tập mà

(k-1) – tập con của nó không nằm trong L k-1, ta sẽ nhận được tập các tập trong Lk.

Việc kết nối là tương đương với việc mở rộng L k-1 với mỗi mục nằm trong CSDL và

sau đó xoá bỏ các tập này mà đối với nó (k-1) –itemset nhận được bằng việc xoá đi mục thứ (k-1) không nằm trong L k-1 Ở giai đoạn này C k  L k Với lập luận như vậy, giai đoạn

tỉa là giai đoạn người ta xoá khỏi C k tấtcả các tập mà các (k-1) tập con của nó không nằm

trong L k-1 , cũng không xoá bất kỳ một tập nào có thể nằm trong L k

Hàm Subset: Các tập ứng cử viên C k được lưu trữ trong một cây băm Một nút của

cây này hoặc là chứa một danh sách của các tập (nút lá) hoặc bảng băm ( một nút trong)

Trong mỗi một nút trong, mỗi cụm (bucket) của bảng băm chỉ đến một nút khác Gốc của

Ngày đăng: 21/03/2015, 16:26

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w